UNPKG

domtastic

Version:

Small, fast, and modular DOM and event library for modern browsers.

48 lines (43 loc) 1.23 kB
/** * @module BaseClass */ import { $ as selector, DOMtastic } from './selector/index'; import { extend } from './util'; export default function(api) { /** * Provide subclass for classes or components to extend from. * The opposite and successor of plugins (no need to extend `$.fn` anymore, complete control). * * @return {Class} The class to extend from, including all `$.fn` methods. * @example * import { BaseClass } from 'domtastic'; * * class MyComponent extends BaseClass { * doSomething() { * return this.addClass('.foo'); * } * } * * let component = new MyComponent('body'); * component.doSomething(); * * @example * import $ from 'domtastic'; * * class MyComponent extends $.BaseClass { * progress(value) { * return this.attr('data-progress', value); * } * } * * let component = new MyComponent(document.body); * component.progress('ive').append('<p>enhancement</p>'); */ class BaseClass { constructor() { DOMtastic.call(this, selector(...arguments)); } } extend(BaseClass.prototype, api); return BaseClass; }