Skip to content
Snippets Groups Projects
Select Git revision
  • ef7fd18e57d115351cff654d7bbe02965ee7dc0a
  • main default protected
  • drip-server-timing
  • compress-middleware
  • v2.11.0
  • v2.10.0
  • v2.9.2
  • v2.9.1
  • v2.9.0
  • v2.8.0
  • v2.7.0
  • v2.6.0
  • v2.5.6
  • v2.5.5
  • v2.5.4
  • v2.5.3
  • v2.5.2
  • v2.5.1
  • v2.5.0
  • v2.4.2
  • v2.4.1
  • v2.4.0
  • v2.3.0
  • v2.2.2
24 results

main.go

Blame
  • Video.js 1.97 KiB
    import videoIcon from "raw-loader!../../icons/youtube-brands.svg";
    
    export const VideoBlock = (bm, label) => {
        bm.add('bs-video', {
            label: `
                ${videoIcon}
                <div>${label}</div>
            `,
            category: 'Media',
            content: {
                type: 'bs-video'
            }
        });
    };
    
    export default (domComponent) => {
        const videoType = domComponent.getType('video');
        const model = videoType.model;
        const view = videoType.view;
        const type = 'bs-embed-responsive';
    
        domComponent.addType(type, {
            model: model.extend({
                defaults: Object.assign({}, model.prototype.defaults, {
                    'custom-name': 'Video',
                    resizable: false,
                    droppable: false,
                    draggable: false,
                    copyable: false,
                    provider: 'so',
                    classes: ['embed-responsive-item'],
                })
            }, {
                isComponent: function(el) {
                    if(el && el.className === 'embed-responsive-item') {
                        var result = {
                            provider: 'so',
                            type: type
                        };
                        var isYtProv = /youtube\.com\/embed/.test(el.src);
                        var isYtncProv = /youtube-nocookie\.com\/embed/.test(el.src);
                        var isViProv = /player\.vimeo\.com\/video/.test(el.src);
                        var isExtProv = isYtProv || isYtncProv || isViProv;
                        if (el.tagName == 'VIDEO' || (el.tagName == 'IFRAME' && isExtProv)) {
                          if (el.src) result.src = el.src;
                          if (isExtProv) {
                            if (isYtProv) result.provider = 'yt';
                            else if (isYtncProv) result.provider = 'ytnc';
                            else if (isViProv) result.provider = 'vi';
                          }
                        }
                        return result;
    
                    }
                }
            }),
            view: view
        });
    }