JSFiddle - React, Tailwind, and code Playground

by ericf

JavaScript

YUI.add('wid', function(Y) {

    Y.Wid = Y.Base.create('wid', Y.Widget, [], {

        initializer: function() {
            this.publish('inner', {
                defaultFn: function(){ this._innerClickFn.apply(this, arguments); }
            });

            this.on('click', this._clickFn, this);
        },

        renderUI: function() {
            this.get('contentBox').setContent('Wid');
        },

        _clickFn: function(e) {
            Y.log('_clickFn');
            e.preventDefault();
            this.fire('inner');
        },

        _innerClickFn: function() {
            Y.log('_innerClickFn');
        }

    }, {});

}, '0.1', {
    requires: ['widget', 'base-build']
});

YUI.add('plg', function(Y) {

    Y.Plg = Y.Base.create('plg', Y.Plugin.Base, [], {
        initializer: function() {
            Y.log('plg::initializer');
            this.beforeHostMethod('_innerClickFn', this._outterClickFn, this);
        },

        _outterClickFn: function() {
            Y.log('_outterClickFn');
        }

    }, {
        NS: 'plg'
    });

}, '0.1', {
    requires: ['plugin', 'base-build']
});

YUI().use('wid', 'plg', function(Y) {

    var w = new Y.Wid();
    w.render();
    w.plug(Y.Plg);
    
    w._innerClickFn();
});