import {nativeVlElement, define} from '/node_modules/vl-ui-core/dist/vl-core.js';

/**
 * VlSideNavigationItem
 * @class
 * @classdesc Het navigatie item element.
 *
 * @extends HTMLLIElement
 * @mixes nativeVlElement
 *
 * @property {boolean} data-vl-parent - Attribuut wordt gebruikt op de navigatie menu list elementen.
 *
 * @see {@link https://www.github.com/milieuinfo/webcomponent-vl-ui-side-navigation/releases/latest|Release notes}
 * @see {@link https://www.github.com/milieuinfo/webcomponent-vl-ui-side-navigation/issues|Issues}
 * @see {@link https://webcomponenten.omgeving.vlaanderen.be/demo/vl-side-navigation.html|Demo}
 *
 */
export class VlSideNavigationItem extends nativeVlElement(HTMLLIElement) {
  static get _observedAttributes() {
    return ['parent'];
  }

  constructor() {
    super();
    this._processClasses();
  }

  _processClasses() {
    this.classList.add('vl-side-navigation__item');
  }

  _parentChangedCallback(oldValue, newValue) {
    const clazz = 'vl-side-navigation__item--parent';
    if (newValue != undefined) {
      this.classList.add(clazz);
    } else {
      this.classList.remove(clazz);
    }
  }
}

define('vl-side-navigation-item', VlSideNavigationItem, {extends: 'li'});