;
override render() {
const toggleBtnClasses = {
'tag-reveal-toggle': true,
[`tag-reveal-toggle-${this.tagSize}`]: true,
};
return html`
${this.limitTags && this.tags.length > 5
? html`
`
: null}
`;
}
override updated(changedProps: any) {
if (
changedProps.has('filter') ||
changedProps.has('tagSize') ||
changedProps.has('limitTags')
) {
this._updateChildren();
}
}
private _handleSlotChange() {
this._updateChildren();
this.requestUpdate();
}
private _updateChildren() {
// set filter for each tag
this.tags.forEach((tag: any) => {
tag.filter = this.filter;
});
// set tag size for each tag
this.tags.forEach((tag: any) => {
tag.tagSize = this.tagSize;
});
this._toggleRevealed(false);
}
private _toggleRevealed(revealed: boolean) {
const Limit = 5;
this.limitRevealed = revealed;
this.tags.forEach((tagEl, index) => {
if (!this.limitTags || this.limitRevealed) {
tagEl.style.display = 'inline-block';
} else {
if (index < Limit) {
tagEl.style.display = 'inline-block';
} else {
tagEl.style.display = 'none';
}
}
});
}
}
declare global {
interface HTMLElementTagNameMap {
'kyn-tag-group': TagGroup;
}
}