@umbraco-cms/backoffice 14.0.0-a353ecfe → 14.0.0-e0d20272

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 (632) hide show
  1. package/dist-cms/apps/app/app.element.js +17 -7
  2. package/dist-cms/apps/app/app.element.js.map +1 -1
  3. package/dist-cms/custom-elements.json +148 -25
  4. package/dist-cms/external/backend-api/index.js +1 -1
  5. package/dist-cms/external/rxjs/index.js +2 -2
  6. package/dist-cms/external/tinymce/index.js +49 -0
  7. package/dist-cms/mocks/data/data-type.data.js +69 -1
  8. package/dist-cms/mocks/data/data-type.data.js.map +1 -1
  9. package/dist-cms/mocks/data/document-type.data.js +18 -0
  10. package/dist-cms/mocks/data/document-type.data.js.map +1 -1
  11. package/dist-cms/mocks/data/document.data.js +7 -0
  12. package/dist-cms/mocks/data/document.data.js.map +1 -1
  13. package/dist-cms/mocks/data/template.data.d.ts +1 -1
  14. package/dist-cms/mocks/data/template.data.js +14 -5
  15. package/dist-cms/mocks/data/template.data.js.map +1 -1
  16. package/dist-cms/mocks/handlers/images.handlers.d.ts +1 -0
  17. package/dist-cms/mocks/handlers/images.handlers.js +8 -0
  18. package/dist-cms/mocks/handlers/images.handlers.js.map +1 -0
  19. package/dist-cms/mocks/handlers/manifests.handlers.js +1 -1
  20. package/dist-cms/mocks/handlers/manifests.handlers.js.map +1 -1
  21. package/dist-cms/mocks/handlers/rte-embed.handlers.js +6 -2
  22. package/dist-cms/mocks/handlers/rte-embed.handlers.js.map +1 -1
  23. package/dist-cms/packages/core/components/data-type/data-type-property-collection.class.d.ts +15 -0
  24. package/dist-cms/packages/core/components/data-type/data-type-property-collection.class.js +17 -0
  25. package/dist-cms/packages/core/components/data-type/data-type-property-collection.class.js.map +1 -1
  26. package/dist-cms/packages/core/components/index.d.ts +1 -0
  27. package/dist-cms/packages/core/components/index.js +1 -0
  28. package/dist-cms/packages/core/components/index.js.map +1 -1
  29. package/dist-cms/packages/core/components/input-tiny-mce/index.d.ts +6 -0
  30. package/dist-cms/packages/core/components/input-tiny-mce/index.js +7 -0
  31. package/dist-cms/packages/core/components/input-tiny-mce/index.js.map +1 -0
  32. package/dist-cms/packages/core/components/input-tiny-mce/input-tiny-mce.defaults.d.ts +5 -0
  33. package/dist-cms/packages/core/components/input-tiny-mce/input-tiny-mce.defaults.js +46 -0
  34. package/dist-cms/packages/core/components/input-tiny-mce/input-tiny-mce.defaults.js.map +1 -0
  35. package/dist-cms/packages/core/components/input-tiny-mce/input-tiny-mce.element.d.ts +29 -0
  36. package/dist-cms/packages/core/components/input-tiny-mce/input-tiny-mce.element.js +270 -0
  37. package/dist-cms/packages/core/components/input-tiny-mce/input-tiny-mce.element.js.map +1 -0
  38. package/dist-cms/packages/core/components/input-tiny-mce/input-tiny-mce.handlers.d.ts +3 -0
  39. package/dist-cms/packages/core/components/input-tiny-mce/input-tiny-mce.handlers.js +39 -0
  40. package/dist-cms/packages/core/components/input-tiny-mce/input-tiny-mce.handlers.js.map +1 -0
  41. package/dist-cms/packages/core/components/input-tiny-mce/input-tiny-mce.languages.d.ts +1 -0
  42. package/dist-cms/packages/core/components/input-tiny-mce/input-tiny-mce.languages.js +79 -0
  43. package/dist-cms/packages/core/components/input-tiny-mce/input-tiny-mce.languages.js.map +1 -0
  44. package/dist-cms/packages/core/components/input-tiny-mce/input-tiny-mce.sanitizer.d.ts +6 -0
  45. package/dist-cms/packages/core/components/input-tiny-mce/input-tiny-mce.sanitizer.js +54 -0
  46. package/dist-cms/packages/core/components/input-tiny-mce/input-tiny-mce.sanitizer.js.map +1 -0
  47. package/dist-cms/packages/core/components/input-tiny-mce/tiny-mce-plugin.d.ts +12 -0
  48. package/dist-cms/packages/core/components/input-tiny-mce/tiny-mce-plugin.js +8 -0
  49. package/dist-cms/packages/core/components/input-tiny-mce/tiny-mce-plugin.js.map +1 -0
  50. package/dist-cms/packages/core/components/property-editor-config/property-editor-config.element.d.ts +3 -3
  51. package/dist-cms/packages/core/components/property-editor-config/property-editor-config.element.js +10 -10
  52. package/dist-cms/packages/core/components/property-editor-config/property-editor-config.element.js.map +1 -1
  53. package/dist-cms/packages/core/components/property-type-based-property/property-type-based-property.element.js +3 -3
  54. package/dist-cms/packages/core/components/property-type-based-property/property-type-based-property.element.js.map +1 -1
  55. package/dist-cms/packages/core/components/ref-property-editor-ui/ref-property-editor-ui.element.d.ts +1 -1
  56. package/dist-cms/packages/core/components/ref-property-editor-ui/ref-property-editor-ui.element.js +5 -5
  57. package/dist-cms/packages/core/components/ref-property-editor-ui/ref-property-editor-ui.element.js.map +1 -1
  58. package/dist-cms/packages/core/extension-registry/models/index.d.ts +4 -2
  59. package/dist-cms/packages/core/extension-registry/models/index.js +1 -0
  60. package/dist-cms/packages/core/extension-registry/models/index.js.map +1 -1
  61. package/dist-cms/packages/core/extension-registry/models/property-editor.model.d.ts +5 -5
  62. package/dist-cms/packages/core/extension-registry/models/tinymce-plugin.model.d.ts +38 -0
  63. package/dist-cms/packages/core/extension-registry/models/tinymce-plugin.model.js +2 -0
  64. package/dist-cms/packages/core/extension-registry/models/tinymce-plugin.model.js.map +1 -0
  65. package/dist-cms/packages/core/index.d.ts +1 -0
  66. package/dist-cms/packages/core/index.js +3 -0
  67. package/dist-cms/packages/core/index.js.map +1 -1
  68. package/dist-cms/packages/core/macro/index.d.ts +1 -0
  69. package/dist-cms/packages/core/macro/index.js +2 -0
  70. package/dist-cms/packages/core/macro/index.js.map +1 -0
  71. package/dist-cms/packages/core/macro/macro.service.d.ts +26 -0
  72. package/dist-cms/packages/core/macro/macro.service.js +117 -0
  73. package/dist-cms/packages/core/macro/macro.service.js.map +1 -0
  74. package/dist-cms/packages/core/modal/common/code-editor/code-editor-modal.element.d.ts +17 -0
  75. package/dist-cms/packages/core/modal/common/code-editor/code-editor-modal.element.js +92 -0
  76. package/dist-cms/packages/core/modal/common/code-editor/code-editor-modal.element.js.map +1 -0
  77. package/dist-cms/packages/core/modal/common/embedded-media/embedded-media-modal.element.d.ts +3 -5
  78. package/dist-cms/packages/core/modal/common/embedded-media/embedded-media-modal.element.js +11 -11
  79. package/dist-cms/packages/core/modal/common/embedded-media/embedded-media-modal.element.js.map +1 -1
  80. package/dist-cms/packages/core/modal/common/manifests.js +6 -0
  81. package/dist-cms/packages/core/modal/common/manifests.js.map +1 -1
  82. package/dist-cms/packages/core/modal/token/code-editor-modal.token.d.ts +12 -0
  83. package/dist-cms/packages/core/modal/token/code-editor-modal.token.js +6 -0
  84. package/dist-cms/packages/core/modal/token/code-editor-modal.token.js.map +1 -0
  85. package/dist-cms/packages/core/modal/token/embedded-media-modal.token.d.ts +8 -7
  86. package/dist-cms/packages/core/modal/token/embedded-media-modal.token.js +2 -1
  87. package/dist-cms/packages/core/modal/token/embedded-media-modal.token.js.map +1 -1
  88. package/dist-cms/packages/core/modal/token/index.d.ts +1 -0
  89. package/dist-cms/packages/core/modal/token/index.js +1 -0
  90. package/dist-cms/packages/core/modal/token/index.js.map +1 -1
  91. package/dist-cms/packages/core/property-editors/manifests.d.ts +1 -1
  92. package/dist-cms/packages/core/property-editors/manifests.js +2 -2
  93. package/dist-cms/packages/core/property-editors/manifests.js.map +1 -1
  94. package/dist-cms/packages/core/property-editors/models/Umbraco.BlockGrid.d.ts +2 -2
  95. package/dist-cms/packages/core/property-editors/models/Umbraco.BlockGrid.js +1 -1
  96. package/dist-cms/packages/core/property-editors/models/Umbraco.BlockGrid.js.map +1 -1
  97. package/dist-cms/packages/core/property-editors/models/Umbraco.BlockList.d.ts +2 -2
  98. package/dist-cms/packages/core/property-editors/models/Umbraco.BlockList.js +1 -1
  99. package/dist-cms/packages/core/property-editors/models/Umbraco.BlockList.js.map +1 -1
  100. package/dist-cms/packages/core/property-editors/models/Umbraco.CheckboxList.d.ts +2 -2
  101. package/dist-cms/packages/core/property-editors/models/Umbraco.CheckboxList.js +1 -1
  102. package/dist-cms/packages/core/property-editors/models/Umbraco.CheckboxList.js.map +1 -1
  103. package/dist-cms/packages/core/property-editors/models/Umbraco.ColorPicker.EyeDropper.d.ts +2 -2
  104. package/dist-cms/packages/core/property-editors/models/Umbraco.ColorPicker.EyeDropper.js +1 -1
  105. package/dist-cms/packages/core/property-editors/models/Umbraco.ColorPicker.EyeDropper.js.map +1 -1
  106. package/dist-cms/packages/core/property-editors/models/Umbraco.ColorPicker.d.ts +2 -2
  107. package/dist-cms/packages/core/property-editors/models/Umbraco.ColorPicker.js +1 -1
  108. package/dist-cms/packages/core/property-editors/models/Umbraco.ColorPicker.js.map +1 -1
  109. package/dist-cms/packages/core/property-editors/models/Umbraco.DateTime.d.ts +2 -2
  110. package/dist-cms/packages/core/property-editors/models/Umbraco.DateTime.js +1 -1
  111. package/dist-cms/packages/core/property-editors/models/Umbraco.DateTime.js.map +1 -1
  112. package/dist-cms/packages/core/property-editors/models/Umbraco.Decimal.d.ts +2 -2
  113. package/dist-cms/packages/core/property-editors/models/Umbraco.Decimal.js +1 -1
  114. package/dist-cms/packages/core/property-editors/models/Umbraco.Decimal.js.map +1 -1
  115. package/dist-cms/packages/core/property-editors/models/Umbraco.Dropdown.Flexible.d.ts +2 -2
  116. package/dist-cms/packages/core/property-editors/models/Umbraco.Dropdown.Flexible.js +1 -1
  117. package/dist-cms/packages/core/property-editors/models/Umbraco.Dropdown.Flexible.js.map +1 -1
  118. package/dist-cms/packages/core/property-editors/models/Umbraco.EmailAddress.d.ts +2 -2
  119. package/dist-cms/packages/core/property-editors/models/Umbraco.EmailAddress.js +1 -1
  120. package/dist-cms/packages/core/property-editors/models/Umbraco.EmailAddress.js.map +1 -1
  121. package/dist-cms/packages/core/property-editors/models/Umbraco.IconPicker.d.ts +2 -2
  122. package/dist-cms/packages/core/property-editors/models/Umbraco.IconPicker.js +1 -1
  123. package/dist-cms/packages/core/property-editors/models/Umbraco.IconPicker.js.map +1 -1
  124. package/dist-cms/packages/core/property-editors/models/Umbraco.ImageCropper.d.ts +2 -2
  125. package/dist-cms/packages/core/property-editors/models/Umbraco.ImageCropper.js +1 -1
  126. package/dist-cms/packages/core/property-editors/models/Umbraco.ImageCropper.js.map +1 -1
  127. package/dist-cms/packages/core/property-editors/models/Umbraco.Integer.d.ts +2 -2
  128. package/dist-cms/packages/core/property-editors/models/Umbraco.Integer.js +1 -1
  129. package/dist-cms/packages/core/property-editors/models/Umbraco.Integer.js.map +1 -1
  130. package/dist-cms/packages/core/property-editors/models/Umbraco.JSON.d.ts +2 -2
  131. package/dist-cms/packages/core/property-editors/models/Umbraco.JSON.js +1 -1
  132. package/dist-cms/packages/core/property-editors/models/Umbraco.JSON.js.map +1 -1
  133. package/dist-cms/packages/core/property-editors/models/Umbraco.Label.d.ts +2 -2
  134. package/dist-cms/packages/core/property-editors/models/Umbraco.Label.js +1 -1
  135. package/dist-cms/packages/core/property-editors/models/Umbraco.Label.js.map +1 -1
  136. package/dist-cms/packages/core/property-editors/models/Umbraco.ListView.d.ts +2 -2
  137. package/dist-cms/packages/core/property-editors/models/Umbraco.ListView.js +1 -1
  138. package/dist-cms/packages/core/property-editors/models/Umbraco.ListView.js.map +1 -1
  139. package/dist-cms/packages/core/property-editors/models/Umbraco.MarkdownEditor.d.ts +2 -2
  140. package/dist-cms/packages/core/property-editors/models/Umbraco.MarkdownEditor.js +1 -1
  141. package/dist-cms/packages/core/property-editors/models/Umbraco.MarkdownEditor.js.map +1 -1
  142. package/dist-cms/packages/core/property-editors/models/Umbraco.MediaPicker3.d.ts +2 -2
  143. package/dist-cms/packages/core/property-editors/models/Umbraco.MediaPicker3.js +1 -1
  144. package/dist-cms/packages/core/property-editors/models/Umbraco.MediaPicker3.js.map +1 -1
  145. package/dist-cms/packages/core/property-editors/models/Umbraco.MemberGroupPicker.d.ts +2 -2
  146. package/dist-cms/packages/core/property-editors/models/Umbraco.MemberGroupPicker.js +1 -1
  147. package/dist-cms/packages/core/property-editors/models/Umbraco.MemberGroupPicker.js.map +1 -1
  148. package/dist-cms/packages/core/property-editors/models/Umbraco.MemberPicker.d.ts +2 -2
  149. package/dist-cms/packages/core/property-editors/models/Umbraco.MemberPicker.js +1 -1
  150. package/dist-cms/packages/core/property-editors/models/Umbraco.MemberPicker.js.map +1 -1
  151. package/dist-cms/packages/core/property-editors/models/Umbraco.MultiNodeTreePicker.d.ts +2 -2
  152. package/dist-cms/packages/core/property-editors/models/Umbraco.MultiNodeTreePicker.js +1 -1
  153. package/dist-cms/packages/core/property-editors/models/Umbraco.MultiNodeTreePicker.js.map +1 -1
  154. package/dist-cms/packages/core/property-editors/models/Umbraco.MultiUrlPicker.d.ts +2 -2
  155. package/dist-cms/packages/core/property-editors/models/Umbraco.MultiUrlPicker.js +1 -1
  156. package/dist-cms/packages/core/property-editors/models/Umbraco.MultiUrlPicker.js.map +1 -1
  157. package/dist-cms/packages/core/property-editors/models/Umbraco.MultipleTextString.d.ts +2 -2
  158. package/dist-cms/packages/core/property-editors/models/Umbraco.MultipleTextString.js +1 -1
  159. package/dist-cms/packages/core/property-editors/models/Umbraco.MultipleTextString.js.map +1 -1
  160. package/dist-cms/packages/core/property-editors/models/Umbraco.RadioButtonList.d.ts +2 -2
  161. package/dist-cms/packages/core/property-editors/models/Umbraco.RadioButtonList.js +1 -1
  162. package/dist-cms/packages/core/property-editors/models/Umbraco.RadioButtonList.js.map +1 -1
  163. package/dist-cms/packages/core/property-editors/models/Umbraco.RichText.d.ts +2 -0
  164. package/dist-cms/packages/core/property-editors/models/{Umbraco.TinyMCE.js → Umbraco.RichText.js} +4 -3
  165. package/dist-cms/packages/core/property-editors/models/Umbraco.RichText.js.map +1 -0
  166. package/dist-cms/packages/core/property-editors/models/Umbraco.Slider.d.ts +2 -2
  167. package/dist-cms/packages/core/property-editors/models/Umbraco.Slider.js +1 -1
  168. package/dist-cms/packages/core/property-editors/models/Umbraco.Slider.js.map +1 -1
  169. package/dist-cms/packages/core/property-editors/models/Umbraco.Tags.d.ts +2 -2
  170. package/dist-cms/packages/core/property-editors/models/Umbraco.Tags.js +1 -1
  171. package/dist-cms/packages/core/property-editors/models/Umbraco.Tags.js.map +1 -1
  172. package/dist-cms/packages/core/property-editors/models/Umbraco.TextArea.d.ts +2 -2
  173. package/dist-cms/packages/core/property-editors/models/Umbraco.TextArea.js +1 -1
  174. package/dist-cms/packages/core/property-editors/models/Umbraco.TextArea.js.map +1 -1
  175. package/dist-cms/packages/core/property-editors/models/Umbraco.TextBox.d.ts +2 -2
  176. package/dist-cms/packages/core/property-editors/models/Umbraco.TextBox.js +1 -1
  177. package/dist-cms/packages/core/property-editors/models/Umbraco.TextBox.js.map +1 -1
  178. package/dist-cms/packages/core/property-editors/models/Umbraco.TrueFalse.d.ts +2 -2
  179. package/dist-cms/packages/core/property-editors/models/Umbraco.TrueFalse.js +1 -1
  180. package/dist-cms/packages/core/property-editors/models/Umbraco.TrueFalse.js.map +1 -1
  181. package/dist-cms/packages/core/property-editors/models/Umbraco.UploadField.d.ts +2 -2
  182. package/dist-cms/packages/core/property-editors/models/Umbraco.UploadField.js +1 -1
  183. package/dist-cms/packages/core/property-editors/models/Umbraco.UploadField.js.map +1 -1
  184. package/dist-cms/packages/core/property-editors/models/Umbraco.UserPicker.d.ts +2 -2
  185. package/dist-cms/packages/core/property-editors/models/Umbraco.UserPicker.js +1 -1
  186. package/dist-cms/packages/core/property-editors/models/Umbraco.UserPicker.js.map +1 -1
  187. package/dist-cms/packages/core/property-editors/models/manifests.d.ts +2 -2
  188. package/dist-cms/packages/core/property-editors/models/manifests.js +2 -2
  189. package/dist-cms/packages/core/property-editors/models/manifests.js.map +1 -1
  190. package/dist-cms/packages/core/property-editors/uis/block-grid/config/block-configuration/manifests.js +1 -1
  191. package/dist-cms/packages/core/property-editors/uis/block-grid/config/block-configuration/manifests.js.map +1 -1
  192. package/dist-cms/packages/core/property-editors/uis/block-grid/config/group-configuration/manifests.js +1 -1
  193. package/dist-cms/packages/core/property-editors/uis/block-grid/config/group-configuration/manifests.js.map +1 -1
  194. package/dist-cms/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/manifests.js +1 -1
  195. package/dist-cms/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/manifests.js.map +1 -1
  196. package/dist-cms/packages/core/property-editors/uis/block-grid/manifests.js +1 -1
  197. package/dist-cms/packages/core/property-editors/uis/block-grid/manifests.js.map +1 -1
  198. package/dist-cms/packages/core/property-editors/uis/block-list/config/block-configuration/manifests.js +1 -1
  199. package/dist-cms/packages/core/property-editors/uis/block-list/config/block-configuration/manifests.js.map +1 -1
  200. package/dist-cms/packages/core/property-editors/uis/block-list/manifests.js +1 -1
  201. package/dist-cms/packages/core/property-editors/uis/block-list/manifests.js.map +1 -1
  202. package/dist-cms/packages/core/property-editors/uis/checkbox-list/manifests.js +1 -1
  203. package/dist-cms/packages/core/property-editors/uis/checkbox-list/manifests.js.map +1 -1
  204. package/dist-cms/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/manifests.js +1 -1
  205. package/dist-cms/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/manifests.js.map +1 -1
  206. package/dist-cms/packages/core/property-editors/uis/collection-view/config/column-configuration/manifests.js +1 -1
  207. package/dist-cms/packages/core/property-editors/uis/collection-view/config/column-configuration/manifests.js.map +1 -1
  208. package/dist-cms/packages/core/property-editors/uis/collection-view/config/layout-configuration/manifests.js +1 -1
  209. package/dist-cms/packages/core/property-editors/uis/collection-view/config/layout-configuration/manifests.js.map +1 -1
  210. package/dist-cms/packages/core/property-editors/uis/collection-view/config/order-by/manifests.js +1 -1
  211. package/dist-cms/packages/core/property-editors/uis/collection-view/config/order-by/manifests.js.map +1 -1
  212. package/dist-cms/packages/core/property-editors/uis/collection-view/manifests.js +1 -1
  213. package/dist-cms/packages/core/property-editors/uis/collection-view/manifests.js.map +1 -1
  214. package/dist-cms/packages/core/property-editors/uis/color-picker/manifests.js +1 -1
  215. package/dist-cms/packages/core/property-editors/uis/color-picker/manifests.js.map +1 -1
  216. package/dist-cms/packages/core/property-editors/uis/date-picker/manifests.js +1 -1
  217. package/dist-cms/packages/core/property-editors/uis/date-picker/manifests.js.map +1 -1
  218. package/dist-cms/packages/core/property-editors/uis/dropdown/manifests.js +1 -1
  219. package/dist-cms/packages/core/property-editors/uis/dropdown/manifests.js.map +1 -1
  220. package/dist-cms/packages/core/property-editors/uis/eye-dropper/manifests.js +1 -1
  221. package/dist-cms/packages/core/property-editors/uis/eye-dropper/manifests.js.map +1 -1
  222. package/dist-cms/packages/core/property-editors/uis/icon-picker/manifests.js +1 -1
  223. package/dist-cms/packages/core/property-editors/uis/icon-picker/manifests.js.map +1 -1
  224. package/dist-cms/packages/core/property-editors/uis/image-cropper/manifests.js +1 -1
  225. package/dist-cms/packages/core/property-editors/uis/image-cropper/manifests.js.map +1 -1
  226. package/dist-cms/packages/core/property-editors/uis/image-crops-configuration/manifests.js +1 -1
  227. package/dist-cms/packages/core/property-editors/uis/image-crops-configuration/manifests.js.map +1 -1
  228. package/dist-cms/packages/core/property-editors/uis/label/manifests.js +1 -1
  229. package/dist-cms/packages/core/property-editors/uis/label/manifests.js.map +1 -1
  230. package/dist-cms/packages/core/property-editors/uis/manifests.js +1 -1
  231. package/dist-cms/packages/core/property-editors/uis/manifests.js.map +1 -1
  232. package/dist-cms/packages/core/property-editors/uis/markdown-editor/manifests.js +1 -1
  233. package/dist-cms/packages/core/property-editors/uis/markdown-editor/manifests.js.map +1 -1
  234. package/dist-cms/packages/core/property-editors/uis/media-picker/manifests.js +1 -1
  235. package/dist-cms/packages/core/property-editors/uis/media-picker/manifests.js.map +1 -1
  236. package/dist-cms/packages/core/property-editors/uis/member-group-picker/manifests.js +1 -1
  237. package/dist-cms/packages/core/property-editors/uis/member-group-picker/manifests.js.map +1 -1
  238. package/dist-cms/packages/core/property-editors/uis/member-picker/manifests.js +1 -1
  239. package/dist-cms/packages/core/property-editors/uis/member-picker/manifests.js.map +1 -1
  240. package/dist-cms/packages/core/property-editors/uis/multi-url-picker/manifests.js +1 -1
  241. package/dist-cms/packages/core/property-editors/uis/multi-url-picker/manifests.js.map +1 -1
  242. package/dist-cms/packages/core/property-editors/uis/multiple-text-string/manifests.js +1 -1
  243. package/dist-cms/packages/core/property-editors/uis/multiple-text-string/manifests.js.map +1 -1
  244. package/dist-cms/packages/core/property-editors/uis/number/manifests.js +2 -2
  245. package/dist-cms/packages/core/property-editors/uis/number/manifests.js.map +1 -1
  246. package/dist-cms/packages/core/property-editors/uis/number-range/manifests.js +1 -1
  247. package/dist-cms/packages/core/property-editors/uis/number-range/manifests.js.map +1 -1
  248. package/dist-cms/packages/core/property-editors/uis/order-direction/manifests.js +1 -1
  249. package/dist-cms/packages/core/property-editors/uis/order-direction/manifests.js.map +1 -1
  250. package/dist-cms/packages/core/property-editors/uis/overlay-size/manifests.js +1 -1
  251. package/dist-cms/packages/core/property-editors/uis/overlay-size/manifests.js.map +1 -1
  252. package/dist-cms/packages/core/property-editors/uis/radio-button-list/manifests.js +1 -1
  253. package/dist-cms/packages/core/property-editors/uis/radio-button-list/manifests.js.map +1 -1
  254. package/dist-cms/packages/core/property-editors/uis/slider/manifests.js +1 -1
  255. package/dist-cms/packages/core/property-editors/uis/slider/manifests.js.map +1 -1
  256. package/dist-cms/packages/core/property-editors/uis/text-box/manifests.js +2 -2
  257. package/dist-cms/packages/core/property-editors/uis/text-box/manifests.js.map +1 -1
  258. package/dist-cms/packages/core/property-editors/uis/textarea/manifests.js +1 -1
  259. package/dist-cms/packages/core/property-editors/uis/textarea/manifests.js.map +1 -1
  260. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.element.d.ts +18 -0
  261. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.element.js +31 -0
  262. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.element.js.map +1 -0
  263. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/manifests.d.ts +2 -0
  264. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/manifests.js +52 -0
  265. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/manifests.js.map +1 -0
  266. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.element.d.ts +15 -0
  267. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.element.js +26 -0
  268. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.element.js.map +1 -0
  269. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.d.ts +16 -0
  270. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.js +45 -0
  271. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.js.map +1 -0
  272. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.element.d.ts +25 -0
  273. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.element.js +123 -0
  274. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.element.js.map +1 -0
  275. package/dist-cms/packages/core/property-editors/uis/tiny-mce/manifests.js +210 -7
  276. package/dist-cms/packages/core/property-editors/uis/tiny-mce/manifests.js.map +1 -1
  277. package/dist-cms/packages/core/property-editors/uis/tiny-mce/plugins/manifests.d.ts +2 -0
  278. package/dist-cms/packages/core/property-editors/uis/tiny-mce/plugins/manifests.js +84 -0
  279. package/dist-cms/packages/core/property-editors/uis/tiny-mce/plugins/manifests.js.map +1 -0
  280. package/dist-cms/packages/core/property-editors/uis/tiny-mce/plugins/tiny-mce-code-editor.plugin.d.ts +5 -0
  281. package/dist-cms/packages/core/property-editors/uis/tiny-mce/plugins/tiny-mce-code-editor.plugin.js +34 -0
  282. package/dist-cms/packages/core/property-editors/uis/tiny-mce/plugins/tiny-mce-code-editor.plugin.js.map +1 -0
  283. package/dist-cms/packages/core/property-editors/uis/tiny-mce/plugins/tiny-mce-embeddedmedia.plugin.d.ts +5 -0
  284. package/dist-cms/packages/core/property-editors/uis/tiny-mce/plugins/tiny-mce-embeddedmedia.plugin.js +69 -0
  285. package/dist-cms/packages/core/property-editors/uis/tiny-mce/plugins/tiny-mce-embeddedmedia.plugin.js.map +1 -0
  286. package/dist-cms/packages/core/property-editors/uis/tiny-mce/plugins/tiny-mce-linkpicker.plugin.d.ts +6 -0
  287. package/dist-cms/packages/core/property-editors/uis/tiny-mce/plugins/tiny-mce-linkpicker.plugin.js +168 -0
  288. package/dist-cms/packages/core/property-editors/uis/tiny-mce/plugins/tiny-mce-linkpicker.plugin.js.map +1 -0
  289. package/dist-cms/packages/core/property-editors/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.d.ts +5 -0
  290. package/dist-cms/packages/core/property-editors/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.js +166 -0
  291. package/dist-cms/packages/core/property-editors/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.js.map +1 -0
  292. package/dist-cms/packages/core/property-editors/uis/tiny-mce/plugins/tiny-mce-mediapicker.plugin.d.ts +5 -0
  293. package/dist-cms/packages/core/property-editors/uis/tiny-mce/plugins/tiny-mce-mediapicker.plugin.js +141 -0
  294. package/dist-cms/packages/core/property-editors/uis/tiny-mce/plugins/tiny-mce-mediapicker.plugin.js.map +1 -0
  295. package/dist-cms/packages/core/property-editors/uis/tiny-mce/property-editor-ui-tiny-mce.element.d.ts +2 -1
  296. package/dist-cms/packages/core/property-editors/uis/tiny-mce/property-editor-ui-tiny-mce.element.js +16 -7
  297. package/dist-cms/packages/core/property-editors/uis/tiny-mce/property-editor-ui-tiny-mce.element.js.map +1 -1
  298. package/dist-cms/packages/core/property-editors/uis/toggle/manifests.js +1 -1
  299. package/dist-cms/packages/core/property-editors/uis/toggle/manifests.js.map +1 -1
  300. package/dist-cms/packages/core/property-editors/uis/tree-picker/config/start-node/manifests.js +1 -1
  301. package/dist-cms/packages/core/property-editors/uis/tree-picker/config/start-node/manifests.js.map +1 -1
  302. package/dist-cms/packages/core/property-editors/uis/tree-picker/manifests.js +1 -1
  303. package/dist-cms/packages/core/property-editors/uis/tree-picker/manifests.js.map +1 -1
  304. package/dist-cms/packages/core/property-editors/uis/upload-field/manifests.js +1 -1
  305. package/dist-cms/packages/core/property-editors/uis/upload-field/manifests.js.map +1 -1
  306. package/dist-cms/packages/core/property-editors/uis/user-picker/manifests.js +1 -1
  307. package/dist-cms/packages/core/property-editors/uis/user-picker/manifests.js.map +1 -1
  308. package/dist-cms/packages/core/property-editors/uis/value-type/manifests.js +1 -1
  309. package/dist-cms/packages/core/property-editors/uis/value-type/manifests.js.map +1 -1
  310. package/dist-cms/packages/documents/documents/property-editors/Umbraco.ContentPicker.d.ts +2 -2
  311. package/dist-cms/packages/documents/documents/property-editors/Umbraco.ContentPicker.js +1 -1
  312. package/dist-cms/packages/documents/documents/property-editors/Umbraco.ContentPicker.js.map +1 -1
  313. package/dist-cms/packages/documents/documents/property-editors/document-picker/manifests.js +1 -1
  314. package/dist-cms/packages/documents/documents/property-editors/document-picker/manifests.js.map +1 -1
  315. package/dist-cms/packages/media/media/repository/media.repository.js +12 -24
  316. package/dist-cms/packages/media/media/repository/media.repository.js.map +1 -1
  317. package/dist-cms/packages/members/members/repository/member.repository.js +6 -21
  318. package/dist-cms/packages/members/members/repository/member.repository.js.map +1 -1
  319. package/dist-cms/packages/settings/data-types/components/ref-data-type/ref-data-type.element.d.ts +1 -1
  320. package/dist-cms/packages/settings/data-types/components/ref-data-type/ref-data-type.element.js +5 -5
  321. package/dist-cms/packages/settings/data-types/components/ref-data-type/ref-data-type.element.js.map +1 -1
  322. package/dist-cms/packages/settings/data-types/workspace/data-type-workspace.context.d.ts +1 -1
  323. package/dist-cms/packages/settings/data-types/workspace/data-type-workspace.context.js +1 -1
  324. package/dist-cms/packages/settings/data-types/workspace/data-type-workspace.context.js.map +1 -1
  325. package/dist-cms/packages/settings/data-types/workspace/views/details/data-type-details-workspace-view.element.d.ts +1 -1
  326. package/dist-cms/packages/settings/data-types/workspace/views/details/data-type-details-workspace-view.element.js +12 -12
  327. package/dist-cms/packages/settings/data-types/workspace/views/details/data-type-details-workspace-view.element.js.map +1 -1
  328. package/dist-cms/packages/settings/logviewer/repository/log-viewer.repository.js +11 -25
  329. package/dist-cms/packages/settings/logviewer/repository/log-viewer.repository.js.map +1 -1
  330. package/dist-cms/packages/tags/property-editors/tags/config/storage-type/manifests.js +1 -1
  331. package/dist-cms/packages/tags/property-editors/tags/config/storage-type/manifests.js.map +1 -1
  332. package/dist-cms/packages/tags/property-editors/tags/manifests.js +1 -1
  333. package/dist-cms/packages/tags/property-editors/tags/manifests.js.map +1 -1
  334. package/dist-cms/packages/templating/stylesheets/repository/stylesheet.repository.js +3 -20
  335. package/dist-cms/packages/templating/stylesheets/repository/stylesheet.repository.js.map +1 -1
  336. package/dist-cms/packages/templating/templates/repository/sources/template.detail.server.data.d.ts +2 -2
  337. package/dist-cms/packages/templating/templates/repository/sources/template.detail.server.data.js +2 -2
  338. package/dist-cms/packages/templating/templates/repository/sources/template.detail.server.data.js.map +1 -1
  339. package/dist-cms/packages/templating/templates/repository/sources/template.item.server.data.d.ts +1 -1
  340. package/dist-cms/packages/templating/templates/repository/sources/template.tree.server.data.d.ts +1 -1
  341. package/dist-cms/packages/templating/templates/repository/template-item.store.d.ts +1 -1
  342. package/dist-cms/packages/templating/templates/repository/template.repository.d.ts +3 -3
  343. package/dist-cms/packages/templating/templates/repository/template.repository.js +2 -2
  344. package/dist-cms/packages/templating/templates/repository/template.repository.js.map +1 -1
  345. package/dist-cms/packages/templating/templates/workspace/template-workspace-editor.element.js +3 -33
  346. package/dist-cms/packages/templating/templates/workspace/template-workspace-editor.element.js.map +1 -1
  347. package/dist-cms/packages/templating/templates/workspace/template-workspace.context.d.ts +6 -3
  348. package/dist-cms/packages/templating/templates/workspace/template-workspace.context.js +35 -23
  349. package/dist-cms/packages/templating/templates/workspace/template-workspace.context.js.map +1 -1
  350. package/dist-cms/shared/auth/auth.context.d.ts +1 -0
  351. package/dist-cms/shared/auth/auth.context.js +3 -0
  352. package/dist-cms/shared/auth/auth.context.js.map +1 -1
  353. package/dist-cms/shared/auth/auth.interface.d.ts +4 -0
  354. package/dist-cms/shared/repository/repository-items.manager.d.ts +1 -1
  355. package/dist-cms/shared/repository/repository-items.manager.js +7 -2
  356. package/dist-cms/shared/repository/repository-items.manager.js.map +1 -1
  357. package/dist-cms/shared/utils/index.d.ts +6 -0
  358. package/dist-cms/shared/utils/index.js +1 -0
  359. package/dist-cms/shared/utils/index.js.map +1 -1
  360. package/dist-cms/shared/utils/media-helper.service.d.ts +44 -0
  361. package/dist-cms/shared/utils/media-helper.service.js +152 -0
  362. package/dist-cms/shared/utils/media-helper.service.js.map +1 -0
  363. package/dist-cms/tinymce/CHANGELOG.md +3253 -0
  364. package/dist-cms/tinymce/README.md +71 -0
  365. package/dist-cms/tinymce/bower.json +27 -0
  366. package/dist-cms/tinymce/composer.json +52 -0
  367. package/dist-cms/tinymce/icons/default/icons.js +191 -0
  368. package/dist-cms/tinymce/icons/default/icons.min.js +1 -0
  369. package/dist-cms/tinymce/icons/default/index.js +7 -0
  370. package/dist-cms/tinymce/langs/ar.js +407 -0
  371. package/dist-cms/tinymce/langs/az.js +406 -0
  372. package/dist-cms/tinymce/langs/be.js +406 -0
  373. package/dist-cms/tinymce/langs/bg_BG.js +406 -0
  374. package/dist-cms/tinymce/langs/bn_BD.js +406 -0
  375. package/dist-cms/tinymce/langs/ca.js +406 -0
  376. package/dist-cms/tinymce/langs/cs.js +406 -0
  377. package/dist-cms/tinymce/langs/cy.js +406 -0
  378. package/dist-cms/tinymce/langs/da.js +406 -0
  379. package/dist-cms/tinymce/langs/de.js +406 -0
  380. package/dist-cms/tinymce/langs/dv.js +406 -0
  381. package/dist-cms/tinymce/langs/el.js +406 -0
  382. package/dist-cms/tinymce/langs/eo.js +406 -0
  383. package/dist-cms/tinymce/langs/es.js +406 -0
  384. package/dist-cms/tinymce/langs/es_MX.js +406 -0
  385. package/dist-cms/tinymce/langs/et.js +406 -0
  386. package/dist-cms/tinymce/langs/eu.js +406 -0
  387. package/dist-cms/tinymce/langs/fa.js +407 -0
  388. package/dist-cms/tinymce/langs/fi.js +406 -0
  389. package/dist-cms/tinymce/langs/fr_FR.js +406 -0
  390. package/dist-cms/tinymce/langs/ga.js +406 -0
  391. package/dist-cms/tinymce/langs/gl.js +406 -0
  392. package/dist-cms/tinymce/langs/he_IL.js +407 -0
  393. package/dist-cms/tinymce/langs/hi.js +406 -0
  394. package/dist-cms/tinymce/langs/hr.js +406 -0
  395. package/dist-cms/tinymce/langs/hu_HU.js +406 -0
  396. package/dist-cms/tinymce/langs/hy.js +406 -0
  397. package/dist-cms/tinymce/langs/id.js +406 -0
  398. package/dist-cms/tinymce/langs/is_IS.js +406 -0
  399. package/dist-cms/tinymce/langs/it.js +406 -0
  400. package/dist-cms/tinymce/langs/ja.js +406 -0
  401. package/dist-cms/tinymce/langs/kab.js +406 -0
  402. package/dist-cms/tinymce/langs/kk.js +406 -0
  403. package/dist-cms/tinymce/langs/ko_KR.js +406 -0
  404. package/dist-cms/tinymce/langs/ku.js +407 -0
  405. package/dist-cms/tinymce/langs/lt.js +406 -0
  406. package/dist-cms/tinymce/langs/lv.js +406 -0
  407. package/dist-cms/tinymce/langs/nb_NO.js +406 -0
  408. package/dist-cms/tinymce/langs/ne.js +406 -0
  409. package/dist-cms/tinymce/langs/nl.js +406 -0
  410. package/dist-cms/tinymce/langs/nl_BE.js +406 -0
  411. package/dist-cms/tinymce/langs/oc.js +406 -0
  412. package/dist-cms/tinymce/langs/pl.js +406 -0
  413. package/dist-cms/tinymce/langs/pt_BR.js +406 -0
  414. package/dist-cms/tinymce/langs/ro.js +406 -0
  415. package/dist-cms/tinymce/langs/ru.js +406 -0
  416. package/dist-cms/tinymce/langs/sk.js +406 -0
  417. package/dist-cms/tinymce/langs/sl_SI.js +406 -0
  418. package/dist-cms/tinymce/langs/sq.js +406 -0
  419. package/dist-cms/tinymce/langs/sr.js +406 -0
  420. package/dist-cms/tinymce/langs/sv_SE.js +406 -0
  421. package/dist-cms/tinymce/langs/ta.js +406 -0
  422. package/dist-cms/tinymce/langs/tg.js +406 -0
  423. package/dist-cms/tinymce/langs/th_TH.js +406 -0
  424. package/dist-cms/tinymce/langs/tr.js +406 -0
  425. package/dist-cms/tinymce/langs/ug.js +406 -0
  426. package/dist-cms/tinymce/langs/uk.js +406 -0
  427. package/dist-cms/tinymce/langs/vi.js +406 -0
  428. package/dist-cms/tinymce/langs/zh-Hans.js +406 -0
  429. package/dist-cms/tinymce/langs/zh-Hant.js +406 -0
  430. package/dist-cms/tinymce/langs/zh_HK.js +406 -0
  431. package/dist-cms/tinymce/langs/zh_MO.js +406 -0
  432. package/dist-cms/tinymce/langs/zh_SG.js +406 -0
  433. package/dist-cms/tinymce/license.txt +21 -0
  434. package/dist-cms/tinymce/models/dom/index.js +7 -0
  435. package/dist-cms/tinymce/models/dom/model.js +8040 -0
  436. package/dist-cms/tinymce/models/dom/model.min.js +4 -0
  437. package/dist-cms/tinymce/package.json +32 -0
  438. package/dist-cms/tinymce/plugins/accordion/index.js +7 -0
  439. package/dist-cms/tinymce/plugins/accordion/plugin.js +1033 -0
  440. package/dist-cms/tinymce/plugins/accordion/plugin.min.js +4 -0
  441. package/dist-cms/tinymce/plugins/advlist/index.js +7 -0
  442. package/dist-cms/tinymce/plugins/advlist/plugin.js +259 -0
  443. package/dist-cms/tinymce/plugins/advlist/plugin.min.js +4 -0
  444. package/dist-cms/tinymce/plugins/anchor/index.js +7 -0
  445. package/dist-cms/tinymce/plugins/anchor/plugin.js +214 -0
  446. package/dist-cms/tinymce/plugins/anchor/plugin.min.js +4 -0
  447. package/dist-cms/tinymce/plugins/autolink/index.js +7 -0
  448. package/dist-cms/tinymce/plugins/autolink/plugin.js +228 -0
  449. package/dist-cms/tinymce/plugins/autolink/plugin.min.js +4 -0
  450. package/dist-cms/tinymce/plugins/autoresize/index.js +7 -0
  451. package/dist-cms/tinymce/plugins/autoresize/plugin.js +192 -0
  452. package/dist-cms/tinymce/plugins/autoresize/plugin.min.js +4 -0
  453. package/dist-cms/tinymce/plugins/autosave/index.js +7 -0
  454. package/dist-cms/tinymce/plugins/autosave/plugin.js +233 -0
  455. package/dist-cms/tinymce/plugins/autosave/plugin.min.js +4 -0
  456. package/dist-cms/tinymce/plugins/charmap/index.js +7 -0
  457. package/dist-cms/tinymce/plugins/charmap/plugin.js +1658 -0
  458. package/dist-cms/tinymce/plugins/charmap/plugin.min.js +4 -0
  459. package/dist-cms/tinymce/plugins/code/index.js +7 -0
  460. package/dist-cms/tinymce/plugins/code/plugin.js +85 -0
  461. package/dist-cms/tinymce/plugins/code/plugin.min.js +4 -0
  462. package/dist-cms/tinymce/plugins/codesample/index.js +7 -0
  463. package/dist-cms/tinymce/plugins/codesample/plugin.js +2463 -0
  464. package/dist-cms/tinymce/plugins/codesample/plugin.min.js +4 -0
  465. package/dist-cms/tinymce/plugins/directionality/index.js +7 -0
  466. package/dist-cms/tinymce/plugins/directionality/plugin.js +395 -0
  467. package/dist-cms/tinymce/plugins/directionality/plugin.min.js +4 -0
  468. package/dist-cms/tinymce/plugins/emoticons/index.js +7 -0
  469. package/dist-cms/tinymce/plugins/emoticons/js/emojiimages.js +1 -0
  470. package/dist-cms/tinymce/plugins/emoticons/js/emojiimages.min.js +3 -0
  471. package/dist-cms/tinymce/plugins/emoticons/js/emojis.js +1 -0
  472. package/dist-cms/tinymce/plugins/emoticons/js/emojis.min.js +2 -0
  473. package/dist-cms/tinymce/plugins/emoticons/plugin.js +595 -0
  474. package/dist-cms/tinymce/plugins/emoticons/plugin.min.js +4 -0
  475. package/dist-cms/tinymce/plugins/fullscreen/index.js +7 -0
  476. package/dist-cms/tinymce/plugins/fullscreen/plugin.js +1196 -0
  477. package/dist-cms/tinymce/plugins/fullscreen/plugin.min.js +4 -0
  478. package/dist-cms/tinymce/plugins/help/index.js +7 -0
  479. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/ar.js +90 -0
  480. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/bg_BG.js +90 -0
  481. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/ca.js +90 -0
  482. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/cs.js +90 -0
  483. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/da.js +90 -0
  484. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/de.js +90 -0
  485. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/el.js +90 -0
  486. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/en.js +90 -0
  487. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/es.js +90 -0
  488. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/eu.js +90 -0
  489. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/fa.js +90 -0
  490. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/fi.js +90 -0
  491. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/fr_FR.js +90 -0
  492. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/he_IL.js +90 -0
  493. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/hi.js +90 -0
  494. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/hr.js +90 -0
  495. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/hu_HU.js +90 -0
  496. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/id.js +90 -0
  497. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/it.js +90 -0
  498. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/ja.js +90 -0
  499. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/kk.js +90 -0
  500. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/ko_KR.js +90 -0
  501. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/ms.js +90 -0
  502. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/nb_NO.js +90 -0
  503. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/nl.js +90 -0
  504. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/pl.js +90 -0
  505. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/pt_BR.js +90 -0
  506. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/pt_PT.js +90 -0
  507. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/ro.js +90 -0
  508. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/ru.js +90 -0
  509. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/sk.js +90 -0
  510. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/sl_SI.js +90 -0
  511. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/sv_SE.js +90 -0
  512. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/th_TH.js +90 -0
  513. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/tr.js +90 -0
  514. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/uk.js +90 -0
  515. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/vi.js +90 -0
  516. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/zh_CN.js +84 -0
  517. package/dist-cms/tinymce/plugins/help/js/i18n/keynav/zh_TW.js +90 -0
  518. package/dist-cms/tinymce/plugins/help/plugin.js +893 -0
  519. package/dist-cms/tinymce/plugins/help/plugin.min.js +4 -0
  520. package/dist-cms/tinymce/plugins/image/index.js +7 -0
  521. package/dist-cms/tinymce/plugins/image/plugin.js +1504 -0
  522. package/dist-cms/tinymce/plugins/image/plugin.min.js +4 -0
  523. package/dist-cms/tinymce/plugins/importcss/index.js +7 -0
  524. package/dist-cms/tinymce/plugins/importcss/plugin.js +344 -0
  525. package/dist-cms/tinymce/plugins/importcss/plugin.min.js +4 -0
  526. package/dist-cms/tinymce/plugins/insertdatetime/index.js +7 -0
  527. package/dist-cms/tinymce/plugins/insertdatetime/plugin.js +187 -0
  528. package/dist-cms/tinymce/plugins/insertdatetime/plugin.min.js +4 -0
  529. package/dist-cms/tinymce/plugins/link/index.js +7 -0
  530. package/dist-cms/tinymce/plugins/link/plugin.js +1241 -0
  531. package/dist-cms/tinymce/plugins/link/plugin.min.js +4 -0
  532. package/dist-cms/tinymce/plugins/lists/index.js +7 -0
  533. package/dist-cms/tinymce/plugins/lists/plugin.js +1948 -0
  534. package/dist-cms/tinymce/plugins/lists/plugin.min.js +4 -0
  535. package/dist-cms/tinymce/plugins/media/index.js +7 -0
  536. package/dist-cms/tinymce/plugins/media/plugin.js +1235 -0
  537. package/dist-cms/tinymce/plugins/media/plugin.min.js +4 -0
  538. package/dist-cms/tinymce/plugins/nonbreaking/index.js +7 -0
  539. package/dist-cms/tinymce/plugins/nonbreaking/plugin.js +123 -0
  540. package/dist-cms/tinymce/plugins/nonbreaking/plugin.min.js +4 -0
  541. package/dist-cms/tinymce/plugins/pagebreak/index.js +7 -0
  542. package/dist-cms/tinymce/plugins/pagebreak/plugin.js +117 -0
  543. package/dist-cms/tinymce/plugins/pagebreak/plugin.min.js +4 -0
  544. package/dist-cms/tinymce/plugins/preview/index.js +7 -0
  545. package/dist-cms/tinymce/plugins/preview/plugin.js +97 -0
  546. package/dist-cms/tinymce/plugins/preview/plugin.min.js +4 -0
  547. package/dist-cms/tinymce/plugins/quickbars/index.js +7 -0
  548. package/dist-cms/tinymce/plugins/quickbars/plugin.js +438 -0
  549. package/dist-cms/tinymce/plugins/quickbars/plugin.min.js +4 -0
  550. package/dist-cms/tinymce/plugins/save/index.js +7 -0
  551. package/dist-cms/tinymce/plugins/save/plugin.js +118 -0
  552. package/dist-cms/tinymce/plugins/save/plugin.min.js +4 -0
  553. package/dist-cms/tinymce/plugins/searchreplace/index.js +7 -0
  554. package/dist-cms/tinymce/plugins/searchreplace/plugin.js +1093 -0
  555. package/dist-cms/tinymce/plugins/searchreplace/plugin.min.js +4 -0
  556. package/dist-cms/tinymce/plugins/table/index.js +7 -0
  557. package/dist-cms/tinymce/plugins/table/plugin.js +3462 -0
  558. package/dist-cms/tinymce/plugins/table/plugin.min.js +4 -0
  559. package/dist-cms/tinymce/plugins/template/index.js +7 -0
  560. package/dist-cms/tinymce/plugins/template/plugin.js +567 -0
  561. package/dist-cms/tinymce/plugins/template/plugin.min.js +4 -0
  562. package/dist-cms/tinymce/plugins/visualblocks/index.js +7 -0
  563. package/dist-cms/tinymce/plugins/visualblocks/plugin.js +98 -0
  564. package/dist-cms/tinymce/plugins/visualblocks/plugin.min.js +4 -0
  565. package/dist-cms/tinymce/plugins/visualchars/index.js +7 -0
  566. package/dist-cms/tinymce/plugins/visualchars/plugin.js +560 -0
  567. package/dist-cms/tinymce/plugins/visualchars/plugin.min.js +4 -0
  568. package/dist-cms/tinymce/plugins/wordcount/index.js +7 -0
  569. package/dist-cms/tinymce/plugins/wordcount/plugin.js +405 -0
  570. package/dist-cms/tinymce/plugins/wordcount/plugin.min.js +4 -0
  571. package/dist-cms/tinymce/skins/content/dark/content.css +66 -0
  572. package/dist-cms/tinymce/skins/content/dark/content.min.css +1 -0
  573. package/dist-cms/tinymce/skins/content/default/content.css +61 -0
  574. package/dist-cms/tinymce/skins/content/default/content.min.css +1 -0
  575. package/dist-cms/tinymce/skins/content/document/content.css +66 -0
  576. package/dist-cms/tinymce/skins/content/document/content.min.css +1 -0
  577. package/dist-cms/tinymce/skins/content/tinymce-5/content.css +61 -0
  578. package/dist-cms/tinymce/skins/content/tinymce-5/content.min.css +1 -0
  579. package/dist-cms/tinymce/skins/content/tinymce-5-dark/content.css +66 -0
  580. package/dist-cms/tinymce/skins/content/tinymce-5-dark/content.min.css +1 -0
  581. package/dist-cms/tinymce/skins/content/writer/content.css +62 -0
  582. package/dist-cms/tinymce/skins/content/writer/content.min.css +1 -0
  583. package/dist-cms/tinymce/skins/ui/oxide/content.css +785 -0
  584. package/dist-cms/tinymce/skins/ui/oxide/content.inline.css +779 -0
  585. package/dist-cms/tinymce/skins/ui/oxide/content.inline.min.css +1 -0
  586. package/dist-cms/tinymce/skins/ui/oxide/content.min.css +1 -0
  587. package/dist-cms/tinymce/skins/ui/oxide/skin.css +3688 -0
  588. package/dist-cms/tinymce/skins/ui/oxide/skin.min.css +1 -0
  589. package/dist-cms/tinymce/skins/ui/oxide/skin.shadowdom.css +30 -0
  590. package/dist-cms/tinymce/skins/ui/oxide/skin.shadowdom.min.css +1 -0
  591. package/dist-cms/tinymce/skins/ui/oxide-dark/content.css +766 -0
  592. package/dist-cms/tinymce/skins/ui/oxide-dark/content.inline.css +779 -0
  593. package/dist-cms/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -0
  594. package/dist-cms/tinymce/skins/ui/oxide-dark/content.min.css +1 -0
  595. package/dist-cms/tinymce/skins/ui/oxide-dark/skin.css +3691 -0
  596. package/dist-cms/tinymce/skins/ui/oxide-dark/skin.min.css +1 -0
  597. package/dist-cms/tinymce/skins/ui/oxide-dark/skin.shadowdom.css +30 -0
  598. package/dist-cms/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +1 -0
  599. package/dist-cms/tinymce/skins/ui/tinymce-5/content.css +785 -0
  600. package/dist-cms/tinymce/skins/ui/tinymce-5/content.inline.css +779 -0
  601. package/dist-cms/tinymce/skins/ui/tinymce-5/content.inline.min.css +1 -0
  602. package/dist-cms/tinymce/skins/ui/tinymce-5/content.min.css +1 -0
  603. package/dist-cms/tinymce/skins/ui/tinymce-5/skin.css +3782 -0
  604. package/dist-cms/tinymce/skins/ui/tinymce-5/skin.min.css +1 -0
  605. package/dist-cms/tinymce/skins/ui/tinymce-5/skin.shadowdom.css +30 -0
  606. package/dist-cms/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css +1 -0
  607. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/content.css +766 -0
  608. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/content.inline.css +779 -0
  609. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +1 -0
  610. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/content.min.css +1 -0
  611. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/skin.css +3782 -0
  612. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -0
  613. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.css +30 -0
  614. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css +1 -0
  615. package/dist-cms/tinymce/themes/silver/index.js +7 -0
  616. package/dist-cms/tinymce/themes/silver/theme.js +30167 -0
  617. package/dist-cms/tinymce/themes/silver/theme.min.js +4 -0
  618. package/dist-cms/tinymce/tinymce.d.ts +3206 -0
  619. package/dist-cms/tinymce/tinymce.js +31297 -0
  620. package/dist-cms/tinymce/tinymce.min.js +4 -0
  621. package/dist-cms/tsconfig.tsbuildinfo +1 -1
  622. package/dist-cms/umbraco-package-schema.json +83 -7
  623. package/dist-cms/vscode-html-custom-data.json +86 -17
  624. package/package.json +4 -1
  625. package/dist-cms/packages/core/property-editors/models/Umbraco.TinyMCE.d.ts +0 -2
  626. package/dist-cms/packages/core/property-editors/models/Umbraco.TinyMCE.js.map +0 -1
  627. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/configuration/manifests.d.ts +0 -2
  628. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/configuration/manifests.js +0 -13
  629. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/configuration/manifests.js.map +0 -1
  630. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/configuration/property-editor-ui-tiny-mce-configuration.element.d.ts +0 -16
  631. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/configuration/property-editor-ui-tiny-mce-configuration.element.js +0 -34
  632. package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/configuration/property-editor-ui-tiny-mce-configuration.element.js.map +0 -1
@@ -0,0 +1,1235 @@
1
+ /**
2
+ * TinyMCE version 6.5.1 (2023-06-19)
3
+ */
4
+
5
+ (function () {
6
+ 'use strict';
7
+
8
+ var global$6 = tinymce.util.Tools.resolve('tinymce.PluginManager');
9
+
10
+ const hasProto = (v, constructor, predicate) => {
11
+ var _a;
12
+ if (predicate(v, constructor.prototype)) {
13
+ return true;
14
+ } else {
15
+ return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;
16
+ }
17
+ };
18
+ const typeOf = x => {
19
+ const t = typeof x;
20
+ if (x === null) {
21
+ return 'null';
22
+ } else if (t === 'object' && Array.isArray(x)) {
23
+ return 'array';
24
+ } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {
25
+ return 'string';
26
+ } else {
27
+ return t;
28
+ }
29
+ };
30
+ const isType = type => value => typeOf(value) === type;
31
+ const isString = isType('string');
32
+ const isObject = isType('object');
33
+ const isArray = isType('array');
34
+ const isNullable = a => a === null || a === undefined;
35
+ const isNonNullable = a => !isNullable(a);
36
+
37
+ class Optional {
38
+ constructor(tag, value) {
39
+ this.tag = tag;
40
+ this.value = value;
41
+ }
42
+ static some(value) {
43
+ return new Optional(true, value);
44
+ }
45
+ static none() {
46
+ return Optional.singletonNone;
47
+ }
48
+ fold(onNone, onSome) {
49
+ if (this.tag) {
50
+ return onSome(this.value);
51
+ } else {
52
+ return onNone();
53
+ }
54
+ }
55
+ isSome() {
56
+ return this.tag;
57
+ }
58
+ isNone() {
59
+ return !this.tag;
60
+ }
61
+ map(mapper) {
62
+ if (this.tag) {
63
+ return Optional.some(mapper(this.value));
64
+ } else {
65
+ return Optional.none();
66
+ }
67
+ }
68
+ bind(binder) {
69
+ if (this.tag) {
70
+ return binder(this.value);
71
+ } else {
72
+ return Optional.none();
73
+ }
74
+ }
75
+ exists(predicate) {
76
+ return this.tag && predicate(this.value);
77
+ }
78
+ forall(predicate) {
79
+ return !this.tag || predicate(this.value);
80
+ }
81
+ filter(predicate) {
82
+ if (!this.tag || predicate(this.value)) {
83
+ return this;
84
+ } else {
85
+ return Optional.none();
86
+ }
87
+ }
88
+ getOr(replacement) {
89
+ return this.tag ? this.value : replacement;
90
+ }
91
+ or(replacement) {
92
+ return this.tag ? this : replacement;
93
+ }
94
+ getOrThunk(thunk) {
95
+ return this.tag ? this.value : thunk();
96
+ }
97
+ orThunk(thunk) {
98
+ return this.tag ? this : thunk();
99
+ }
100
+ getOrDie(message) {
101
+ if (!this.tag) {
102
+ throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');
103
+ } else {
104
+ return this.value;
105
+ }
106
+ }
107
+ static from(value) {
108
+ return isNonNullable(value) ? Optional.some(value) : Optional.none();
109
+ }
110
+ getOrNull() {
111
+ return this.tag ? this.value : null;
112
+ }
113
+ getOrUndefined() {
114
+ return this.value;
115
+ }
116
+ each(worker) {
117
+ if (this.tag) {
118
+ worker(this.value);
119
+ }
120
+ }
121
+ toArray() {
122
+ return this.tag ? [this.value] : [];
123
+ }
124
+ toString() {
125
+ return this.tag ? `some(${ this.value })` : 'none()';
126
+ }
127
+ }
128
+ Optional.singletonNone = new Optional(false);
129
+
130
+ const nativePush = Array.prototype.push;
131
+ const each$1 = (xs, f) => {
132
+ for (let i = 0, len = xs.length; i < len; i++) {
133
+ const x = xs[i];
134
+ f(x, i);
135
+ }
136
+ };
137
+ const flatten = xs => {
138
+ const r = [];
139
+ for (let i = 0, len = xs.length; i < len; ++i) {
140
+ if (!isArray(xs[i])) {
141
+ throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);
142
+ }
143
+ nativePush.apply(r, xs[i]);
144
+ }
145
+ return r;
146
+ };
147
+
148
+ const Cell = initial => {
149
+ let value = initial;
150
+ const get = () => {
151
+ return value;
152
+ };
153
+ const set = v => {
154
+ value = v;
155
+ };
156
+ return {
157
+ get,
158
+ set
159
+ };
160
+ };
161
+
162
+ const keys = Object.keys;
163
+ const hasOwnProperty = Object.hasOwnProperty;
164
+ const each = (obj, f) => {
165
+ const props = keys(obj);
166
+ for (let k = 0, len = props.length; k < len; k++) {
167
+ const i = props[k];
168
+ const x = obj[i];
169
+ f(x, i);
170
+ }
171
+ };
172
+ const get$1 = (obj, key) => {
173
+ return has(obj, key) ? Optional.from(obj[key]) : Optional.none();
174
+ };
175
+ const has = (obj, key) => hasOwnProperty.call(obj, key);
176
+
177
+ const option = name => editor => editor.options.get(name);
178
+ const register$2 = editor => {
179
+ const registerOption = editor.options.register;
180
+ registerOption('audio_template_callback', { processor: 'function' });
181
+ registerOption('video_template_callback', { processor: 'function' });
182
+ registerOption('iframe_template_callback', { processor: 'function' });
183
+ registerOption('media_live_embeds', {
184
+ processor: 'boolean',
185
+ default: true
186
+ });
187
+ registerOption('media_filter_html', {
188
+ processor: 'boolean',
189
+ default: true
190
+ });
191
+ registerOption('media_url_resolver', { processor: 'function' });
192
+ registerOption('media_alt_source', {
193
+ processor: 'boolean',
194
+ default: true
195
+ });
196
+ registerOption('media_poster', {
197
+ processor: 'boolean',
198
+ default: true
199
+ });
200
+ registerOption('media_dimensions', {
201
+ processor: 'boolean',
202
+ default: true
203
+ });
204
+ };
205
+ const getAudioTemplateCallback = option('audio_template_callback');
206
+ const getVideoTemplateCallback = option('video_template_callback');
207
+ const getIframeTemplateCallback = option('iframe_template_callback');
208
+ const hasLiveEmbeds = option('media_live_embeds');
209
+ const shouldFilterHtml = option('media_filter_html');
210
+ const getUrlResolver = option('media_url_resolver');
211
+ const hasAltSource = option('media_alt_source');
212
+ const hasPoster = option('media_poster');
213
+ const hasDimensions = option('media_dimensions');
214
+
215
+ var global$5 = tinymce.util.Tools.resolve('tinymce.util.Tools');
216
+
217
+ var global$4 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
218
+
219
+ var global$3 = tinymce.util.Tools.resolve('tinymce.html.DomParser');
220
+
221
+ const DOM$1 = global$4.DOM;
222
+ const trimPx = value => value.replace(/px$/, '');
223
+ const getEphoxEmbedData = node => {
224
+ const style = node.attr('style');
225
+ const styles = style ? DOM$1.parseStyle(style) : {};
226
+ return {
227
+ type: 'ephox-embed-iri',
228
+ source: node.attr('data-ephox-embed-iri'),
229
+ altsource: '',
230
+ poster: '',
231
+ width: get$1(styles, 'max-width').map(trimPx).getOr(''),
232
+ height: get$1(styles, 'max-height').map(trimPx).getOr('')
233
+ };
234
+ };
235
+ const htmlToData = (html, schema) => {
236
+ let data = {};
237
+ const parser = global$3({
238
+ validate: false,
239
+ forced_root_block: false
240
+ }, schema);
241
+ const rootNode = parser.parse(html);
242
+ for (let node = rootNode; node; node = node.walk()) {
243
+ if (node.type === 1) {
244
+ const name = node.name;
245
+ if (node.attr('data-ephox-embed-iri')) {
246
+ data = getEphoxEmbedData(node);
247
+ break;
248
+ } else {
249
+ if (!data.source && name === 'param') {
250
+ data.source = node.attr('movie');
251
+ }
252
+ if (name === 'iframe' || name === 'object' || name === 'embed' || name === 'video' || name === 'audio') {
253
+ if (!data.type) {
254
+ data.type = name;
255
+ }
256
+ data = global$5.extend(node.attributes.map, data);
257
+ }
258
+ if (name === 'script') {
259
+ data = {
260
+ type: 'script',
261
+ source: node.attr('src')
262
+ };
263
+ }
264
+ if (name === 'source') {
265
+ if (!data.source) {
266
+ data.source = node.attr('src');
267
+ } else if (!data.altsource) {
268
+ data.altsource = node.attr('src');
269
+ }
270
+ }
271
+ if (name === 'img' && !data.poster) {
272
+ data.poster = node.attr('src');
273
+ }
274
+ }
275
+ }
276
+ }
277
+ data.source = data.source || data.src || '';
278
+ data.altsource = data.altsource || '';
279
+ data.poster = data.poster || '';
280
+ return data;
281
+ };
282
+
283
+ const guess = url => {
284
+ var _a;
285
+ const mimes = {
286
+ mp3: 'audio/mpeg',
287
+ m4a: 'audio/x-m4a',
288
+ wav: 'audio/wav',
289
+ mp4: 'video/mp4',
290
+ webm: 'video/webm',
291
+ ogg: 'video/ogg',
292
+ swf: 'application/x-shockwave-flash'
293
+ };
294
+ const fileEnd = (_a = url.toLowerCase().split('.').pop()) !== null && _a !== void 0 ? _a : '';
295
+ return get$1(mimes, fileEnd).getOr('');
296
+ };
297
+
298
+ var global$2 = tinymce.util.Tools.resolve('tinymce.html.Node');
299
+
300
+ var global$1 = tinymce.util.Tools.resolve('tinymce.html.Serializer');
301
+
302
+ const Parser = (schema, settings = {}) => global$3({
303
+ forced_root_block: false,
304
+ validate: false,
305
+ allow_conditional_comments: true,
306
+ ...settings
307
+ }, schema);
308
+
309
+ const DOM = global$4.DOM;
310
+ const addPx = value => /^[0-9.]+$/.test(value) ? value + 'px' : value;
311
+ const updateEphoxEmbed = (data, node) => {
312
+ const style = node.attr('style');
313
+ const styleMap = style ? DOM.parseStyle(style) : {};
314
+ if (isNonNullable(data.width)) {
315
+ styleMap['max-width'] = addPx(data.width);
316
+ }
317
+ if (isNonNullable(data.height)) {
318
+ styleMap['max-height'] = addPx(data.height);
319
+ }
320
+ node.attr('style', DOM.serializeStyle(styleMap));
321
+ };
322
+ const sources = [
323
+ 'source',
324
+ 'altsource'
325
+ ];
326
+ const updateHtml = (html, data, updateAll, schema) => {
327
+ let numSources = 0;
328
+ let sourceCount = 0;
329
+ const parser = Parser(schema);
330
+ parser.addNodeFilter('source', nodes => numSources = nodes.length);
331
+ const rootNode = parser.parse(html);
332
+ for (let node = rootNode; node; node = node.walk()) {
333
+ if (node.type === 1) {
334
+ const name = node.name;
335
+ if (node.attr('data-ephox-embed-iri')) {
336
+ updateEphoxEmbed(data, node);
337
+ break;
338
+ } else {
339
+ switch (name) {
340
+ case 'video':
341
+ case 'object':
342
+ case 'embed':
343
+ case 'img':
344
+ case 'iframe':
345
+ if (data.height !== undefined && data.width !== undefined) {
346
+ node.attr('width', data.width);
347
+ node.attr('height', data.height);
348
+ }
349
+ break;
350
+ }
351
+ if (updateAll) {
352
+ switch (name) {
353
+ case 'video':
354
+ node.attr('poster', data.poster);
355
+ node.attr('src', null);
356
+ for (let index = numSources; index < 2; index++) {
357
+ if (data[sources[index]]) {
358
+ const source = new global$2('source', 1);
359
+ source.attr('src', data[sources[index]]);
360
+ source.attr('type', data[sources[index] + 'mime'] || null);
361
+ node.append(source);
362
+ }
363
+ }
364
+ break;
365
+ case 'iframe':
366
+ node.attr('src', data.source);
367
+ break;
368
+ case 'object':
369
+ const hasImage = node.getAll('img').length > 0;
370
+ if (data.poster && !hasImage) {
371
+ node.attr('src', data.poster);
372
+ const img = new global$2('img', 1);
373
+ img.attr('src', data.poster);
374
+ img.attr('width', data.width);
375
+ img.attr('height', data.height);
376
+ node.append(img);
377
+ }
378
+ break;
379
+ case 'source':
380
+ if (sourceCount < 2) {
381
+ node.attr('src', data[sources[sourceCount]]);
382
+ node.attr('type', data[sources[sourceCount] + 'mime'] || null);
383
+ if (!data[sources[sourceCount]]) {
384
+ node.remove();
385
+ continue;
386
+ }
387
+ }
388
+ sourceCount++;
389
+ break;
390
+ case 'img':
391
+ if (!data.poster) {
392
+ node.remove();
393
+ }
394
+ break;
395
+ }
396
+ }
397
+ }
398
+ }
399
+ }
400
+ return global$1({}, schema).serialize(rootNode);
401
+ };
402
+
403
+ const urlPatterns = [
404
+ {
405
+ regex: /youtu\.be\/([\w\-_\?&=.]+)/i,
406
+ type: 'iframe',
407
+ w: 560,
408
+ h: 314,
409
+ url: 'www.youtube.com/embed/$1',
410
+ allowFullscreen: true
411
+ },
412
+ {
413
+ regex: /youtube\.com(.+)v=([^&]+)(&([a-z0-9&=\-_]+))?/i,
414
+ type: 'iframe',
415
+ w: 560,
416
+ h: 314,
417
+ url: 'www.youtube.com/embed/$2?$4',
418
+ allowFullscreen: true
419
+ },
420
+ {
421
+ regex: /youtube.com\/embed\/([a-z0-9\?&=\-_]+)/i,
422
+ type: 'iframe',
423
+ w: 560,
424
+ h: 314,
425
+ url: 'www.youtube.com/embed/$1',
426
+ allowFullscreen: true
427
+ },
428
+ {
429
+ regex: /vimeo\.com\/([0-9]+)\?h=(\w+)/,
430
+ type: 'iframe',
431
+ w: 425,
432
+ h: 350,
433
+ url: 'player.vimeo.com/video/$1?h=$2&title=0&byline=0&portrait=0&color=8dc7dc',
434
+ allowFullscreen: true
435
+ },
436
+ {
437
+ regex: /vimeo\.com\/(.*)\/([0-9]+)\?h=(\w+)/,
438
+ type: 'iframe',
439
+ w: 425,
440
+ h: 350,
441
+ url: 'player.vimeo.com/video/$2?h=$3&title=0&amp;byline=0',
442
+ allowFullscreen: true
443
+ },
444
+ {
445
+ regex: /vimeo\.com\/([0-9]+)/,
446
+ type: 'iframe',
447
+ w: 425,
448
+ h: 350,
449
+ url: 'player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc',
450
+ allowFullscreen: true
451
+ },
452
+ {
453
+ regex: /vimeo\.com\/(.*)\/([0-9]+)/,
454
+ type: 'iframe',
455
+ w: 425,
456
+ h: 350,
457
+ url: 'player.vimeo.com/video/$2?title=0&amp;byline=0',
458
+ allowFullscreen: true
459
+ },
460
+ {
461
+ regex: /maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,
462
+ type: 'iframe',
463
+ w: 425,
464
+ h: 350,
465
+ url: 'maps.google.com/maps/ms?msid=$2&output=embed"',
466
+ allowFullscreen: false
467
+ },
468
+ {
469
+ regex: /dailymotion\.com\/video\/([^_]+)/,
470
+ type: 'iframe',
471
+ w: 480,
472
+ h: 270,
473
+ url: 'www.dailymotion.com/embed/video/$1',
474
+ allowFullscreen: true
475
+ },
476
+ {
477
+ regex: /dai\.ly\/([^_]+)/,
478
+ type: 'iframe',
479
+ w: 480,
480
+ h: 270,
481
+ url: 'www.dailymotion.com/embed/video/$1',
482
+ allowFullscreen: true
483
+ }
484
+ ];
485
+ const getProtocol = url => {
486
+ const protocolMatches = url.match(/^(https?:\/\/|www\.)(.+)$/i);
487
+ if (protocolMatches && protocolMatches.length > 1) {
488
+ return protocolMatches[1] === 'www.' ? 'https://' : protocolMatches[1];
489
+ } else {
490
+ return 'https://';
491
+ }
492
+ };
493
+ const getUrl = (pattern, url) => {
494
+ const protocol = getProtocol(url);
495
+ const match = pattern.regex.exec(url);
496
+ let newUrl = protocol + pattern.url;
497
+ if (isNonNullable(match)) {
498
+ for (let i = 0; i < match.length; i++) {
499
+ newUrl = newUrl.replace('$' + i, () => match[i] ? match[i] : '');
500
+ }
501
+ }
502
+ return newUrl.replace(/\?$/, '');
503
+ };
504
+ const matchPattern = url => {
505
+ const patterns = urlPatterns.filter(pattern => pattern.regex.test(url));
506
+ if (patterns.length > 0) {
507
+ return global$5.extend({}, patterns[0], { url: getUrl(patterns[0], url) });
508
+ } else {
509
+ return null;
510
+ }
511
+ };
512
+
513
+ const getIframeHtml = (data, iframeTemplateCallback) => {
514
+ if (iframeTemplateCallback) {
515
+ return iframeTemplateCallback(data);
516
+ } else {
517
+ const allowFullscreen = data.allowfullscreen ? ' allowFullscreen="1"' : '';
518
+ return '<iframe src="' + data.source + '" width="' + data.width + '" height="' + data.height + '"' + allowFullscreen + '></iframe>';
519
+ }
520
+ };
521
+ const getFlashHtml = data => {
522
+ let html = '<object data="' + data.source + '" width="' + data.width + '" height="' + data.height + '" type="application/x-shockwave-flash">';
523
+ if (data.poster) {
524
+ html += '<img src="' + data.poster + '" width="' + data.width + '" height="' + data.height + '" />';
525
+ }
526
+ html += '</object>';
527
+ return html;
528
+ };
529
+ const getAudioHtml = (data, audioTemplateCallback) => {
530
+ if (audioTemplateCallback) {
531
+ return audioTemplateCallback(data);
532
+ } else {
533
+ return '<audio controls="controls" src="' + data.source + '">' + (data.altsource ? '\n<source src="' + data.altsource + '"' + (data.altsourcemime ? ' type="' + data.altsourcemime + '"' : '') + ' />\n' : '') + '</audio>';
534
+ }
535
+ };
536
+ const getVideoHtml = (data, videoTemplateCallback) => {
537
+ if (videoTemplateCallback) {
538
+ return videoTemplateCallback(data);
539
+ } else {
540
+ return '<video width="' + data.width + '" height="' + data.height + '"' + (data.poster ? ' poster="' + data.poster + '"' : '') + ' controls="controls">\n' + '<source src="' + data.source + '"' + (data.sourcemime ? ' type="' + data.sourcemime + '"' : '') + ' />\n' + (data.altsource ? '<source src="' + data.altsource + '"' + (data.altsourcemime ? ' type="' + data.altsourcemime + '"' : '') + ' />\n' : '') + '</video>';
541
+ }
542
+ };
543
+ const getScriptHtml = data => {
544
+ return '<script src="' + data.source + '"></script>';
545
+ };
546
+ const dataToHtml = (editor, dataIn) => {
547
+ var _a;
548
+ const data = global$5.extend({}, dataIn);
549
+ if (!data.source) {
550
+ global$5.extend(data, htmlToData((_a = data.embed) !== null && _a !== void 0 ? _a : '', editor.schema));
551
+ if (!data.source) {
552
+ return '';
553
+ }
554
+ }
555
+ if (!data.altsource) {
556
+ data.altsource = '';
557
+ }
558
+ if (!data.poster) {
559
+ data.poster = '';
560
+ }
561
+ data.source = editor.convertURL(data.source, 'source');
562
+ data.altsource = editor.convertURL(data.altsource, 'source');
563
+ data.sourcemime = guess(data.source);
564
+ data.altsourcemime = guess(data.altsource);
565
+ data.poster = editor.convertURL(data.poster, 'poster');
566
+ const pattern = matchPattern(data.source);
567
+ if (pattern) {
568
+ data.source = pattern.url;
569
+ data.type = pattern.type;
570
+ data.allowfullscreen = pattern.allowFullscreen;
571
+ data.width = data.width || String(pattern.w);
572
+ data.height = data.height || String(pattern.h);
573
+ }
574
+ if (data.embed) {
575
+ return updateHtml(data.embed, data, true, editor.schema);
576
+ } else {
577
+ const audioTemplateCallback = getAudioTemplateCallback(editor);
578
+ const videoTemplateCallback = getVideoTemplateCallback(editor);
579
+ const iframeTemplateCallback = getIframeTemplateCallback(editor);
580
+ data.width = data.width || '300';
581
+ data.height = data.height || '150';
582
+ global$5.each(data, (value, key) => {
583
+ data[key] = editor.dom.encode('' + value);
584
+ });
585
+ if (data.type === 'iframe') {
586
+ return getIframeHtml(data, iframeTemplateCallback);
587
+ } else if (data.sourcemime === 'application/x-shockwave-flash') {
588
+ return getFlashHtml(data);
589
+ } else if (data.sourcemime.indexOf('audio') !== -1) {
590
+ return getAudioHtml(data, audioTemplateCallback);
591
+ } else if (data.type === 'script') {
592
+ return getScriptHtml(data);
593
+ } else {
594
+ return getVideoHtml(data, videoTemplateCallback);
595
+ }
596
+ }
597
+ };
598
+
599
+ const isMediaElement = element => element.hasAttribute('data-mce-object') || element.hasAttribute('data-ephox-embed-iri');
600
+ const setup$2 = editor => {
601
+ editor.on('click keyup touchend', () => {
602
+ const selectedNode = editor.selection.getNode();
603
+ if (selectedNode && editor.dom.hasClass(selectedNode, 'mce-preview-object')) {
604
+ if (editor.dom.getAttrib(selectedNode, 'data-mce-selected')) {
605
+ selectedNode.setAttribute('data-mce-selected', '2');
606
+ }
607
+ }
608
+ });
609
+ editor.on('ObjectSelected', e => {
610
+ const objectType = e.target.getAttribute('data-mce-object');
611
+ if (objectType === 'script') {
612
+ e.preventDefault();
613
+ }
614
+ });
615
+ editor.on('ObjectResized', e => {
616
+ const target = e.target;
617
+ if (target.getAttribute('data-mce-object')) {
618
+ let html = target.getAttribute('data-mce-html');
619
+ if (html) {
620
+ html = unescape(html);
621
+ target.setAttribute('data-mce-html', escape(updateHtml(html, {
622
+ width: String(e.width),
623
+ height: String(e.height)
624
+ }, false, editor.schema)));
625
+ }
626
+ }
627
+ });
628
+ };
629
+
630
+ const cache = {};
631
+ const embedPromise = (data, dataToHtml, handler) => {
632
+ return new Promise((res, rej) => {
633
+ const wrappedResolve = response => {
634
+ if (response.html) {
635
+ cache[data.source] = response;
636
+ }
637
+ return res({
638
+ url: data.source,
639
+ html: response.html ? response.html : dataToHtml(data)
640
+ });
641
+ };
642
+ if (cache[data.source]) {
643
+ wrappedResolve(cache[data.source]);
644
+ } else {
645
+ handler({ url: data.source }, wrappedResolve, rej);
646
+ }
647
+ });
648
+ };
649
+ const defaultPromise = (data, dataToHtml) => Promise.resolve({
650
+ html: dataToHtml(data),
651
+ url: data.source
652
+ });
653
+ const loadedData = editor => data => dataToHtml(editor, data);
654
+ const getEmbedHtml = (editor, data) => {
655
+ const embedHandler = getUrlResolver(editor);
656
+ return embedHandler ? embedPromise(data, loadedData(editor), embedHandler) : defaultPromise(data, loadedData(editor));
657
+ };
658
+ const isCached = url => has(cache, url);
659
+
660
+ const extractMeta = (sourceInput, data) => get$1(data, sourceInput).bind(mainData => get$1(mainData, 'meta'));
661
+ const getValue = (data, metaData, sourceInput) => prop => {
662
+ const getFromData = () => get$1(data, prop);
663
+ const getFromMetaData = () => get$1(metaData, prop);
664
+ const getNonEmptyValue = c => get$1(c, 'value').bind(v => v.length > 0 ? Optional.some(v) : Optional.none());
665
+ const getFromValueFirst = () => getFromData().bind(child => isObject(child) ? getNonEmptyValue(child).orThunk(getFromMetaData) : getFromMetaData().orThunk(() => Optional.from(child)));
666
+ const getFromMetaFirst = () => getFromMetaData().orThunk(() => getFromData().bind(child => isObject(child) ? getNonEmptyValue(child) : Optional.from(child)));
667
+ return { [prop]: (prop === sourceInput ? getFromValueFirst() : getFromMetaFirst()).getOr('') };
668
+ };
669
+ const getDimensions = (data, metaData) => {
670
+ const dimensions = {};
671
+ get$1(data, 'dimensions').each(dims => {
672
+ each$1([
673
+ 'width',
674
+ 'height'
675
+ ], prop => {
676
+ get$1(metaData, prop).orThunk(() => get$1(dims, prop)).each(value => dimensions[prop] = value);
677
+ });
678
+ });
679
+ return dimensions;
680
+ };
681
+ const unwrap = (data, sourceInput) => {
682
+ const metaData = sourceInput && sourceInput !== 'dimensions' ? extractMeta(sourceInput, data).getOr({}) : {};
683
+ const get = getValue(data, metaData, sourceInput);
684
+ return {
685
+ ...get('source'),
686
+ ...get('altsource'),
687
+ ...get('poster'),
688
+ ...get('embed'),
689
+ ...getDimensions(data, metaData)
690
+ };
691
+ };
692
+ const wrap = data => {
693
+ const wrapped = {
694
+ ...data,
695
+ source: { value: get$1(data, 'source').getOr('') },
696
+ altsource: { value: get$1(data, 'altsource').getOr('') },
697
+ poster: { value: get$1(data, 'poster').getOr('') }
698
+ };
699
+ each$1([
700
+ 'width',
701
+ 'height'
702
+ ], prop => {
703
+ get$1(data, prop).each(value => {
704
+ const dimensions = wrapped.dimensions || {};
705
+ dimensions[prop] = value;
706
+ wrapped.dimensions = dimensions;
707
+ });
708
+ });
709
+ return wrapped;
710
+ };
711
+ const handleError = editor => error => {
712
+ const errorMessage = error && error.msg ? 'Media embed handler error: ' + error.msg : 'Media embed handler threw unknown error.';
713
+ editor.notificationManager.open({
714
+ type: 'error',
715
+ text: errorMessage
716
+ });
717
+ };
718
+ const getEditorData = editor => {
719
+ const element = editor.selection.getNode();
720
+ const snippet = isMediaElement(element) ? editor.serializer.serialize(element, { selection: true }) : '';
721
+ const data = htmlToData(snippet, editor.schema);
722
+ const getDimensionsOfElement = () => {
723
+ if (isEmbedIframe(data.source, data.type)) {
724
+ const rect = editor.dom.getRect(element);
725
+ return {
726
+ width: rect.w.toString().replace(/px$/, ''),
727
+ height: rect.h.toString().replace(/px$/, '')
728
+ };
729
+ } else {
730
+ return {};
731
+ }
732
+ };
733
+ const dimensions = getDimensionsOfElement();
734
+ return {
735
+ embed: snippet,
736
+ ...data,
737
+ ...dimensions
738
+ };
739
+ };
740
+ const addEmbedHtml = (api, editor) => response => {
741
+ if (isString(response.url) && response.url.trim().length > 0) {
742
+ const html = response.html;
743
+ const snippetData = htmlToData(html, editor.schema);
744
+ const nuData = {
745
+ ...snippetData,
746
+ source: response.url,
747
+ embed: html
748
+ };
749
+ api.setData(wrap(nuData));
750
+ }
751
+ };
752
+ const selectPlaceholder = (editor, beforeObjects) => {
753
+ const afterObjects = editor.dom.select('*[data-mce-object]');
754
+ for (let i = 0; i < beforeObjects.length; i++) {
755
+ for (let y = afterObjects.length - 1; y >= 0; y--) {
756
+ if (beforeObjects[i] === afterObjects[y]) {
757
+ afterObjects.splice(y, 1);
758
+ }
759
+ }
760
+ }
761
+ editor.selection.select(afterObjects[0]);
762
+ };
763
+ const handleInsert = (editor, html) => {
764
+ const beforeObjects = editor.dom.select('*[data-mce-object]');
765
+ editor.insertContent(html);
766
+ selectPlaceholder(editor, beforeObjects);
767
+ editor.nodeChanged();
768
+ };
769
+ const isEmbedIframe = (url, mediaDataType) => isNonNullable(mediaDataType) && mediaDataType === 'ephox-embed-iri' && isNonNullable(matchPattern(url));
770
+ const shouldInsertAsNewIframe = (prevData, newData) => {
771
+ const hasDimensionsChanged = (prevData, newData) => prevData.width !== newData.width || prevData.height !== newData.height;
772
+ return hasDimensionsChanged(prevData, newData) && isEmbedIframe(newData.source, prevData.type);
773
+ };
774
+ const submitForm = (prevData, newData, editor) => {
775
+ var _a;
776
+ newData.embed = shouldInsertAsNewIframe(prevData, newData) && hasDimensions(editor) ? dataToHtml(editor, {
777
+ ...newData,
778
+ embed: ''
779
+ }) : updateHtml((_a = newData.embed) !== null && _a !== void 0 ? _a : '', newData, false, editor.schema);
780
+ if (newData.embed && (prevData.source === newData.source || isCached(newData.source))) {
781
+ handleInsert(editor, newData.embed);
782
+ } else {
783
+ getEmbedHtml(editor, newData).then(response => {
784
+ handleInsert(editor, response.html);
785
+ }).catch(handleError(editor));
786
+ }
787
+ };
788
+ const showDialog = editor => {
789
+ const editorData = getEditorData(editor);
790
+ const currentData = Cell(editorData);
791
+ const initialData = wrap(editorData);
792
+ const handleSource = (prevData, api) => {
793
+ const serviceData = unwrap(api.getData(), 'source');
794
+ if (prevData.source !== serviceData.source) {
795
+ addEmbedHtml(win, editor)({
796
+ url: serviceData.source,
797
+ html: ''
798
+ });
799
+ getEmbedHtml(editor, serviceData).then(addEmbedHtml(win, editor)).catch(handleError(editor));
800
+ }
801
+ };
802
+ const handleEmbed = api => {
803
+ var _a;
804
+ const data = unwrap(api.getData());
805
+ const dataFromEmbed = htmlToData((_a = data.embed) !== null && _a !== void 0 ? _a : '', editor.schema);
806
+ api.setData(wrap(dataFromEmbed));
807
+ };
808
+ const handleUpdate = (api, sourceInput, prevData) => {
809
+ const dialogData = unwrap(api.getData(), sourceInput);
810
+ const data = shouldInsertAsNewIframe(prevData, dialogData) && hasDimensions(editor) ? {
811
+ ...dialogData,
812
+ embed: ''
813
+ } : dialogData;
814
+ const embed = dataToHtml(editor, data);
815
+ api.setData(wrap({
816
+ ...data,
817
+ embed
818
+ }));
819
+ };
820
+ const mediaInput = [{
821
+ name: 'source',
822
+ type: 'urlinput',
823
+ filetype: 'media',
824
+ label: 'Source'
825
+ }];
826
+ const sizeInput = !hasDimensions(editor) ? [] : [{
827
+ type: 'sizeinput',
828
+ name: 'dimensions',
829
+ label: 'Constrain proportions',
830
+ constrain: true
831
+ }];
832
+ const generalTab = {
833
+ title: 'General',
834
+ name: 'general',
835
+ items: flatten([
836
+ mediaInput,
837
+ sizeInput
838
+ ])
839
+ };
840
+ const embedTextarea = {
841
+ type: 'textarea',
842
+ name: 'embed',
843
+ label: 'Paste your embed code below:'
844
+ };
845
+ const embedTab = {
846
+ title: 'Embed',
847
+ items: [embedTextarea]
848
+ };
849
+ const advancedFormItems = [];
850
+ if (hasAltSource(editor)) {
851
+ advancedFormItems.push({
852
+ name: 'altsource',
853
+ type: 'urlinput',
854
+ filetype: 'media',
855
+ label: 'Alternative source URL'
856
+ });
857
+ }
858
+ if (hasPoster(editor)) {
859
+ advancedFormItems.push({
860
+ name: 'poster',
861
+ type: 'urlinput',
862
+ filetype: 'image',
863
+ label: 'Media poster (Image URL)'
864
+ });
865
+ }
866
+ const advancedTab = {
867
+ title: 'Advanced',
868
+ name: 'advanced',
869
+ items: advancedFormItems
870
+ };
871
+ const tabs = [
872
+ generalTab,
873
+ embedTab
874
+ ];
875
+ if (advancedFormItems.length > 0) {
876
+ tabs.push(advancedTab);
877
+ }
878
+ const body = {
879
+ type: 'tabpanel',
880
+ tabs
881
+ };
882
+ const win = editor.windowManager.open({
883
+ title: 'Insert/Edit Media',
884
+ size: 'normal',
885
+ body,
886
+ buttons: [
887
+ {
888
+ type: 'cancel',
889
+ name: 'cancel',
890
+ text: 'Cancel'
891
+ },
892
+ {
893
+ type: 'submit',
894
+ name: 'save',
895
+ text: 'Save',
896
+ primary: true
897
+ }
898
+ ],
899
+ onSubmit: api => {
900
+ const serviceData = unwrap(api.getData());
901
+ submitForm(currentData.get(), serviceData, editor);
902
+ api.close();
903
+ },
904
+ onChange: (api, detail) => {
905
+ switch (detail.name) {
906
+ case 'source':
907
+ handleSource(currentData.get(), api);
908
+ break;
909
+ case 'embed':
910
+ handleEmbed(api);
911
+ break;
912
+ case 'dimensions':
913
+ case 'altsource':
914
+ case 'poster':
915
+ handleUpdate(api, detail.name, currentData.get());
916
+ break;
917
+ }
918
+ currentData.set(unwrap(api.getData()));
919
+ },
920
+ initialData
921
+ });
922
+ };
923
+
924
+ const get = editor => {
925
+ const showDialog$1 = () => {
926
+ showDialog(editor);
927
+ };
928
+ return { showDialog: showDialog$1 };
929
+ };
930
+
931
+ const register$1 = editor => {
932
+ const showDialog$1 = () => {
933
+ showDialog(editor);
934
+ };
935
+ editor.addCommand('mceMedia', showDialog$1);
936
+ };
937
+
938
+ const checkRange = (str, substr, start) => substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;
939
+ const startsWith = (str, prefix) => {
940
+ return checkRange(str, prefix, 0);
941
+ };
942
+
943
+ var global = tinymce.util.Tools.resolve('tinymce.Env');
944
+
945
+ const isLiveEmbedNode = node => {
946
+ const name = node.name;
947
+ return name === 'iframe' || name === 'video' || name === 'audio';
948
+ };
949
+ const getDimension = (node, styles, dimension, defaultValue = null) => {
950
+ const value = node.attr(dimension);
951
+ if (isNonNullable(value)) {
952
+ return value;
953
+ } else if (!has(styles, dimension)) {
954
+ return defaultValue;
955
+ } else {
956
+ return null;
957
+ }
958
+ };
959
+ const setDimensions = (node, previewNode, styles) => {
960
+ const useDefaults = previewNode.name === 'img' || node.name === 'video';
961
+ const defaultWidth = useDefaults ? '300' : null;
962
+ const fallbackHeight = node.name === 'audio' ? '30' : '150';
963
+ const defaultHeight = useDefaults ? fallbackHeight : null;
964
+ previewNode.attr({
965
+ width: getDimension(node, styles, 'width', defaultWidth),
966
+ height: getDimension(node, styles, 'height', defaultHeight)
967
+ });
968
+ };
969
+ const appendNodeContent = (editor, nodeName, previewNode, html) => {
970
+ const newNode = Parser(editor.schema).parse(html, { context: nodeName });
971
+ while (newNode.firstChild) {
972
+ previewNode.append(newNode.firstChild);
973
+ }
974
+ };
975
+ const createPlaceholderNode = (editor, node) => {
976
+ const name = node.name;
977
+ const placeHolder = new global$2('img', 1);
978
+ retainAttributesAndInnerHtml(editor, node, placeHolder);
979
+ setDimensions(node, placeHolder, {});
980
+ placeHolder.attr({
981
+ 'style': node.attr('style'),
982
+ 'src': global.transparentSrc,
983
+ 'data-mce-object': name,
984
+ 'class': 'mce-object mce-object-' + name
985
+ });
986
+ return placeHolder;
987
+ };
988
+ const createPreviewNode = (editor, node) => {
989
+ var _a;
990
+ const name = node.name;
991
+ const previewWrapper = new global$2('span', 1);
992
+ previewWrapper.attr({
993
+ 'contentEditable': 'false',
994
+ 'style': node.attr('style'),
995
+ 'data-mce-object': name,
996
+ 'class': 'mce-preview-object mce-object-' + name
997
+ });
998
+ retainAttributesAndInnerHtml(editor, node, previewWrapper);
999
+ const styles = editor.dom.parseStyle((_a = node.attr('style')) !== null && _a !== void 0 ? _a : '');
1000
+ const previewNode = new global$2(name, 1);
1001
+ setDimensions(node, previewNode, styles);
1002
+ previewNode.attr({
1003
+ src: node.attr('src'),
1004
+ style: node.attr('style'),
1005
+ class: node.attr('class')
1006
+ });
1007
+ if (name === 'iframe') {
1008
+ previewNode.attr({
1009
+ allowfullscreen: node.attr('allowfullscreen'),
1010
+ frameborder: '0'
1011
+ });
1012
+ } else {
1013
+ const attrs = [
1014
+ 'controls',
1015
+ 'crossorigin',
1016
+ 'currentTime',
1017
+ 'loop',
1018
+ 'muted',
1019
+ 'poster',
1020
+ 'preload'
1021
+ ];
1022
+ each$1(attrs, attrName => {
1023
+ previewNode.attr(attrName, node.attr(attrName));
1024
+ });
1025
+ const sanitizedHtml = previewWrapper.attr('data-mce-html');
1026
+ if (isNonNullable(sanitizedHtml)) {
1027
+ appendNodeContent(editor, name, previewNode, unescape(sanitizedHtml));
1028
+ }
1029
+ }
1030
+ const shimNode = new global$2('span', 1);
1031
+ shimNode.attr('class', 'mce-shim');
1032
+ previewWrapper.append(previewNode);
1033
+ previewWrapper.append(shimNode);
1034
+ return previewWrapper;
1035
+ };
1036
+ const retainAttributesAndInnerHtml = (editor, sourceNode, targetNode) => {
1037
+ var _a;
1038
+ const attribs = (_a = sourceNode.attributes) !== null && _a !== void 0 ? _a : [];
1039
+ let ai = attribs.length;
1040
+ while (ai--) {
1041
+ const attrName = attribs[ai].name;
1042
+ let attrValue = attribs[ai].value;
1043
+ if (attrName !== 'width' && attrName !== 'height' && attrName !== 'style' && !startsWith(attrName, 'data-mce-')) {
1044
+ if (attrName === 'data' || attrName === 'src') {
1045
+ attrValue = editor.convertURL(attrValue, attrName);
1046
+ }
1047
+ targetNode.attr('data-mce-p-' + attrName, attrValue);
1048
+ }
1049
+ }
1050
+ const serializer = global$1({ inner: true }, editor.schema);
1051
+ const tempNode = new global$2('div', 1);
1052
+ each$1(sourceNode.children(), child => tempNode.append(child));
1053
+ const innerHtml = serializer.serialize(tempNode);
1054
+ if (innerHtml) {
1055
+ targetNode.attr('data-mce-html', escape(innerHtml));
1056
+ targetNode.empty();
1057
+ }
1058
+ };
1059
+ const isPageEmbedWrapper = node => {
1060
+ const nodeClass = node.attr('class');
1061
+ return isString(nodeClass) && /\btiny-pageembed\b/.test(nodeClass);
1062
+ };
1063
+ const isWithinEmbedWrapper = node => {
1064
+ let tempNode = node;
1065
+ while (tempNode = tempNode.parent) {
1066
+ if (tempNode.attr('data-ephox-embed-iri') || isPageEmbedWrapper(tempNode)) {
1067
+ return true;
1068
+ }
1069
+ }
1070
+ return false;
1071
+ };
1072
+ const placeHolderConverter = editor => nodes => {
1073
+ let i = nodes.length;
1074
+ let node;
1075
+ while (i--) {
1076
+ node = nodes[i];
1077
+ if (!node.parent) {
1078
+ continue;
1079
+ }
1080
+ if (node.parent.attr('data-mce-object')) {
1081
+ continue;
1082
+ }
1083
+ if (isLiveEmbedNode(node) && hasLiveEmbeds(editor)) {
1084
+ if (!isWithinEmbedWrapper(node)) {
1085
+ node.replace(createPreviewNode(editor, node));
1086
+ }
1087
+ } else {
1088
+ if (!isWithinEmbedWrapper(node)) {
1089
+ node.replace(createPlaceholderNode(editor, node));
1090
+ }
1091
+ }
1092
+ }
1093
+ };
1094
+
1095
+ const parseAndSanitize = (editor, context, html) => {
1096
+ const getEditorOption = editor.options.get;
1097
+ const sanitize = getEditorOption('xss_sanitization');
1098
+ const validate = shouldFilterHtml(editor);
1099
+ return Parser(editor.schema, {
1100
+ sanitize,
1101
+ validate
1102
+ }).parse(html, { context });
1103
+ };
1104
+
1105
+ const setup$1 = editor => {
1106
+ editor.on('PreInit', () => {
1107
+ const {schema, serializer, parser} = editor;
1108
+ const boolAttrs = schema.getBoolAttrs();
1109
+ each$1('webkitallowfullscreen mozallowfullscreen'.split(' '), name => {
1110
+ boolAttrs[name] = {};
1111
+ });
1112
+ each({ embed: ['wmode'] }, (attrs, name) => {
1113
+ const rule = schema.getElementRule(name);
1114
+ if (rule) {
1115
+ each$1(attrs, attr => {
1116
+ rule.attributes[attr] = {};
1117
+ rule.attributesOrder.push(attr);
1118
+ });
1119
+ }
1120
+ });
1121
+ parser.addNodeFilter('iframe,video,audio,object,embed,script', placeHolderConverter(editor));
1122
+ serializer.addAttributeFilter('data-mce-object', (nodes, name) => {
1123
+ var _a;
1124
+ let i = nodes.length;
1125
+ while (i--) {
1126
+ const node = nodes[i];
1127
+ if (!node.parent) {
1128
+ continue;
1129
+ }
1130
+ const realElmName = node.attr(name);
1131
+ const realElm = new global$2(realElmName, 1);
1132
+ if (realElmName !== 'audio' && realElmName !== 'script') {
1133
+ const className = node.attr('class');
1134
+ if (className && className.indexOf('mce-preview-object') !== -1 && node.firstChild) {
1135
+ realElm.attr({
1136
+ width: node.firstChild.attr('width'),
1137
+ height: node.firstChild.attr('height')
1138
+ });
1139
+ } else {
1140
+ realElm.attr({
1141
+ width: node.attr('width'),
1142
+ height: node.attr('height')
1143
+ });
1144
+ }
1145
+ }
1146
+ realElm.attr({ style: node.attr('style') });
1147
+ const attribs = (_a = node.attributes) !== null && _a !== void 0 ? _a : [];
1148
+ let ai = attribs.length;
1149
+ while (ai--) {
1150
+ const attrName = attribs[ai].name;
1151
+ if (attrName.indexOf('data-mce-p-') === 0) {
1152
+ realElm.attr(attrName.substr(11), attribs[ai].value);
1153
+ }
1154
+ }
1155
+ if (realElmName === 'script') {
1156
+ realElm.attr('type', 'text/javascript');
1157
+ }
1158
+ const innerHtml = node.attr('data-mce-html');
1159
+ if (innerHtml) {
1160
+ const fragment = parseAndSanitize(editor, realElmName, unescape(innerHtml));
1161
+ each$1(fragment.children(), child => realElm.append(child));
1162
+ }
1163
+ node.replace(realElm);
1164
+ }
1165
+ });
1166
+ });
1167
+ editor.on('SetContent', () => {
1168
+ const dom = editor.dom;
1169
+ each$1(dom.select('span.mce-preview-object'), elm => {
1170
+ if (dom.select('span.mce-shim', elm).length === 0) {
1171
+ dom.add(elm, 'span', { class: 'mce-shim' });
1172
+ }
1173
+ });
1174
+ });
1175
+ };
1176
+
1177
+ const setup = editor => {
1178
+ editor.on('ResolveName', e => {
1179
+ let name;
1180
+ if (e.target.nodeType === 1 && (name = e.target.getAttribute('data-mce-object'))) {
1181
+ e.name = name;
1182
+ }
1183
+ });
1184
+ };
1185
+
1186
+ const onSetupEditable = editor => api => {
1187
+ const nodeChanged = () => {
1188
+ api.setEnabled(editor.selection.isEditable());
1189
+ };
1190
+ editor.on('NodeChange', nodeChanged);
1191
+ nodeChanged();
1192
+ return () => {
1193
+ editor.off('NodeChange', nodeChanged);
1194
+ };
1195
+ };
1196
+ const register = editor => {
1197
+ const onAction = () => editor.execCommand('mceMedia');
1198
+ editor.ui.registry.addToggleButton('media', {
1199
+ tooltip: 'Insert/edit media',
1200
+ icon: 'embed',
1201
+ onAction,
1202
+ onSetup: buttonApi => {
1203
+ const selection = editor.selection;
1204
+ buttonApi.setActive(isMediaElement(selection.getNode()));
1205
+ const unbindSelectorChanged = selection.selectorChangedWithUnbind('img[data-mce-object],span[data-mce-object],div[data-ephox-embed-iri]', buttonApi.setActive).unbind;
1206
+ const unbindEditable = onSetupEditable(editor)(buttonApi);
1207
+ return () => {
1208
+ unbindSelectorChanged();
1209
+ unbindEditable();
1210
+ };
1211
+ }
1212
+ });
1213
+ editor.ui.registry.addMenuItem('media', {
1214
+ icon: 'embed',
1215
+ text: 'Media...',
1216
+ onAction,
1217
+ onSetup: onSetupEditable(editor)
1218
+ });
1219
+ };
1220
+
1221
+ var Plugin = () => {
1222
+ global$6.add('media', editor => {
1223
+ register$2(editor);
1224
+ register$1(editor);
1225
+ register(editor);
1226
+ setup(editor);
1227
+ setup$1(editor);
1228
+ setup$2(editor);
1229
+ return get(editor);
1230
+ });
1231
+ };
1232
+
1233
+ Plugin();
1234
+
1235
+ })();