UNPKG

semantic-ui-riot

Version:
82 lines (68 loc) 2.17 kB
let index = 0; // =================================================================================== // Lifecycle // ========= // eslint-disable-next-line no-unused-vars function onMounted(props, state) { this.su_id = `su-tab-title-${index++}`; this.update(); this.obs.on(`${this.su_id}-toggle-active`, active => { this.update({ active }); }); this.obs.on(`${this.su_id}-add-tabset-id`, suTabsetId => { this.suTabsetId = suTabsetId; }); } // =================================================================================== // Events // ====== function onClick() { this.obs.trigger(`${this.suTabsetId}-title-clicked`, this.$('a.item').innerText.trim()); } var suTabTitle = { 'css': null, 'exports': { state: { active: false, }, onMounted, onClick }, 'template': function(template, expressionTypes, bindingTypes, getComponent) { return template('<a expr102="expr102"><slot expr103="expr103"></slot></a>', [{ 'expressions': [{ 'type': expressionTypes.ATTRIBUTE, 'name': 'id', 'evaluate': function(scope) { return scope.su_id; } }] }, { 'redundantAttribute': 'expr102', 'selector': '[expr102]', 'expressions': [{ 'type': expressionTypes.ATTRIBUTE, 'name': 'class', 'evaluate': function(scope) { return [scope.props.class, ' ', scope.state.active && 'active', ' item'].join(''); } }, { 'type': expressionTypes.EVENT, 'name': 'onclick', 'evaluate': function(scope) { return scope.onClick; } }] }, { 'type': bindingTypes.SLOT, 'attributes': [], 'name': 'default', 'redundantAttribute': 'expr103', 'selector': '[expr103]' }]); }, 'name': 'su-tab-title' }; export default suTabTitle;