import {nativeVlElement, define} from '/node_modules/vl-ui-core/dist/vl-core.js';
/**
* VLActionGroup
* @class
* @classdesc Toon meerdere knoppen of links. De groep zorgt ervoor dat ze correct zijn uitgelijnd.
*
* @extends HTMLDivElement
* @mixes nativeVlElement
*
* @property {string} data-vl-align - Attribuut wordt gebruikt om ervoor te zorgen dat de onderliggende elementen worden gealigneerd. Mogelijkheden: align="center" of align="right".
* @property {boolean} data-vl-space-between - Attribuut wordt gebruikt om aan te duiden dat de ruimte tussen de elementen volledig moet worden opgevuld.
* @property {boolean} data-vl-bordered - Attribuut wordt gebruikt om aan te duiden dat de tussenliggende elementen een rand krijgen.
* @property {boolean} data-vl-collapse-l - Attribuut wordt gebruikt om de button bij large schermen als block element te tonen.
* @property {boolean} data-vl-collapse-m - Attribuut wordt gebruikt om de button bij medium schermen als block element te tonen.
* @property {boolean} data-vl-collapse-s - Attribuut wordt gebruikt om de button bij small schermen als block element te tonen.
* @property {boolean} data-vl-collapse-xs - Attribuut wordt gebruikt om de button bij extra small schermen als block element te tonen.
*
* @see {@link https://www.github.com/milieuinfo/webcomponent-vl-ui-action-group/releases/latest|Release notes}
* @see {@link https://www.github.com/milieuinfo/webcomponent-vl-ui-action-group/issues|Issues}
* @see {@link https://webcomponenten.omgeving.vlaanderen.be/demo/vl-action-group.html|Demo}
*/
export class VlActionGroup extends nativeVlElement(HTMLDivElement) {
static get _observedClassAttributes() {
return ['align', 'space-between', 'bordered', 'collapse-l', 'collapse-m', 'collapse-s', 'collapse-xs'];
}
connectedCallback() {
this.classList.add('vl-action-group');
}
get _classPrefix() {
return 'vl-action-group--';
}
_alignChangedCallback(oldValue, newValue) {
this._changeClass(this, ('align-' + oldValue), ('align-' + newValue), this._classPrefix);
}
_collapseLChangedCallback(oldValue, newValue) {
this._toggleCollapseClass(newValue, 'l');
}
_collapseMChangedCallback(oldValue, newValue) {
this._toggleCollapseClass(newValue, 'm');
}
_collapseSChangedCallback(oldValue, newValue) {
this._toggleCollapseClass(newValue, 's');
}
_collapseXsChangedCallback(oldValue, newValue) {
this._toggleCollapseClass(newValue, 'xs');
}
_toggleCollapseClass(value, type) {
this._toggleClass(this, value, `${this._classPrefix}collapse--${type}`);
}
}
define('vl-action-group', VlActionGroup, {extends: 'div'});