Source: picture/modules/source.js

/**
 * @summary aofl-source
 * @version 3.0.0
 * @since 3.0.0
 * @author Arian Khosravi <arian.khosravi@aofl.com>
 */
import {AoflElement} from '@aofl/element';
import {findParent} from '@aofl/component-utils';
/**
 * AoflSource component must be used as a child of aofl-picture and specifies images
 * for different media queries.
 *
 * @memberof module:@aofl/picture
 * @extends {AoflElement}
 */
class AoflSource extends AoflElement {
  /**
   * @param {*} args
   */
  connectedCallback(...args) {
    super.connectedCallback(...args);
    const parent = findParent(this, 'addSource');
    /* istanbul ignore next */
    if (!parent) {
      throw new Error('aofl-source must be used inside of aofl-picture');
    }

    parent.addSource(this);
  }
  /**
   * @readonly
   * @type {String}
   */
  static get is() {
    return 'aofl-source';
  }
  /**
   * @readonly
   * @type {Object}
   */
  static get properties() {
    return {
      media: {type: String},
      srcset: {type: String}
    };
  }
  /**
   * @return {Object}
   */
  render() {
    return super.render((ctx, html) => '');
  }
}

if (window.customElements.get(AoflSource.is) === void 0) {
  window.customElements.define(AoflSource.is, AoflSource);
}

export default AoflSource;