Guest User

Untitled

a guest
Jun 18th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. (function() {
  2. const { log, warn, error } = console;
  3. const BM = editor.BlockManager;
  4. const DC = editor.DomComponents;
  5.  
  6. var defaultType = DC.getType('default');
  7. var defaultModel = defaultType.model;
  8. var defaultView = defaultType.view;
  9.  
  10.  
  11. // test video component
  12. DC.addType( 'my-video-comp', {
  13. model: defaultModel.extend( {
  14. defaults: Object.assign( {}, defaultModel.prototype.defaults, {
  15. draggable: true,
  16. droppable: true,
  17. traits: [ 'src' ],
  18. content: '<video class="my-video-player"></video>',
  19. style: { position: 'relative', width: '10cm', height: '6cm' },
  20. } ),
  21. },
  22. {
  23. isComponent( el ) {
  24. return el.classList.contains('my-video');
  25. }
  26. } ),
  27. view: defaultView.extend( {
  28. events: {
  29. },
  30. render() {
  31. defaultView.prototype.render.apply(this, arguments);
  32. let el = this.el;
  33. let attr = el.attributes;
  34. let videoel = el.firstChild;
  35. videoel.src = attr.src.value;
  36. videoel.autoplay = true;
  37. // styles must be in right place
  38. videoel.style = "position: absolute; width: inherit; height: auto; top: 0; left: 0; z-index: -1;";
  39. el.style.position = 'relative';
  40. el.style[ 'z-index' ] = 2;
  41. return this;
  42. }
  43. } )
  44. } );
  45.  
  46. // replace builtin component
  47. BM.get('video').attributes.content.type = 'my-video-comp';
  48.  
  49.  
  50. editor.on('component:add', function( ...args ) {
  51. log( 'component add', ...args )
  52. } );
  53. editor.on('component:remove', function( ...args ) {
  54. log( 'component remove', ...args )
  55. } );
  56.  
  57. })();
Add Comment
Please, Sign In to add comment