react-dyn-tabs
Version:
React dynamic tabs with full API
68 lines • 2.14 kB
JavaScript
/* eslint react/prop-types: 0 */
import React from 'react';
import Helper from '../../helper.js';
export default Helper.module(function (DefaulTabInnerComponent) {
if (DefaulTabInnerComponent === void 0) {
DefaulTabInnerComponent = null;
}
this.defaultDirection = 'ltr';
this._DefaulTabInnerComponent = DefaulTabInnerComponent;
this.directionsRange = ['ltr', 'rtl'];
}, {
getOptions: function getOptions() {
return this._getOptions();
},
_getOptions: function _getOptions() {
var _options = {
tabs: [],
selectedTabID: '',
theme: 'all-themes',
tablistStyle: {},
beforeSelect: function beforeSelect() {
return true;
},
beforeClose: function beforeClose() {
return true;
},
onOpen: function onOpen() {},
onClose: function onClose() {},
onFirstSelect: function onFirstSelect() {},
onSelect: function onSelect() {},
onChange: function onChange() {},
onLoad: function onLoad() {},
onDestroy: function onDestroy() {},
onInit: function onInit() {},
accessibility: true,
isVertical: false,
defaultPanelComponent: function defaultPanelComponent() {
return /*#__PURE__*/React.createElement("div", null);
}
};
var _direction = this.defaultDirection,
_tabComponent = this._DefaulTabInnerComponent;
var that = this;
Object.defineProperties(_options, {
direction: {
get: function get() {
return _direction;
},
set: function set(value) {
if (that.directionsRange.indexOf(value) === -1) throw 'Invalid direction value! it can be eather of "ltr" or "rtl" ';
_direction = value;
},
enumerable: true
},
tabComponent: {
get: function get() {
return _tabComponent;
},
set: function set(fn) {
if (fn && typeof fn !== 'function') throw 'tabComponent property must be type of a function.';
_tabComponent = fn ? fn : that._DefaulTabInnerComponent;
},
enumerable: true
}
});
return _options;
}
});