New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

eks

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

eks - npm Package Compare versions

Comparing version 0.1.0 to 0.2.0

src/components/table/cell.js

4

CHANGELOG.md
# Changelog
## 0.2.0 (Oct 12, 2017)
- Add a new component: Table.
## 0.1.0 (Sep 17, 2017)

@@ -4,0 +8,0 @@

/*!
* Eks v0.1.0
* Eks v0.2.0
* https://github.com/xkeshi/eks

@@ -8,3 +8,3 @@ *

*
* Date: 2017-09-17T09:06:41.137Z
* Date: 2017-10-12T06:12:32.094Z
*/

@@ -164,2 +164,46 @@

var toConsumableArray = function (arr) {
if (Array.isArray(arr)) {
for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
return arr2;
} else {
return Array.from(arr);
}
};
var _Object$prototype = Object.prototype;

@@ -249,4 +293,6 @@ var toString = _Object$prototype.toString;

*/
function isFunction(value) {
return typeof value === 'function';
}
/**

@@ -468,5 +514,5 @@ * Check if the given value is a function.

var NumberInput = { render: function render() {
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: "eks-number-input", class: defineProperty({ 'eks-number-input--inline': _vm.inline, 'eks-number-input--center': _vm.center, 'eks-number-input--controls': _vm.controls }, 'eks-number-input--' + _vm.size, _vm.size), attrs: { "value": _vm.value } }, [_vm.controls ? _c('button', { staticClass: "eks-number-input__button eks-number-input__button--minus", attrs: { "type": "button", "disabled": _vm.disabled || _vm.readonly || !_vm.decreasable }, on: { "click": _vm.decrease } }) : _vm._e(), _c('eks-input', _vm._b({ ref: "input", staticClass: "eks-number-input__input", attrs: { "type": "number", "value": _vm.currentValue, "min": _vm.min, "max": _vm.max, "step": _vm.step, "size": _vm.size, "readonly": _vm.readonly, "disabled": _vm.disabled || !_vm.decreasable && !_vm.increasable }, on: { "change": _vm.change }, nativeOn: { "paste": function paste($event) {
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: "eks-number-input", class: defineProperty({ 'eks-number-input--inline': _vm.inline, 'eks-number-input--center': _vm.center, 'eks-number-input--controls': _vm.controls }, 'eks-number-input--' + _vm.size, _vm.size), attrs: { "value": _vm.value } }, [_vm.controls ? _c('button', { staticClass: "eks-number-input__button eks-number-input__button--minus", attrs: { "type": "button", "disabled": _vm.disabled || _vm.readonly || !_vm.decreasable }, on: { "click": _vm.decrease } }) : _vm._e(), _vm._v(" "), _c('eks-input', _vm._b({ ref: "input", staticClass: "eks-number-input__input", attrs: { "type": "number", "value": _vm.currentValue, "min": _vm.min, "max": _vm.max, "step": _vm.step, "size": _vm.size, "readonly": _vm.readonly, "disabled": _vm.disabled || !_vm.decreasable && !_vm.increasable }, on: { "change": _vm.change }, nativeOn: { "paste": function paste($event) {
_vm.paste($event);
} } }, 'eks-input', _vm.$attrs, false)), _vm.controls ? _c('button', { staticClass: "eks-number-input__button eks-number-input__button--plus", attrs: { "type": "button", "disabled": _vm.disabled || _vm.readonly || !_vm.increasable }, on: { "click": _vm.increase } }) : _vm._e()], 1);
} } }, 'eks-input', _vm.$attrs, false)), _vm._v(" "), _vm.controls ? _c('button', { staticClass: "eks-number-input__button eks-number-input__button--plus", attrs: { "type": "button", "disabled": _vm.disabled || _vm.readonly || !_vm.increasable }, on: { "click": _vm.increase } }) : _vm._e()], 1);
}, staticRenderFns: [],

@@ -616,3 +662,3 @@ name: 'eks-number-input',

var Checkbox = { render: function render() {
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('label', { staticClass: "eks-checkbox", class: { 'eks-checkbox--disabled': _vm.disabled } }, [_c('input', _vm._b({ ref: "input", staticClass: "eks-checkbox__input", attrs: { "type": "checkbox", "name": _vm.name, "disabled": _vm.disabled }, domProps: { "value": _vm.value, "checked": _vm.isChecked }, on: { "change": _vm.change } }, 'input', _vm.$attrs, false)), _vm._v(" "), _c('span', { staticClass: "eks-checkbox__indicator" }), _vm._t("default")], 2);
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('label', { staticClass: "eks-checkbox", class: { 'eks-checkbox--disabled': _vm.disabled } }, [_c('input', _vm._b({ ref: "input", staticClass: "eks-checkbox__input", attrs: { "type": "checkbox", "name": _vm.name, "disabled": _vm.disabled }, domProps: { "value": _vm.value, "checked": _vm.isChecked }, on: { "change": _vm.change } }, 'input', _vm.$attrs, false)), _vm._v(" "), _c('span', { staticClass: "eks-checkbox__indicator" }), _vm._v(" "), _vm._t("default")], 2);
}, staticRenderFns: [],

@@ -769,3 +815,3 @@ name: 'eks-checkbox',

var Radio = { render: function render() {
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('label', { staticClass: "eks-radio", class: { 'eks-radio--disabled': _vm.disabled } }, [_c('input', _vm._b({ staticClass: "eks-radio__input", attrs: { "type": "radio", "name": _vm.name, "disabled": _vm.disabled }, domProps: { "value": _vm.value, "checked": _vm.isChecked }, on: { "change": _vm.change } }, 'input', _vm.$attrs, false)), _vm._v(" "), _c('span', { staticClass: "eks-radio__indicator" }), _vm._t("default")], 2);
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('label', { staticClass: "eks-radio", class: { 'eks-radio--disabled': _vm.disabled } }, [_c('input', _vm._b({ staticClass: "eks-radio__input", attrs: { "type": "radio", "name": _vm.name, "disabled": _vm.disabled }, domProps: { "value": _vm.value, "checked": _vm.isChecked }, on: { "change": _vm.change } }, 'input', _vm.$attrs, false)), _vm._v(" "), _c('span', { staticClass: "eks-radio__indicator" }), _vm._v(" "), _vm._t("default")], 2);
}, staticRenderFns: [],

@@ -851,7 +897,7 @@ name: 'eks-radio',

var Select = { render: function render() {
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('select', { staticClass: "eks-select", class: defineProperty({ 'eks-select--inline': _vm.inline }, 'eks-select--' + _vm.sizes.custom, _vm.sizes.custom), attrs: { "size": _vm.sizes.native }, on: { "change": _vm.change } }, [_vm.placeholder ? _c('option', [_vm._v(_vm._s(_vm.placeholder))]) : _vm._e(), _vm._l(_vm.list, function (option, index) {
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('select', { staticClass: "eks-select", class: defineProperty({ 'eks-select--inline': _vm.inline }, 'eks-select--' + _vm.sizes.custom, _vm.sizes.custom), attrs: { "size": _vm.sizes.native }, on: { "change": _vm.change } }, [_vm.placeholder ? _c('option', [_vm._v(_vm._s(_vm.placeholder))]) : _vm._e(), _vm._v(" "), _vm._l(_vm.list, function (option, index) {
return [option.options ? _c('optgroup', { key: index, attrs: { "label": option.label, "disabled": option.disabled } }, _vm._l(option.options, function (opt, i) {
return _c('option', { key: i, attrs: { "label": opt.label, "disabled": opt.disabled }, domProps: { "value": opt.value, "selected": opt.value === _vm.value || opt.selected } }, [_vm._v(_vm._s(opt.label !== undefined ? opt.label : opt.value))]);
})) : _c('option', { key: index, attrs: { "label": option.label, "disabled": option.disabled }, domProps: { "value": option.value, "selected": option.value === _vm.value || option.selected } }, [_vm._v(_vm._s(option.label !== undefined ? option.label : option.value))])];
}), _vm._t("default")], 2);
}), _vm._v(" "), _vm._t("default")], 2);
}, staticRenderFns: [],

@@ -959,2 +1005,582 @@ name: 'eks-select',

var Cell = {
name: 'eks-table-cell',
props: {
colSpan: Number,
content: null,
headers: String,
index: null,
rowSpan: Number,
sortable: Boolean,
sortType: {
type: Number,
// 0: default, 1: ascending, 2: descending
default: 0
},
scope: String,
tag: {
type: String,
default: 'td'
}
},
computed: {
$table: function $table() {
return this.$parent.$parent.$parent;
}
},
render: function render(createElement) {
var _this = this;
var content = this.content,
sortType = this.sortType,
sortable = this.sortable;
var component = {};
if (isObject(content)) {
assign(component, content);
} else if (isFunction(content)) {
component.render = function (h) {
return content.call(_this, h, _this);
};
} else {
component.template = '<span>' + content + '</span>';
}
return createElement(this.tag, {
attrs: {
colSpan: this.colSpan,
headers: this.headers,
rowSpan: this.rowSpan,
scope: this.scope
},
class: {
'eks-table__cell': true,
'eks-table__cell--sortable': sortable,
'eks-table__cell--ascended': sortable && sortType === 1,
'eks-table__cell--descended': sortable && sortType === 2
},
on: sortable ? {
click: this.click
} : null
}, [createElement('div', {
class: 'eks-table__content'
}, [createElement(component), sortable ? createElement('i', {
class: 'eks-table__icon eks-table__icon--sort'
}, [createElement('span', {
on: {
click: function click() {
_this.sortType = 0;
}
}
}), createElement('span', {
on: {
click: function click() {
_this.sortType = 1;
}
}
})]) : undefined])]);
},
methods: {
click: function click() {
if (this.sortable) {
this.$table.sort(this.index, this.sortType + 1);
}
}
}
};
var Row$1 = {
name: 'eks-table-row',
props: {
cells: {
type: Array,
required: true
},
disabled: Boolean,
indeterminate: Boolean,
index: null,
selected: Boolean,
raw: [Array, Object],
tag: {
type: String,
default: 'tr'
}
},
computed: {
$table: function $table() {
return this.$parent.$parent;
},
inHeader: function inHeader() {
return this.$parent.tag === 'thead';
},
selectable: function selectable() {
return this.$table.selectable;
},
multiple: function multiple() {
return this.$table.multiple;
},
controls: function controls() {
return this.$table.controls;
}
},
render: function render(createElement) {
var selectable = this.selectable,
multiple = this.multiple,
controls = this.controls,
inHeader = this.inHeader,
indeterminate = this.indeterminate,
selected = this.selected,
disabled = this.disabled;
var cells = [].concat(toConsumableArray(this.cells));
if (selectable && controls) {
cells.unshift({
content: function content(h) {
return h(multiple ? 'eks-checkbox' : 'eks-radio', {
props: {
indeterminate: indeterminate,
checked: selected,
disabled: !multiple && inHeader || disabled
}
});
}
});
}
return createElement(this.tag, {
class: {
'eks-table__row': true,
'eks-table__row--disabled': selectable && disabled && !inHeader,
'eks-table__row--selected': selectable && selected && !controls && !inHeader
},
on: {
click: this.click
}
}, cells.map(function (cell, i) {
return createElement(Cell, {
key: i,
props: cell,
style: cell.style
});
}));
},
methods: {
click: function click() {
if (!this.selectable || this.disabled) {
return;
}
var $table = this.$table,
multiple = this.multiple;
if (this.inHeader) {
if (multiple && this.controls) {
$table.select(true, this.selected || this.indeterminate);
}
} else {
$table.select(this.raw, multiple && this.selected);
}
}
}
};
var Section = {
name: 'eks-table-section',
props: {
index: null,
rows: {
type: Array,
required: true
},
tag: {
type: String,
default: 'tbody'
}
},
render: function render(createElement) {
return createElement(this.tag, {
class: 'eks-table__section'
}, this.rows.map(function (row, i) {
return createElement(Row$1, {
key: i,
props: row,
style: row.style
});
}));
}
};
var _window = window;
var JSON = _window.JSON;
var Table = {
name: 'eks-table',
data: function data() {
return {
sections: []
};
},
model: {
prop: 'selectedRows',
event: 'change'
},
props: {
bordered: Boolean,
caption: String,
colgroup: Array,
controls: Boolean,
data: Array,
disabledRows: Array,
hoverable: Boolean,
multiple: Boolean,
responsive: Boolean,
selectable: Boolean,
selectedRows: Array,
size: String,
striped: Boolean,
tag: {
type: String,
default: 'table'
}
},
render: function render(createElement) {
var caption = this.caption,
colgroup = this.colgroup,
size = this.size;
var children = [];
if (caption) {
children.push(createElement('caption', {
domProps: {
textContent: caption
}
}));
}
if (colgroup) {
children.push(createElement('colgroup', colgroup.map(function (col, index) {
return createElement('col', {
attrs: {
span: col.span
},
key: index,
style: col.style
});
})));
}
return createElement(this.tag, {
class: defineProperty({
'eks-table': true,
'eks-table--bordered': this.bordered,
'eks-table--hoverable': this.hoverable,
'eks-table--selectable': this.selectable,
'eks-table--multiple': this.multiple,
'eks-table--controls': this.controls,
'eks-table--responsive': this.responsive,
'eks-table--striped': this.striped
}, 'eks-table--' + size, size)
}, children.concat(this.sections.map(function (section, index) {
return createElement(Section, {
key: index,
props: section,
style: section.style
});
})));
},
methods: {
init: function init() {
var data = this.data,
selectable = this.selectable,
_selectedRows = this.selectedRows,
selectedRows = _selectedRows === undefined ? [] : _selectedRows,
_disabledRows = this.disabledRows,
disabledRows = _disabledRows === undefined ? [] : _disabledRows;
if (!isArray(data)) {
return;
}
var defaultSection = {
rows: [],
tag: 'tbody'
};
var sections = [];
data.forEach(function (section, index) {
if (isObject(section)) {
if (isArray(section.rows)) {
sections.push(assign({
index: index,
rows: [],
tag: 'tbody'
}, section));
return;
}
} else if (!isArray(section)) {
throw new Error('Invalid table section: ' + JSON.stringify(section));
}
defaultSection.rows.push(section);
if (!includes(defaultSection, sections)) {
sections.push(defaultSection);
}
});
sections = sections.map(function (section, sectionIndex) {
var $section = {
index: sectionIndex,
rows: [],
tag: 'tbody'
};
if (isArray(section)) {
$section.rows = section;
} else if (isObject(section)) {
if (isArray(section.rows)) {
assign($section, section);
} else {
forEach(section, function (row, rowIndex) {
$section.rows.push({
cells: row,
index: rowIndex
});
});
}
} else {
throw new Error('Invalid table section: ' + JSON.stringify(section));
}
$section.rows = $section.rows.map(function (row, rowIndex) {
var $row = {
cells: [],
index: rowIndex,
raw: row,
indeterminate: false,
selected: includes(row, selectedRows),
disabled: includes(row, disabledRows),
tag: 'tr'
};
if (isArray(row)) {
$row.cells = row;
} else if (isObject(row)) {
if (isArray(row.cells)) {
assign($row, row);
} else {
forEach(row, function (cell, cellIndex) {
$row.cells.push({
content: cell,
index: cellIndex
});
});
}
} else {
throw new Error('Invalid table row: ' + JSON.stringify(row));
}
if (!selectable) {
$row.selected = false;
}
$row.cells = $row.cells.map(function (cell, cellIndex) {
var $cell = {
content: '',
index: cellIndex,
sortType: 0,
tag: $section.tag === 'thead' ? 'th' : 'td'
};
if (isObject(cell) && cell.content) {
assign($cell, cell);
} else {
$cell.content = cell;
}
return $cell;
});
return $row;
});
return $section;
});
this.sections = sections.sort(function (a, b) {
var orders = {
thead: 0,
tbody: 1,
tfoot: 2
};
return orders[a.tag] - orders[b.tag];
});
this.select();
},
sort: function sort(index, sortType) {
if (sortType > 2) {
sortType = 0;
}
this.sections.forEach(function (section) {
if (section.tag === 'thead') {
section.rows.forEach(function (row) {
row.cells.forEach(function (cell, cellIndex) {
cell.sortType = cellIndex === index ? sortType : 0;
});
});
return;
}
section.rows.sort(function (a, b) {
var cellA = a.cells[index];
var cellB = b.cells[index];
if (sortType > 0) {
var cellAContent = cellA.content;
var cellBContent = cellB.content;
switch (sortType) {
// Descending
case 2:
return [cellAContent, cellBContent].sort()[0] === cellAContent ? 1 : -1;
// Ascending
case 1:
return [cellAContent, cellBContent].sort()[0] === cellAContent ? -1 : 1;
default:
}
}
return a.index - b.index;
});
});
},
/**
* Select a row or all rows.
* @param {Array|Object|boolean} target - The target row or all rows if the value is `true`.
* @param {*} reversed - Indicate if the operation is reversed (deselect) or not.
*/
select: function select(target) {
var reversed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (!this.selectable) {
return;
}
var multiple = this.multiple;
var selectAll = multiple && target === true;
var selectedRows = [];
var totalRows = 0;
var thead = void 0;
this.sections.forEach(function (section) {
switch (section.tag) {
case 'thead':
thead = section;
break;
case 'tbody':
section.rows.forEach(function (row) {
totalRows += 1;
if (row.disabled) {
return;
}
if (!multiple && !isUndefined(target)) {
row.selected = false;
}
if (selectAll || row.raw === target) {
row.selected = !reversed;
}
if (row.selected) {
selectedRows.push(row.raw);
}
});
break;
// case 'tfoot':
default:
}
});
if (multiple && this.controls && thead) {
var row = thead.rows[thead.rows.length - 1];
var totalSelectedRows = selectedRows.length;
if (totalSelectedRows === totalRows) {
row.indeterminate = false;
row.selected = true;
} else if (totalSelectedRows > 0) {
row.selected = false;
row.indeterminate = true;
} else {
row.selected = false;
row.indeterminate = false;
}
}
if (!isUndefined(target)) {
this.$emit('change', selectedRows);
}
}
},
watch: {
data: function data() {
this.init();
}
},
mounted: function mounted() {
this.init();
}
};
var Textarea = { render: function render() {

@@ -1062,2 +1688,3 @@ var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('textarea', { staticClass: "eks-textarea", attrs: { "rows": _vm.rowsAsNumber }, domProps: { "value": _vm.currentValue }, on: { "input": _vm.input, "change": _vm.change } });

Select: Select,
Table: Table,
Textarea: Textarea,

@@ -1075,2 +1702,3 @@

Vue.component(Select.name, Select);
Vue.component(Table.name, Table);
Vue.component(Textarea.name, Textarea);

@@ -1077,0 +1705,0 @@ }

/*!
* Eks v0.1.0
* Eks v0.2.0
* https://github.com/xkeshi/eks

@@ -8,3 +8,3 @@ *

*
* Date: 2017-09-17T09:06:41.137Z
* Date: 2017-10-12T06:12:32.094Z
*/

@@ -162,2 +162,46 @@

var toConsumableArray = function (arr) {
if (Array.isArray(arr)) {
for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
return arr2;
} else {
return Array.from(arr);
}
};
var _Object$prototype = Object.prototype;

@@ -247,4 +291,6 @@ var toString = _Object$prototype.toString;

*/
function isFunction(value) {
return typeof value === 'function';
}
/**

@@ -466,5 +512,5 @@ * Check if the given value is a function.

var NumberInput = { render: function render() {
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: "eks-number-input", class: defineProperty({ 'eks-number-input--inline': _vm.inline, 'eks-number-input--center': _vm.center, 'eks-number-input--controls': _vm.controls }, 'eks-number-input--' + _vm.size, _vm.size), attrs: { "value": _vm.value } }, [_vm.controls ? _c('button', { staticClass: "eks-number-input__button eks-number-input__button--minus", attrs: { "type": "button", "disabled": _vm.disabled || _vm.readonly || !_vm.decreasable }, on: { "click": _vm.decrease } }) : _vm._e(), _c('eks-input', _vm._b({ ref: "input", staticClass: "eks-number-input__input", attrs: { "type": "number", "value": _vm.currentValue, "min": _vm.min, "max": _vm.max, "step": _vm.step, "size": _vm.size, "readonly": _vm.readonly, "disabled": _vm.disabled || !_vm.decreasable && !_vm.increasable }, on: { "change": _vm.change }, nativeOn: { "paste": function paste($event) {
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: "eks-number-input", class: defineProperty({ 'eks-number-input--inline': _vm.inline, 'eks-number-input--center': _vm.center, 'eks-number-input--controls': _vm.controls }, 'eks-number-input--' + _vm.size, _vm.size), attrs: { "value": _vm.value } }, [_vm.controls ? _c('button', { staticClass: "eks-number-input__button eks-number-input__button--minus", attrs: { "type": "button", "disabled": _vm.disabled || _vm.readonly || !_vm.decreasable }, on: { "click": _vm.decrease } }) : _vm._e(), _vm._v(" "), _c('eks-input', _vm._b({ ref: "input", staticClass: "eks-number-input__input", attrs: { "type": "number", "value": _vm.currentValue, "min": _vm.min, "max": _vm.max, "step": _vm.step, "size": _vm.size, "readonly": _vm.readonly, "disabled": _vm.disabled || !_vm.decreasable && !_vm.increasable }, on: { "change": _vm.change }, nativeOn: { "paste": function paste($event) {
_vm.paste($event);
} } }, 'eks-input', _vm.$attrs, false)), _vm.controls ? _c('button', { staticClass: "eks-number-input__button eks-number-input__button--plus", attrs: { "type": "button", "disabled": _vm.disabled || _vm.readonly || !_vm.increasable }, on: { "click": _vm.increase } }) : _vm._e()], 1);
} } }, 'eks-input', _vm.$attrs, false)), _vm._v(" "), _vm.controls ? _c('button', { staticClass: "eks-number-input__button eks-number-input__button--plus", attrs: { "type": "button", "disabled": _vm.disabled || _vm.readonly || !_vm.increasable }, on: { "click": _vm.increase } }) : _vm._e()], 1);
}, staticRenderFns: [],

@@ -614,3 +660,3 @@ name: 'eks-number-input',

var Checkbox = { render: function render() {
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('label', { staticClass: "eks-checkbox", class: { 'eks-checkbox--disabled': _vm.disabled } }, [_c('input', _vm._b({ ref: "input", staticClass: "eks-checkbox__input", attrs: { "type": "checkbox", "name": _vm.name, "disabled": _vm.disabled }, domProps: { "value": _vm.value, "checked": _vm.isChecked }, on: { "change": _vm.change } }, 'input', _vm.$attrs, false)), _vm._v(" "), _c('span', { staticClass: "eks-checkbox__indicator" }), _vm._t("default")], 2);
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('label', { staticClass: "eks-checkbox", class: { 'eks-checkbox--disabled': _vm.disabled } }, [_c('input', _vm._b({ ref: "input", staticClass: "eks-checkbox__input", attrs: { "type": "checkbox", "name": _vm.name, "disabled": _vm.disabled }, domProps: { "value": _vm.value, "checked": _vm.isChecked }, on: { "change": _vm.change } }, 'input', _vm.$attrs, false)), _vm._v(" "), _c('span', { staticClass: "eks-checkbox__indicator" }), _vm._v(" "), _vm._t("default")], 2);
}, staticRenderFns: [],

@@ -767,3 +813,3 @@ name: 'eks-checkbox',

var Radio = { render: function render() {
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('label', { staticClass: "eks-radio", class: { 'eks-radio--disabled': _vm.disabled } }, [_c('input', _vm._b({ staticClass: "eks-radio__input", attrs: { "type": "radio", "name": _vm.name, "disabled": _vm.disabled }, domProps: { "value": _vm.value, "checked": _vm.isChecked }, on: { "change": _vm.change } }, 'input', _vm.$attrs, false)), _vm._v(" "), _c('span', { staticClass: "eks-radio__indicator" }), _vm._t("default")], 2);
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('label', { staticClass: "eks-radio", class: { 'eks-radio--disabled': _vm.disabled } }, [_c('input', _vm._b({ staticClass: "eks-radio__input", attrs: { "type": "radio", "name": _vm.name, "disabled": _vm.disabled }, domProps: { "value": _vm.value, "checked": _vm.isChecked }, on: { "change": _vm.change } }, 'input', _vm.$attrs, false)), _vm._v(" "), _c('span', { staticClass: "eks-radio__indicator" }), _vm._v(" "), _vm._t("default")], 2);
}, staticRenderFns: [],

@@ -849,7 +895,7 @@ name: 'eks-radio',

var Select = { render: function render() {
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('select', { staticClass: "eks-select", class: defineProperty({ 'eks-select--inline': _vm.inline }, 'eks-select--' + _vm.sizes.custom, _vm.sizes.custom), attrs: { "size": _vm.sizes.native }, on: { "change": _vm.change } }, [_vm.placeholder ? _c('option', [_vm._v(_vm._s(_vm.placeholder))]) : _vm._e(), _vm._l(_vm.list, function (option, index) {
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('select', { staticClass: "eks-select", class: defineProperty({ 'eks-select--inline': _vm.inline }, 'eks-select--' + _vm.sizes.custom, _vm.sizes.custom), attrs: { "size": _vm.sizes.native }, on: { "change": _vm.change } }, [_vm.placeholder ? _c('option', [_vm._v(_vm._s(_vm.placeholder))]) : _vm._e(), _vm._v(" "), _vm._l(_vm.list, function (option, index) {
return [option.options ? _c('optgroup', { key: index, attrs: { "label": option.label, "disabled": option.disabled } }, _vm._l(option.options, function (opt, i) {
return _c('option', { key: i, attrs: { "label": opt.label, "disabled": opt.disabled }, domProps: { "value": opt.value, "selected": opt.value === _vm.value || opt.selected } }, [_vm._v(_vm._s(opt.label !== undefined ? opt.label : opt.value))]);
})) : _c('option', { key: index, attrs: { "label": option.label, "disabled": option.disabled }, domProps: { "value": option.value, "selected": option.value === _vm.value || option.selected } }, [_vm._v(_vm._s(option.label !== undefined ? option.label : option.value))])];
}), _vm._t("default")], 2);
}), _vm._v(" "), _vm._t("default")], 2);
}, staticRenderFns: [],

@@ -957,2 +1003,582 @@ name: 'eks-select',

var Cell = {
name: 'eks-table-cell',
props: {
colSpan: Number,
content: null,
headers: String,
index: null,
rowSpan: Number,
sortable: Boolean,
sortType: {
type: Number,
// 0: default, 1: ascending, 2: descending
default: 0
},
scope: String,
tag: {
type: String,
default: 'td'
}
},
computed: {
$table: function $table() {
return this.$parent.$parent.$parent;
}
},
render: function render(createElement) {
var _this = this;
var content = this.content,
sortType = this.sortType,
sortable = this.sortable;
var component = {};
if (isObject(content)) {
assign(component, content);
} else if (isFunction(content)) {
component.render = function (h) {
return content.call(_this, h, _this);
};
} else {
component.template = '<span>' + content + '</span>';
}
return createElement(this.tag, {
attrs: {
colSpan: this.colSpan,
headers: this.headers,
rowSpan: this.rowSpan,
scope: this.scope
},
class: {
'eks-table__cell': true,
'eks-table__cell--sortable': sortable,
'eks-table__cell--ascended': sortable && sortType === 1,
'eks-table__cell--descended': sortable && sortType === 2
},
on: sortable ? {
click: this.click
} : null
}, [createElement('div', {
class: 'eks-table__content'
}, [createElement(component), sortable ? createElement('i', {
class: 'eks-table__icon eks-table__icon--sort'
}, [createElement('span', {
on: {
click: function click() {
_this.sortType = 0;
}
}
}), createElement('span', {
on: {
click: function click() {
_this.sortType = 1;
}
}
})]) : undefined])]);
},
methods: {
click: function click() {
if (this.sortable) {
this.$table.sort(this.index, this.sortType + 1);
}
}
}
};
var Row$1 = {
name: 'eks-table-row',
props: {
cells: {
type: Array,
required: true
},
disabled: Boolean,
indeterminate: Boolean,
index: null,
selected: Boolean,
raw: [Array, Object],
tag: {
type: String,
default: 'tr'
}
},
computed: {
$table: function $table() {
return this.$parent.$parent;
},
inHeader: function inHeader() {
return this.$parent.tag === 'thead';
},
selectable: function selectable() {
return this.$table.selectable;
},
multiple: function multiple() {
return this.$table.multiple;
},
controls: function controls() {
return this.$table.controls;
}
},
render: function render(createElement) {
var selectable = this.selectable,
multiple = this.multiple,
controls = this.controls,
inHeader = this.inHeader,
indeterminate = this.indeterminate,
selected = this.selected,
disabled = this.disabled;
var cells = [].concat(toConsumableArray(this.cells));
if (selectable && controls) {
cells.unshift({
content: function content(h) {
return h(multiple ? 'eks-checkbox' : 'eks-radio', {
props: {
indeterminate: indeterminate,
checked: selected,
disabled: !multiple && inHeader || disabled
}
});
}
});
}
return createElement(this.tag, {
class: {
'eks-table__row': true,
'eks-table__row--disabled': selectable && disabled && !inHeader,
'eks-table__row--selected': selectable && selected && !controls && !inHeader
},
on: {
click: this.click
}
}, cells.map(function (cell, i) {
return createElement(Cell, {
key: i,
props: cell,
style: cell.style
});
}));
},
methods: {
click: function click() {
if (!this.selectable || this.disabled) {
return;
}
var $table = this.$table,
multiple = this.multiple;
if (this.inHeader) {
if (multiple && this.controls) {
$table.select(true, this.selected || this.indeterminate);
}
} else {
$table.select(this.raw, multiple && this.selected);
}
}
}
};
var Section = {
name: 'eks-table-section',
props: {
index: null,
rows: {
type: Array,
required: true
},
tag: {
type: String,
default: 'tbody'
}
},
render: function render(createElement) {
return createElement(this.tag, {
class: 'eks-table__section'
}, this.rows.map(function (row, i) {
return createElement(Row$1, {
key: i,
props: row,
style: row.style
});
}));
}
};
var _window = window;
var JSON = _window.JSON;
var Table = {
name: 'eks-table',
data: function data() {
return {
sections: []
};
},
model: {
prop: 'selectedRows',
event: 'change'
},
props: {
bordered: Boolean,
caption: String,
colgroup: Array,
controls: Boolean,
data: Array,
disabledRows: Array,
hoverable: Boolean,
multiple: Boolean,
responsive: Boolean,
selectable: Boolean,
selectedRows: Array,
size: String,
striped: Boolean,
tag: {
type: String,
default: 'table'
}
},
render: function render(createElement) {
var caption = this.caption,
colgroup = this.colgroup,
size = this.size;
var children = [];
if (caption) {
children.push(createElement('caption', {
domProps: {
textContent: caption
}
}));
}
if (colgroup) {
children.push(createElement('colgroup', colgroup.map(function (col, index) {
return createElement('col', {
attrs: {
span: col.span
},
key: index,
style: col.style
});
})));
}
return createElement(this.tag, {
class: defineProperty({
'eks-table': true,
'eks-table--bordered': this.bordered,
'eks-table--hoverable': this.hoverable,
'eks-table--selectable': this.selectable,
'eks-table--multiple': this.multiple,
'eks-table--controls': this.controls,
'eks-table--responsive': this.responsive,
'eks-table--striped': this.striped
}, 'eks-table--' + size, size)
}, children.concat(this.sections.map(function (section, index) {
return createElement(Section, {
key: index,
props: section,
style: section.style
});
})));
},
methods: {
init: function init() {
var data = this.data,
selectable = this.selectable,
_selectedRows = this.selectedRows,
selectedRows = _selectedRows === undefined ? [] : _selectedRows,
_disabledRows = this.disabledRows,
disabledRows = _disabledRows === undefined ? [] : _disabledRows;
if (!isArray(data)) {
return;
}
var defaultSection = {
rows: [],
tag: 'tbody'
};
var sections = [];
data.forEach(function (section, index) {
if (isObject(section)) {
if (isArray(section.rows)) {
sections.push(assign({
index: index,
rows: [],
tag: 'tbody'
}, section));
return;
}
} else if (!isArray(section)) {
throw new Error('Invalid table section: ' + JSON.stringify(section));
}
defaultSection.rows.push(section);
if (!includes(defaultSection, sections)) {
sections.push(defaultSection);
}
});
sections = sections.map(function (section, sectionIndex) {
var $section = {
index: sectionIndex,
rows: [],
tag: 'tbody'
};
if (isArray(section)) {
$section.rows = section;
} else if (isObject(section)) {
if (isArray(section.rows)) {
assign($section, section);
} else {
forEach(section, function (row, rowIndex) {
$section.rows.push({
cells: row,
index: rowIndex
});
});
}
} else {
throw new Error('Invalid table section: ' + JSON.stringify(section));
}
$section.rows = $section.rows.map(function (row, rowIndex) {
var $row = {
cells: [],
index: rowIndex,
raw: row,
indeterminate: false,
selected: includes(row, selectedRows),
disabled: includes(row, disabledRows),
tag: 'tr'
};
if (isArray(row)) {
$row.cells = row;
} else if (isObject(row)) {
if (isArray(row.cells)) {
assign($row, row);
} else {
forEach(row, function (cell, cellIndex) {
$row.cells.push({
content: cell,
index: cellIndex
});
});
}
} else {
throw new Error('Invalid table row: ' + JSON.stringify(row));
}
if (!selectable) {
$row.selected = false;
}
$row.cells = $row.cells.map(function (cell, cellIndex) {
var $cell = {
content: '',
index: cellIndex,
sortType: 0,
tag: $section.tag === 'thead' ? 'th' : 'td'
};
if (isObject(cell) && cell.content) {
assign($cell, cell);
} else {
$cell.content = cell;
}
return $cell;
});
return $row;
});
return $section;
});
this.sections = sections.sort(function (a, b) {
var orders = {
thead: 0,
tbody: 1,
tfoot: 2
};
return orders[a.tag] - orders[b.tag];
});
this.select();
},
sort: function sort(index, sortType) {
if (sortType > 2) {
sortType = 0;
}
this.sections.forEach(function (section) {
if (section.tag === 'thead') {
section.rows.forEach(function (row) {
row.cells.forEach(function (cell, cellIndex) {
cell.sortType = cellIndex === index ? sortType : 0;
});
});
return;
}
section.rows.sort(function (a, b) {
var cellA = a.cells[index];
var cellB = b.cells[index];
if (sortType > 0) {
var cellAContent = cellA.content;
var cellBContent = cellB.content;
switch (sortType) {
// Descending
case 2:
return [cellAContent, cellBContent].sort()[0] === cellAContent ? 1 : -1;
// Ascending
case 1:
return [cellAContent, cellBContent].sort()[0] === cellAContent ? -1 : 1;
default:
}
}
return a.index - b.index;
});
});
},
/**
* Select a row or all rows.
* @param {Array|Object|boolean} target - The target row or all rows if the value is `true`.
* @param {*} reversed - Indicate if the operation is reversed (deselect) or not.
*/
select: function select(target) {
var reversed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (!this.selectable) {
return;
}
var multiple = this.multiple;
var selectAll = multiple && target === true;
var selectedRows = [];
var totalRows = 0;
var thead = void 0;
this.sections.forEach(function (section) {
switch (section.tag) {
case 'thead':
thead = section;
break;
case 'tbody':
section.rows.forEach(function (row) {
totalRows += 1;
if (row.disabled) {
return;
}
if (!multiple && !isUndefined(target)) {
row.selected = false;
}
if (selectAll || row.raw === target) {
row.selected = !reversed;
}
if (row.selected) {
selectedRows.push(row.raw);
}
});
break;
// case 'tfoot':
default:
}
});
if (multiple && this.controls && thead) {
var row = thead.rows[thead.rows.length - 1];
var totalSelectedRows = selectedRows.length;
if (totalSelectedRows === totalRows) {
row.indeterminate = false;
row.selected = true;
} else if (totalSelectedRows > 0) {
row.selected = false;
row.indeterminate = true;
} else {
row.selected = false;
row.indeterminate = false;
}
}
if (!isUndefined(target)) {
this.$emit('change', selectedRows);
}
}
},
watch: {
data: function data() {
this.init();
}
},
mounted: function mounted() {
this.init();
}
};
var Textarea = { render: function render() {

@@ -1060,2 +1686,3 @@ var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('textarea', { staticClass: "eks-textarea", attrs: { "rows": _vm.rowsAsNumber }, domProps: { "value": _vm.currentValue }, on: { "input": _vm.input, "change": _vm.change } });

Select: Select,
Table: Table,
Textarea: Textarea,

@@ -1073,2 +1700,3 @@

Vue.component(Select.name, Select);
Vue.component(Table.name, Table);
Vue.component(Textarea.name, Textarea);

@@ -1075,0 +1703,0 @@ }

/*!
* Eks v0.1.0
* Eks v0.2.0
* https://github.com/xkeshi/eks

@@ -8,3 +8,3 @@ *

*
* Date: 2017-09-17T09:06:41.137Z
* Date: 2017-10-12T06:12:32.094Z
*/

@@ -168,2 +168,46 @@

var toConsumableArray = function (arr) {
if (Array.isArray(arr)) {
for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
return arr2;
} else {
return Array.from(arr);
}
};
var _Object$prototype = Object.prototype;

@@ -253,4 +297,6 @@ var toString = _Object$prototype.toString;

*/
function isFunction(value) {
return typeof value === 'function';
}
/**

@@ -472,5 +518,5 @@ * Check if the given value is a function.

var NumberInput = { render: function render() {
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: "eks-number-input", class: defineProperty({ 'eks-number-input--inline': _vm.inline, 'eks-number-input--center': _vm.center, 'eks-number-input--controls': _vm.controls }, 'eks-number-input--' + _vm.size, _vm.size), attrs: { "value": _vm.value } }, [_vm.controls ? _c('button', { staticClass: "eks-number-input__button eks-number-input__button--minus", attrs: { "type": "button", "disabled": _vm.disabled || _vm.readonly || !_vm.decreasable }, on: { "click": _vm.decrease } }) : _vm._e(), _c('eks-input', _vm._b({ ref: "input", staticClass: "eks-number-input__input", attrs: { "type": "number", "value": _vm.currentValue, "min": _vm.min, "max": _vm.max, "step": _vm.step, "size": _vm.size, "readonly": _vm.readonly, "disabled": _vm.disabled || !_vm.decreasable && !_vm.increasable }, on: { "change": _vm.change }, nativeOn: { "paste": function paste($event) {
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: "eks-number-input", class: defineProperty({ 'eks-number-input--inline': _vm.inline, 'eks-number-input--center': _vm.center, 'eks-number-input--controls': _vm.controls }, 'eks-number-input--' + _vm.size, _vm.size), attrs: { "value": _vm.value } }, [_vm.controls ? _c('button', { staticClass: "eks-number-input__button eks-number-input__button--minus", attrs: { "type": "button", "disabled": _vm.disabled || _vm.readonly || !_vm.decreasable }, on: { "click": _vm.decrease } }) : _vm._e(), _vm._v(" "), _c('eks-input', _vm._b({ ref: "input", staticClass: "eks-number-input__input", attrs: { "type": "number", "value": _vm.currentValue, "min": _vm.min, "max": _vm.max, "step": _vm.step, "size": _vm.size, "readonly": _vm.readonly, "disabled": _vm.disabled || !_vm.decreasable && !_vm.increasable }, on: { "change": _vm.change }, nativeOn: { "paste": function paste($event) {
_vm.paste($event);
} } }, 'eks-input', _vm.$attrs, false)), _vm.controls ? _c('button', { staticClass: "eks-number-input__button eks-number-input__button--plus", attrs: { "type": "button", "disabled": _vm.disabled || _vm.readonly || !_vm.increasable }, on: { "click": _vm.increase } }) : _vm._e()], 1);
} } }, 'eks-input', _vm.$attrs, false)), _vm._v(" "), _vm.controls ? _c('button', { staticClass: "eks-number-input__button eks-number-input__button--plus", attrs: { "type": "button", "disabled": _vm.disabled || _vm.readonly || !_vm.increasable }, on: { "click": _vm.increase } }) : _vm._e()], 1);
}, staticRenderFns: [],

@@ -620,3 +666,3 @@ name: 'eks-number-input',

var Checkbox = { render: function render() {
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('label', { staticClass: "eks-checkbox", class: { 'eks-checkbox--disabled': _vm.disabled } }, [_c('input', _vm._b({ ref: "input", staticClass: "eks-checkbox__input", attrs: { "type": "checkbox", "name": _vm.name, "disabled": _vm.disabled }, domProps: { "value": _vm.value, "checked": _vm.isChecked }, on: { "change": _vm.change } }, 'input', _vm.$attrs, false)), _vm._v(" "), _c('span', { staticClass: "eks-checkbox__indicator" }), _vm._t("default")], 2);
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('label', { staticClass: "eks-checkbox", class: { 'eks-checkbox--disabled': _vm.disabled } }, [_c('input', _vm._b({ ref: "input", staticClass: "eks-checkbox__input", attrs: { "type": "checkbox", "name": _vm.name, "disabled": _vm.disabled }, domProps: { "value": _vm.value, "checked": _vm.isChecked }, on: { "change": _vm.change } }, 'input', _vm.$attrs, false)), _vm._v(" "), _c('span', { staticClass: "eks-checkbox__indicator" }), _vm._v(" "), _vm._t("default")], 2);
}, staticRenderFns: [],

@@ -773,3 +819,3 @@ name: 'eks-checkbox',

var Radio = { render: function render() {
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('label', { staticClass: "eks-radio", class: { 'eks-radio--disabled': _vm.disabled } }, [_c('input', _vm._b({ staticClass: "eks-radio__input", attrs: { "type": "radio", "name": _vm.name, "disabled": _vm.disabled }, domProps: { "value": _vm.value, "checked": _vm.isChecked }, on: { "change": _vm.change } }, 'input', _vm.$attrs, false)), _vm._v(" "), _c('span', { staticClass: "eks-radio__indicator" }), _vm._t("default")], 2);
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('label', { staticClass: "eks-radio", class: { 'eks-radio--disabled': _vm.disabled } }, [_c('input', _vm._b({ staticClass: "eks-radio__input", attrs: { "type": "radio", "name": _vm.name, "disabled": _vm.disabled }, domProps: { "value": _vm.value, "checked": _vm.isChecked }, on: { "change": _vm.change } }, 'input', _vm.$attrs, false)), _vm._v(" "), _c('span', { staticClass: "eks-radio__indicator" }), _vm._v(" "), _vm._t("default")], 2);
}, staticRenderFns: [],

@@ -855,7 +901,7 @@ name: 'eks-radio',

var Select = { render: function render() {
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('select', { staticClass: "eks-select", class: defineProperty({ 'eks-select--inline': _vm.inline }, 'eks-select--' + _vm.sizes.custom, _vm.sizes.custom), attrs: { "size": _vm.sizes.native }, on: { "change": _vm.change } }, [_vm.placeholder ? _c('option', [_vm._v(_vm._s(_vm.placeholder))]) : _vm._e(), _vm._l(_vm.list, function (option, index) {
var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('select', { staticClass: "eks-select", class: defineProperty({ 'eks-select--inline': _vm.inline }, 'eks-select--' + _vm.sizes.custom, _vm.sizes.custom), attrs: { "size": _vm.sizes.native }, on: { "change": _vm.change } }, [_vm.placeholder ? _c('option', [_vm._v(_vm._s(_vm.placeholder))]) : _vm._e(), _vm._v(" "), _vm._l(_vm.list, function (option, index) {
return [option.options ? _c('optgroup', { key: index, attrs: { "label": option.label, "disabled": option.disabled } }, _vm._l(option.options, function (opt, i) {
return _c('option', { key: i, attrs: { "label": opt.label, "disabled": opt.disabled }, domProps: { "value": opt.value, "selected": opt.value === _vm.value || opt.selected } }, [_vm._v(_vm._s(opt.label !== undefined ? opt.label : opt.value))]);
})) : _c('option', { key: index, attrs: { "label": option.label, "disabled": option.disabled }, domProps: { "value": option.value, "selected": option.value === _vm.value || option.selected } }, [_vm._v(_vm._s(option.label !== undefined ? option.label : option.value))])];
}), _vm._t("default")], 2);
}), _vm._v(" "), _vm._t("default")], 2);
}, staticRenderFns: [],

@@ -963,2 +1009,582 @@ name: 'eks-select',

var Cell = {
name: 'eks-table-cell',
props: {
colSpan: Number,
content: null,
headers: String,
index: null,
rowSpan: Number,
sortable: Boolean,
sortType: {
type: Number,
// 0: default, 1: ascending, 2: descending
default: 0
},
scope: String,
tag: {
type: String,
default: 'td'
}
},
computed: {
$table: function $table() {
return this.$parent.$parent.$parent;
}
},
render: function render(createElement) {
var _this = this;
var content = this.content,
sortType = this.sortType,
sortable = this.sortable;
var component = {};
if (isObject(content)) {
assign(component, content);
} else if (isFunction(content)) {
component.render = function (h) {
return content.call(_this, h, _this);
};
} else {
component.template = '<span>' + content + '</span>';
}
return createElement(this.tag, {
attrs: {
colSpan: this.colSpan,
headers: this.headers,
rowSpan: this.rowSpan,
scope: this.scope
},
class: {
'eks-table__cell': true,
'eks-table__cell--sortable': sortable,
'eks-table__cell--ascended': sortable && sortType === 1,
'eks-table__cell--descended': sortable && sortType === 2
},
on: sortable ? {
click: this.click
} : null
}, [createElement('div', {
class: 'eks-table__content'
}, [createElement(component), sortable ? createElement('i', {
class: 'eks-table__icon eks-table__icon--sort'
}, [createElement('span', {
on: {
click: function click() {
_this.sortType = 0;
}
}
}), createElement('span', {
on: {
click: function click() {
_this.sortType = 1;
}
}
})]) : undefined])]);
},
methods: {
click: function click() {
if (this.sortable) {
this.$table.sort(this.index, this.sortType + 1);
}
}
}
};
var Row$1 = {
name: 'eks-table-row',
props: {
cells: {
type: Array,
required: true
},
disabled: Boolean,
indeterminate: Boolean,
index: null,
selected: Boolean,
raw: [Array, Object],
tag: {
type: String,
default: 'tr'
}
},
computed: {
$table: function $table() {
return this.$parent.$parent;
},
inHeader: function inHeader() {
return this.$parent.tag === 'thead';
},
selectable: function selectable() {
return this.$table.selectable;
},
multiple: function multiple() {
return this.$table.multiple;
},
controls: function controls() {
return this.$table.controls;
}
},
render: function render(createElement) {
var selectable = this.selectable,
multiple = this.multiple,
controls = this.controls,
inHeader = this.inHeader,
indeterminate = this.indeterminate,
selected = this.selected,
disabled = this.disabled;
var cells = [].concat(toConsumableArray(this.cells));
if (selectable && controls) {
cells.unshift({
content: function content(h) {
return h(multiple ? 'eks-checkbox' : 'eks-radio', {
props: {
indeterminate: indeterminate,
checked: selected,
disabled: !multiple && inHeader || disabled
}
});
}
});
}
return createElement(this.tag, {
class: {
'eks-table__row': true,
'eks-table__row--disabled': selectable && disabled && !inHeader,
'eks-table__row--selected': selectable && selected && !controls && !inHeader
},
on: {
click: this.click
}
}, cells.map(function (cell, i) {
return createElement(Cell, {
key: i,
props: cell,
style: cell.style
});
}));
},
methods: {
click: function click() {
if (!this.selectable || this.disabled) {
return;
}
var $table = this.$table,
multiple = this.multiple;
if (this.inHeader) {
if (multiple && this.controls) {
$table.select(true, this.selected || this.indeterminate);
}
} else {
$table.select(this.raw, multiple && this.selected);
}
}
}
};
var Section = {
name: 'eks-table-section',
props: {
index: null,
rows: {
type: Array,
required: true
},
tag: {
type: String,
default: 'tbody'
}
},
render: function render(createElement) {
return createElement(this.tag, {
class: 'eks-table__section'
}, this.rows.map(function (row, i) {
return createElement(Row$1, {
key: i,
props: row,
style: row.style
});
}));
}
};
var _window = window;
var JSON = _window.JSON;
var Table = {
name: 'eks-table',
data: function data() {
return {
sections: []
};
},
model: {
prop: 'selectedRows',
event: 'change'
},
props: {
bordered: Boolean,
caption: String,
colgroup: Array,
controls: Boolean,
data: Array,
disabledRows: Array,
hoverable: Boolean,
multiple: Boolean,
responsive: Boolean,
selectable: Boolean,
selectedRows: Array,
size: String,
striped: Boolean,
tag: {
type: String,
default: 'table'
}
},
render: function render(createElement) {
var caption = this.caption,
colgroup = this.colgroup,
size = this.size;
var children = [];
if (caption) {
children.push(createElement('caption', {
domProps: {
textContent: caption
}
}));
}
if (colgroup) {
children.push(createElement('colgroup', colgroup.map(function (col, index) {
return createElement('col', {
attrs: {
span: col.span
},
key: index,
style: col.style
});
})));
}
return createElement(this.tag, {
class: defineProperty({
'eks-table': true,
'eks-table--bordered': this.bordered,
'eks-table--hoverable': this.hoverable,
'eks-table--selectable': this.selectable,
'eks-table--multiple': this.multiple,
'eks-table--controls': this.controls,
'eks-table--responsive': this.responsive,
'eks-table--striped': this.striped
}, 'eks-table--' + size, size)
}, children.concat(this.sections.map(function (section, index) {
return createElement(Section, {
key: index,
props: section,
style: section.style
});
})));
},
methods: {
init: function init() {
var data = this.data,
selectable = this.selectable,
_selectedRows = this.selectedRows,
selectedRows = _selectedRows === undefined ? [] : _selectedRows,
_disabledRows = this.disabledRows,
disabledRows = _disabledRows === undefined ? [] : _disabledRows;
if (!isArray(data)) {
return;
}
var defaultSection = {
rows: [],
tag: 'tbody'
};
var sections = [];
data.forEach(function (section, index) {
if (isObject(section)) {
if (isArray(section.rows)) {
sections.push(assign({
index: index,
rows: [],
tag: 'tbody'
}, section));
return;
}
} else if (!isArray(section)) {
throw new Error('Invalid table section: ' + JSON.stringify(section));
}
defaultSection.rows.push(section);
if (!includes(defaultSection, sections)) {
sections.push(defaultSection);
}
});
sections = sections.map(function (section, sectionIndex) {
var $section = {
index: sectionIndex,
rows: [],
tag: 'tbody'
};
if (isArray(section)) {
$section.rows = section;
} else if (isObject(section)) {
if (isArray(section.rows)) {
assign($section, section);
} else {
forEach(section, function (row, rowIndex) {
$section.rows.push({
cells: row,
index: rowIndex
});
});
}
} else {
throw new Error('Invalid table section: ' + JSON.stringify(section));
}
$section.rows = $section.rows.map(function (row, rowIndex) {
var $row = {
cells: [],
index: rowIndex,
raw: row,
indeterminate: false,
selected: includes(row, selectedRows),
disabled: includes(row, disabledRows),
tag: 'tr'
};
if (isArray(row)) {
$row.cells = row;
} else if (isObject(row)) {
if (isArray(row.cells)) {
assign($row, row);
} else {
forEach(row, function (cell, cellIndex) {
$row.cells.push({
content: cell,
index: cellIndex
});
});
}
} else {
throw new Error('Invalid table row: ' + JSON.stringify(row));
}
if (!selectable) {
$row.selected = false;
}
$row.cells = $row.cells.map(function (cell, cellIndex) {
var $cell = {
content: '',
index: cellIndex,
sortType: 0,
tag: $section.tag === 'thead' ? 'th' : 'td'
};
if (isObject(cell) && cell.content) {
assign($cell, cell);
} else {
$cell.content = cell;
}
return $cell;
});
return $row;
});
return $section;
});
this.sections = sections.sort(function (a, b) {
var orders = {
thead: 0,
tbody: 1,
tfoot: 2
};
return orders[a.tag] - orders[b.tag];
});
this.select();
},
sort: function sort(index, sortType) {
if (sortType > 2) {
sortType = 0;
}
this.sections.forEach(function (section) {
if (section.tag === 'thead') {
section.rows.forEach(function (row) {
row.cells.forEach(function (cell, cellIndex) {
cell.sortType = cellIndex === index ? sortType : 0;
});
});
return;
}
section.rows.sort(function (a, b) {
var cellA = a.cells[index];
var cellB = b.cells[index];
if (sortType > 0) {
var cellAContent = cellA.content;
var cellBContent = cellB.content;
switch (sortType) {
// Descending
case 2:
return [cellAContent, cellBContent].sort()[0] === cellAContent ? 1 : -1;
// Ascending
case 1:
return [cellAContent, cellBContent].sort()[0] === cellAContent ? -1 : 1;
default:
}
}
return a.index - b.index;
});
});
},
/**
* Select a row or all rows.
* @param {Array|Object|boolean} target - The target row or all rows if the value is `true`.
* @param {*} reversed - Indicate if the operation is reversed (deselect) or not.
*/
select: function select(target) {
var reversed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (!this.selectable) {
return;
}
var multiple = this.multiple;
var selectAll = multiple && target === true;
var selectedRows = [];
var totalRows = 0;
var thead = void 0;
this.sections.forEach(function (section) {
switch (section.tag) {
case 'thead':
thead = section;
break;
case 'tbody':
section.rows.forEach(function (row) {
totalRows += 1;
if (row.disabled) {
return;
}
if (!multiple && !isUndefined(target)) {
row.selected = false;
}
if (selectAll || row.raw === target) {
row.selected = !reversed;
}
if (row.selected) {
selectedRows.push(row.raw);
}
});
break;
// case 'tfoot':
default:
}
});
if (multiple && this.controls && thead) {
var row = thead.rows[thead.rows.length - 1];
var totalSelectedRows = selectedRows.length;
if (totalSelectedRows === totalRows) {
row.indeterminate = false;
row.selected = true;
} else if (totalSelectedRows > 0) {
row.selected = false;
row.indeterminate = true;
} else {
row.selected = false;
row.indeterminate = false;
}
}
if (!isUndefined(target)) {
this.$emit('change', selectedRows);
}
}
},
watch: {
data: function data() {
this.init();
}
},
mounted: function mounted() {
this.init();
}
};
var Textarea = { render: function render() {

@@ -1066,2 +1692,3 @@ var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('textarea', { staticClass: "eks-textarea", attrs: { "rows": _vm.rowsAsNumber }, domProps: { "value": _vm.currentValue }, on: { "input": _vm.input, "change": _vm.change } });

Select: Select,
Table: Table,
Textarea: Textarea,

@@ -1079,2 +1706,3 @@

Vue.component(Select.name, Select);
Vue.component(Table.name, Table);
Vue.component(Textarea.name, Textarea);

@@ -1081,0 +1709,0 @@ }

6

dist/eks.min.js
/*!
* Eks v0.1.0
* Eks v0.2.0
* https://github.com/xkeshi/eks

@@ -8,4 +8,4 @@ *

*
* Date: 2017-09-17T09:06:41.137Z
* Date: 2017-10-12T06:12:32.094Z
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Eks=t()}(this,function(){"use strict";function e(e){return c.call(e).slice(8,-1).toLowerCase()}function t(e){return void 0===e}function n(e){return"string"==typeof e}function i(e){return"number"==typeof e&&!h(e)}function s(e){return"boolean"==typeof e}function a(e){return"object"===(void 0===e?"undefined":u(e))&&null!==e}function r(e,t){Array.isArray(e)?e.forEach(t):a(e)&&Object.keys(e).forEach(function(n){t(e[n],n,e)})}function o(e){return d(e)?e.map(function(e){return e.children?o(e.children):e.text}).join(""):""}var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l=(function(){function e(e){this.value=e}function t(t){function n(s,a){try{var r=t[s](a),o=r.value;o instanceof e?Promise.resolve(o.value).then(function(e){n("next",e)},function(e){n("throw",e)}):i(r.done?"return":"normal",r.value)}catch(e){i("throw",e)}}function i(e,t){switch(e){case"return":s.resolve({value:t,done:!0});break;case"throw":s.reject(t);break;default:s.resolve({value:t,done:!1})}(s=s.next)?n(s.key,s.arg):a=null}var s,a;this._invoke=function(e,t){return new Promise(function(i,r){var o={key:e,arg:t,resolve:i,reject:r,next:null};a?a=a.next=o:(s=a=o,n(e,t))})},"function"!=typeof t.return&&(this.return=void 0)}"function"==typeof Symbol&&Symbol.asyncIterator&&(t.prototype[Symbol.asyncIterator]=function(){return this}),t.prototype.next=function(e){return this._invoke("next",e)},t.prototype.throw=function(e){return this._invoke("throw",e)},t.prototype.return=function(e){return this._invoke("return",e)}}(),function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}),c=Object.prototype.toString,h=Number.isNaN||window.isNaN,d=Array.isArray||function(t){return"array"===e(t)},p=function(e,t){return t.includes?t.includes(e):-1!==t.indexOf(e)},m=Object.assign||function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return a(e)&&n.length>0&&n.forEach(function(t){Object.keys(t).forEach(function(n){e[n]=t[n]})}),e},f={name:"eks-button",props:{block:Boolean,disabled:Boolean,outline:Boolean,size:String,tag:{type:String,default:"button"},type:{type:String,default:"button"}},computed:{types:function(){var e=["button","submit","reset"],t=["primary","secondary","success","danger","warning","info","light","dark","link"],n={native:e[0],custom:""};return this.type.split(/\s+/).forEach(function(i){p(i,e)?n.native=i:p(i,t)&&(n.custom=i)}),n}},render:function(e){var t,n=this.size,i=this.tag,s=this.types,a=this.$slots,r=this.$attrs,u=void 0===r?{}:r;return e(p(i,["button","input","a"])?i:"button",{class:(t={"eks-button":!0},l(t,"eks-button--"+s.custom,s.custom),l(t,"eks-button--"+n,n),l(t,"eks-button--block",this.block),l(t,"eks-button--outline",this.outline),t),attrs:{type:p(i,["button","input"])?s.native:u.type,value:u.value||"input"!==i?u.value:o(a.default),disabled:this.disabled},on:{click:this.click}},"input"!==i?a.default:void 0)},methods:{click:function(e){this.$emit("click",e)}}},b={name:"eks-col",props:{alignSelf:String,offset:[Number,String],order:[Number,String],span:[Number,String],tag:{type:String,default:"div"}},render:function(e){var t=this.alignSelf,s=this.offset,a=this.order,r=this.span,o=["eks-col",t?"eks-col--align-self-"+t:""],u=/\s+/;return i(r)?o.push("eks-col--span-"+r):n(r)?o.push(r.split(u).map(function(e){return"eks-col--span-"+e})):o.push("eks-col--span"),i(s)?o.push("eks-col--offset-"+s):n(s)&&o.push(s.split(u).map(function(e){return"eks-col--offset-"+e})),i(a)?o.push("eks-col--order-"+a):n(a)&&o.push(a.split(u).map(function(e){return"eks-col--order-"+e})),e(this.tag,{class:o},this.$slots.default)}},v={name:"eks-container",props:{fluid:Boolean,tag:{type:String,default:"div"}},render:function(e){return e(this.tag,{class:{"eks-container":!0,"eks-container--fluid":this.fluid}},this.$slots.default)}},k={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"eks-number-input",class:l({"eks-number-input--inline":e.inline,"eks-number-input--center":e.center,"eks-number-input--controls":e.controls},"eks-number-input--"+e.size,e.size),attrs:{value:e.value}},[e.controls?n("button",{staticClass:"eks-number-input__button eks-number-input__button--minus",attrs:{type:"button",disabled:e.disabled||e.readonly||!e.decreasable},on:{click:e.decrease}}):e._e(),n("eks-input",e._b({ref:"input",staticClass:"eks-number-input__input",attrs:{type:"number",value:e.currentValue,min:e.min,max:e.max,step:e.step,size:e.size,readonly:e.readonly,disabled:e.disabled||!e.decreasable&&!e.increasable},on:{change:e.change},nativeOn:{paste:function(t){e.paste(t)}}},"eks-input",e.$attrs,!1)),e.controls?n("button",{staticClass:"eks-number-input__button eks-number-input__button--plus",attrs:{type:"button",disabled:e.disabled||e.readonly||!e.increasable},on:{click:e.increase}}):e._e()],1)},staticRenderFns:[],name:"eks-number-input",inheritAttrs:!1,data:function(){return{currentValue:NaN}},model:{event:"change"},props:{value:Number,min:{type:Number,default:-1/0},max:{type:Number,default:1/0},step:{type:Number,default:1},size:String,inline:Boolean,center:Boolean,controls:Boolean,readonly:Boolean,disabled:Boolean},computed:{increasable:function(){var e=this.currentValue;return h(e)||e<this.max},decreasable:function(){var e=this.currentValue;return h(e)||e>this.min}},created:function(){this.min<=this.max&&(this.currentValue=Math.min(this.max,Math.max(this.min,this.value)))},methods:{change:function(e){this.setValue(Math.min(this.max,Math.max(this.min,e)))},paste:function(e){/^-?\d+$/.test(e.clipboardData.getData("text"))||e.preventDefault()},decrease:function(){if(this.decreasable){var e=this.currentValue;h(e)&&(e=0),this.setValue(Math.min(this.max,Math.max(this.min,e-this.step)))}},increase:function(){if(this.increasable){var e=this.currentValue;h(e)&&(e=0),this.setValue(Math.min(this.max,Math.max(this.min,e+this.step)))}},setValue:function(e){var t=this;this.$nextTick(function(){t.$refs.input.setValue(e)}),this.currentValue=e,this.$emit("change",e)}}},g={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("label",{staticClass:"eks-checkbox",class:{"eks-checkbox--disabled":e.disabled}},[n("input",e._b({ref:"input",staticClass:"eks-checkbox__input",attrs:{type:"checkbox",name:e.name,disabled:e.disabled},domProps:{value:e.value,checked:e.isChecked},on:{change:e.change}},"input",e.$attrs,!1)),e._v(" "),n("span",{staticClass:"eks-checkbox__indicator"}),e._t("default")],2)},staticRenderFns:[],name:"eks-checkbox",inheritAttrs:!1,model:{prop:"checkedValue",event:"change"},props:{checkedValue:null,checked:Boolean,disabled:Boolean,indeterminate:Boolean,name:String,value:{default:"on"}},computed:{isChecked:function(){var e=this.value,n=this.checkedValue,i=this.checked;return d(n)?i=p(e,n):s(n)?i=n:t(n)||(i=n===e),i}},methods:{change:function(e){var n=e.target,i=this.value,a=this.checkedValue,r=n.checked,o=n.value;if(d(a)){var u=a.indexOf(i);o=a.slice(),r?-1===u&&o.push(i):-1!==u&&o.splice(u,1)}else s(a)?o=r:t(a)||(o=a===i);this.$emit("change",o,a)},setIndeterminate:function(){this.$refs.input.indeterminate=this.indeterminate}},watch:{indeterminate:function(){this.setIndeterminate()}},mounted:function(){this.setIndeterminate()}},y={render:function(){var e,t=this,n=t.$createElement;return(t._self._c||n)("input",{staticClass:"eks-input",class:(e={},l(e,"eks-input--inline",t.inline),l(e,"eks-input--"+t.sizes.custom,t.sizes.custom),e),attrs:{size:t.sizes.native},on:{change:t.change}})},staticRenderFns:[],name:"eks-input",model:{event:"change"},props:{inline:Boolean,size:String},computed:{sizes:function(){var e=this.size,t=void 0,n=void 0;return p(e,["small","large"])?t=e:n=e,{custom:t,native:n}}},methods:{change:function(e){this.$emit("change",e.target.value)},setValue:function(e){this.$el.value=e}}},_={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("label",{staticClass:"eks-radio",class:{"eks-radio--disabled":e.disabled}},[n("input",e._b({staticClass:"eks-radio__input",attrs:{type:"radio",name:e.name,disabled:e.disabled},domProps:{value:e.value,checked:e.isChecked},on:{change:e.change}},"input",e.$attrs,!1)),e._v(" "),n("span",{staticClass:"eks-radio__indicator"}),e._t("default")],2)},staticRenderFns:[],name:"eks-radio",inheritAttrs:!1,model:{prop:"checkedValue",event:"change"},props:{checked:Boolean,checkedValue:null,disabled:Boolean,name:String,value:{default:"on"}},computed:{isChecked:function(){var e=this.checkedValue,n=this.checked;return t(e)||(n=e===this.value),n}},methods:{change:function(){this.$emit("change",this.value,this.checkedValue)}}},x={name:"eks-row",props:{alignItems:String,gutters:{type:Boolean,default:!0},justifyContent:String,tag:{type:String,default:"div"}},render:function(e){var t,n=this.alignItems,i=this.justifyContent;return e(this.tag,{class:(t={"eks-row":!0,"eks-row--gutters":this.gutters},l(t,"eks-row--align-items-"+n,n),l(t,"eks-row--justify-content-"+i,i),t)},this.$slots.default)}},w={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("select",{staticClass:"eks-select",class:l({"eks-select--inline":e.inline},"eks-select--"+e.sizes.custom,e.sizes.custom),attrs:{size:e.sizes.native},on:{change:e.change}},[e.placeholder?n("option",[e._v(e._s(e.placeholder))]):e._e(),e._l(e.list,function(t,i){return[t.options?n("optgroup",{key:i,attrs:{label:t.label,disabled:t.disabled}},e._l(t.options,function(t,i){return n("option",{key:i,attrs:{label:t.label,disabled:t.disabled},domProps:{value:t.value,selected:t.value===e.value||t.selected}},[e._v(e._s(void 0!==t.label?t.label:t.value))])})):n("option",{key:i,attrs:{label:t.label,disabled:t.disabled},domProps:{value:t.value,selected:t.value===e.value||t.selected}},[e._v(e._s(void 0!==t.label?t.label:t.value))])]}),e._t("default")],2)},staticRenderFns:[],name:"eks-select",model:{event:"change"},data:function(){return{list:[]}},props:{inline:Boolean,options:[Array,Object],placeholder:String,size:String,value:null},computed:{sizes:function(){var e=this.size,t=void 0,n=void 0;return p(e,["small","large"])?t=e:n=e,{custom:t,native:n}}},methods:{init:function(){this.list=function e(n){var i=[];return r(n,function(n,s){var r={value:n,selected:!1,disabled:!1};a(n)&&(d(n.options)?(t(n.label)||(r.label=n.label),t(n.value)||(r.value=n.value),r.options=e(n.options)):(r.label=s,m(r,n))),i.push(r)}),i}(this.options)},change:function(e){this.$emit("change",e.target.value)}},watch:{options:function(){this.init()}},mounted:function(){this.init()}},S={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("textarea",{staticClass:"eks-textarea",attrs:{rows:e.rowsAsNumber},domProps:{value:e.currentValue},on:{input:e.input,change:e.change}})},staticRenderFns:[],name:"eks-textarea",model:{event:"change"},props:{value:null,rows:{type:[Number,Array],default:2}},computed:{currentValue:function(){return t(this.value)?o(this.$slots.default):this.value},isArrayRows:function(){return d(this.rows)},rowsAsArray:function(){var e=this.rows,t=1,n=1/0;return this.isArrayRows&&(t=Math.max(e[0],t)||t,n=Math.min(e[1],n)||n,n=Math.max(n,t)),[t,n]},rowsAsNumber:function(){var e=this.rows;return this.isArrayRows?this.rowsAsArray[0]:Math.max(e,1)},maxHeight:function(){var e=this.rowsAsArray[1];return e===1/0?e:18+20*e}},methods:{input:function(e){var t=e.target;if(this.isArrayRows){var n=t.style;t.style.height="auto";var i=t.scrollHeight;i>t.clientHeight&&(n.height=Math.min(i+2,this.maxHeight)+"px")}},change:function(e){this.$emit("change",e.target.value)}}};return{Button:f,Col:b,Container:v,NumberInput:k,Checkbox:g,Input:y,Radio:_,Row:x,Select:w,Textarea:S,install:function(e){e.component(f.name,f),e.component(g.name,g),e.component(b.name,b),e.component(v.name,v),e.component(y.name,y),e.component(k.name,k),e.component(_.name,_),e.component(x.name,x),e.component(w.name,w),e.component(S.name,S)}}});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Eks=t()}(this,function(){"use strict";function e(e){return h.call(e).slice(8,-1).toLowerCase()}function t(e){return void 0===e}function n(e){return"string"==typeof e}function s(e){return"number"==typeof e&&!p(e)}function i(e){return"boolean"==typeof e}function a(e){return"object"===(void 0===e?"undefined":c(e))&&null!==e}function r(e){return"function"==typeof e}function o(e,t){Array.isArray(e)?e.forEach(t):a(e)&&Object.keys(e).forEach(function(n){t(e[n],n,e)})}function l(e){return f(e)?e.map(function(e){return e.children?l(e.children):e.text}).join(""):""}var c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u=(function(){function e(e){this.value=e}function t(t){function n(i,a){try{var r=t[i](a),o=r.value;o instanceof e?Promise.resolve(o.value).then(function(e){n("next",e)},function(e){n("throw",e)}):s(r.done?"return":"normal",r.value)}catch(e){s("throw",e)}}function s(e,t){switch(e){case"return":i.resolve({value:t,done:!0});break;case"throw":i.reject(t);break;default:i.resolve({value:t,done:!1})}(i=i.next)?n(i.key,i.arg):a=null}var i,a;this._invoke=function(e,t){return new Promise(function(s,r){var o={key:e,arg:t,resolve:s,reject:r,next:null};a?a=a.next=o:(i=a=o,n(e,t))})},"function"!=typeof t.return&&(this.return=void 0)}"function"==typeof Symbol&&Symbol.asyncIterator&&(t.prototype[Symbol.asyncIterator]=function(){return this}),t.prototype.next=function(e){return this._invoke("next",e)},t.prototype.throw=function(e){return this._invoke("throw",e)},t.prototype.return=function(e){return this._invoke("return",e)}}(),function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}),d=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)},h=Object.prototype.toString,p=Number.isNaN||window.isNaN,f=Array.isArray||function(t){return"array"===e(t)},m=function(e,t){return t.includes?t.includes(e):-1!==t.indexOf(e)},b=Object.assign||function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),s=1;s<t;s++)n[s-1]=arguments[s];return a(e)&&n.length>0&&n.forEach(function(t){Object.keys(t).forEach(function(n){e[n]=t[n]})}),e},v={name:"eks-button",props:{block:Boolean,disabled:Boolean,outline:Boolean,size:String,tag:{type:String,default:"button"},type:{type:String,default:"button"}},computed:{types:function(){var e=["button","submit","reset"],t=["primary","secondary","success","danger","warning","info","light","dark","link"],n={native:e[0],custom:""};return this.type.split(/\s+/).forEach(function(s){m(s,e)?n.native=s:m(s,t)&&(n.custom=s)}),n}},render:function(e){var t,n=this.size,s=this.tag,i=this.types,a=this.$slots,r=this.$attrs,o=void 0===r?{}:r;return e(m(s,["button","input","a"])?s:"button",{class:(t={"eks-button":!0},u(t,"eks-button--"+i.custom,i.custom),u(t,"eks-button--"+n,n),u(t,"eks-button--block",this.block),u(t,"eks-button--outline",this.outline),t),attrs:{type:m(s,["button","input"])?i.native:o.type,value:o.value||"input"!==s?o.value:l(a.default),disabled:this.disabled},on:{click:this.click}},"input"!==s?a.default:void 0)},methods:{click:function(e){this.$emit("click",e)}}},k={name:"eks-col",props:{alignSelf:String,offset:[Number,String],order:[Number,String],span:[Number,String],tag:{type:String,default:"div"}},render:function(e){var t=this.alignSelf,i=this.offset,a=this.order,r=this.span,o=["eks-col",t?"eks-col--align-self-"+t:""],l=/\s+/;return s(r)?o.push("eks-col--span-"+r):n(r)?o.push(r.split(l).map(function(e){return"eks-col--span-"+e})):o.push("eks-col--span"),s(i)?o.push("eks-col--offset-"+i):n(i)&&o.push(i.split(l).map(function(e){return"eks-col--offset-"+e})),s(a)?o.push("eks-col--order-"+a):n(a)&&o.push(a.split(l).map(function(e){return"eks-col--order-"+e})),e(this.tag,{class:o},this.$slots.default)}},y={name:"eks-container",props:{fluid:Boolean,tag:{type:String,default:"div"}},render:function(e){return e(this.tag,{class:{"eks-container":!0,"eks-container--fluid":this.fluid}},this.$slots.default)}},g={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"eks-number-input",class:u({"eks-number-input--inline":e.inline,"eks-number-input--center":e.center,"eks-number-input--controls":e.controls},"eks-number-input--"+e.size,e.size),attrs:{value:e.value}},[e.controls?n("button",{staticClass:"eks-number-input__button eks-number-input__button--minus",attrs:{type:"button",disabled:e.disabled||e.readonly||!e.decreasable},on:{click:e.decrease}}):e._e(),e._v(" "),n("eks-input",e._b({ref:"input",staticClass:"eks-number-input__input",attrs:{type:"number",value:e.currentValue,min:e.min,max:e.max,step:e.step,size:e.size,readonly:e.readonly,disabled:e.disabled||!e.decreasable&&!e.increasable},on:{change:e.change},nativeOn:{paste:function(t){e.paste(t)}}},"eks-input",e.$attrs,!1)),e._v(" "),e.controls?n("button",{staticClass:"eks-number-input__button eks-number-input__button--plus",attrs:{type:"button",disabled:e.disabled||e.readonly||!e.increasable},on:{click:e.increase}}):e._e()],1)},staticRenderFns:[],name:"eks-number-input",inheritAttrs:!1,data:function(){return{currentValue:NaN}},model:{event:"change"},props:{value:Number,min:{type:Number,default:-1/0},max:{type:Number,default:1/0},step:{type:Number,default:1},size:String,inline:Boolean,center:Boolean,controls:Boolean,readonly:Boolean,disabled:Boolean},computed:{increasable:function(){var e=this.currentValue;return p(e)||e<this.max},decreasable:function(){var e=this.currentValue;return p(e)||e>this.min}},created:function(){this.min<=this.max&&(this.currentValue=Math.min(this.max,Math.max(this.min,this.value)))},methods:{change:function(e){this.setValue(Math.min(this.max,Math.max(this.min,e)))},paste:function(e){/^-?\d+$/.test(e.clipboardData.getData("text"))||e.preventDefault()},decrease:function(){if(this.decreasable){var e=this.currentValue;p(e)&&(e=0),this.setValue(Math.min(this.max,Math.max(this.min,e-this.step)))}},increase:function(){if(this.increasable){var e=this.currentValue;p(e)&&(e=0),this.setValue(Math.min(this.max,Math.max(this.min,e+this.step)))}},setValue:function(e){var t=this;this.$nextTick(function(){t.$refs.input.setValue(e)}),this.currentValue=e,this.$emit("change",e)}}},_={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("label",{staticClass:"eks-checkbox",class:{"eks-checkbox--disabled":e.disabled}},[n("input",e._b({ref:"input",staticClass:"eks-checkbox__input",attrs:{type:"checkbox",name:e.name,disabled:e.disabled},domProps:{value:e.value,checked:e.isChecked},on:{change:e.change}},"input",e.$attrs,!1)),e._v(" "),n("span",{staticClass:"eks-checkbox__indicator"}),e._v(" "),e._t("default")],2)},staticRenderFns:[],name:"eks-checkbox",inheritAttrs:!1,model:{prop:"checkedValue",event:"change"},props:{checkedValue:null,checked:Boolean,disabled:Boolean,indeterminate:Boolean,name:String,value:{default:"on"}},computed:{isChecked:function(){var e=this.value,n=this.checkedValue,s=this.checked;return f(n)?s=m(e,n):i(n)?s=n:t(n)||(s=n===e),s}},methods:{change:function(e){var n=e.target,s=this.value,a=this.checkedValue,r=n.checked,o=n.value;if(f(a)){var l=a.indexOf(s);o=a.slice(),r?-1===l&&o.push(s):-1!==l&&o.splice(l,1)}else i(a)?o=r:t(a)||(o=a===s);this.$emit("change",o,a)},setIndeterminate:function(){this.$refs.input.indeterminate=this.indeterminate}},watch:{indeterminate:function(){this.setIndeterminate()}},mounted:function(){this.setIndeterminate()}},w={render:function(){var e,t=this,n=t.$createElement;return(t._self._c||n)("input",{staticClass:"eks-input",class:(e={},u(e,"eks-input--inline",t.inline),u(e,"eks-input--"+t.sizes.custom,t.sizes.custom),e),attrs:{size:t.sizes.native},on:{change:t.change}})},staticRenderFns:[],name:"eks-input",model:{event:"change"},props:{inline:Boolean,size:String},computed:{sizes:function(){var e=this.size,t=void 0,n=void 0;return m(e,["small","large"])?t=e:n=e,{custom:t,native:n}}},methods:{change:function(e){this.$emit("change",e.target.value)},setValue:function(e){this.$el.value=e}}},x={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("label",{staticClass:"eks-radio",class:{"eks-radio--disabled":e.disabled}},[n("input",e._b({staticClass:"eks-radio__input",attrs:{type:"radio",name:e.name,disabled:e.disabled},domProps:{value:e.value,checked:e.isChecked},on:{change:e.change}},"input",e.$attrs,!1)),e._v(" "),n("span",{staticClass:"eks-radio__indicator"}),e._v(" "),e._t("default")],2)},staticRenderFns:[],name:"eks-radio",inheritAttrs:!1,model:{prop:"checkedValue",event:"change"},props:{checked:Boolean,checkedValue:null,disabled:Boolean,name:String,value:{default:"on"}},computed:{isChecked:function(){var e=this.checkedValue,n=this.checked;return t(e)||(n=e===this.value),n}},methods:{change:function(){this.$emit("change",this.value,this.checkedValue)}}},S={name:"eks-row",props:{alignItems:String,gutters:{type:Boolean,default:!0},justifyContent:String,tag:{type:String,default:"div"}},render:function(e){var t,n=this.alignItems,s=this.justifyContent;return e(this.tag,{class:(t={"eks-row":!0,"eks-row--gutters":this.gutters},u(t,"eks-row--align-items-"+n,n),u(t,"eks-row--justify-content-"+s,s),t)},this.$slots.default)}},$={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("select",{staticClass:"eks-select",class:u({"eks-select--inline":e.inline},"eks-select--"+e.sizes.custom,e.sizes.custom),attrs:{size:e.sizes.native},on:{change:e.change}},[e.placeholder?n("option",[e._v(e._s(e.placeholder))]):e._e(),e._v(" "),e._l(e.list,function(t,s){return[t.options?n("optgroup",{key:s,attrs:{label:t.label,disabled:t.disabled}},e._l(t.options,function(t,s){return n("option",{key:s,attrs:{label:t.label,disabled:t.disabled},domProps:{value:t.value,selected:t.value===e.value||t.selected}},[e._v(e._s(void 0!==t.label?t.label:t.value))])})):n("option",{key:s,attrs:{label:t.label,disabled:t.disabled},domProps:{value:t.value,selected:t.value===e.value||t.selected}},[e._v(e._s(void 0!==t.label?t.label:t.value))])]}),e._v(" "),e._t("default")],2)},staticRenderFns:[],name:"eks-select",model:{event:"change"},data:function(){return{list:[]}},props:{inline:Boolean,options:[Array,Object],placeholder:String,size:String,value:null},computed:{sizes:function(){var e=this.size,t=void 0,n=void 0;return m(e,["small","large"])?t=e:n=e,{custom:t,native:n}}},methods:{init:function(){this.list=function e(n){var s=[];return o(n,function(n,i){var r={value:n,selected:!1,disabled:!1};a(n)&&(f(n.options)?(t(n.label)||(r.label=n.label),t(n.value)||(r.value=n.value),r.options=e(n.options)):(r.label=i,b(r,n))),s.push(r)}),s}(this.options)},change:function(e){this.$emit("change",e.target.value)}},watch:{options:function(){this.init()}},mounted:function(){this.init()}},A={name:"eks-table-cell",props:{colSpan:Number,content:null,headers:String,index:null,rowSpan:Number,sortable:Boolean,sortType:{type:Number,default:0},scope:String,tag:{type:String,default:"td"}},computed:{$table:function(){return this.$parent.$parent.$parent}},render:function(e){var t=this,n=this.content,s=this.sortType,i=this.sortable,o={};return a(n)?b(o,n):r(n)?o.render=function(e){return n.call(t,e,t)}:o.template="<span>"+n+"</span>",e(this.tag,{attrs:{colSpan:this.colSpan,headers:this.headers,rowSpan:this.rowSpan,scope:this.scope},class:{"eks-table__cell":!0,"eks-table__cell--sortable":i,"eks-table__cell--ascended":i&&1===s,"eks-table__cell--descended":i&&2===s},on:i?{click:this.click}:null},[e("div",{class:"eks-table__content"},[e(o),i?e("i",{class:"eks-table__icon eks-table__icon--sort"},[e("span",{on:{click:function(){t.sortType=0}}}),e("span",{on:{click:function(){t.sortType=1}}})]):void 0])])},methods:{click:function(){this.sortable&&this.$table.sort(this.index,this.sortType+1)}}},B={name:"eks-table-row",props:{cells:{type:Array,required:!0},disabled:Boolean,indeterminate:Boolean,index:null,selected:Boolean,raw:[Array,Object],tag:{type:String,default:"tr"}},computed:{$table:function(){return this.$parent.$parent},inHeader:function(){return"thead"===this.$parent.tag},selectable:function(){return this.$table.selectable},multiple:function(){return this.$table.multiple},controls:function(){return this.$table.controls}},render:function(e){var t=this.selectable,n=this.multiple,s=this.controls,i=this.inHeader,a=this.indeterminate,r=this.selected,o=this.disabled,l=[].concat(d(this.cells));return t&&s&&l.unshift({content:function(e){return e(n?"eks-checkbox":"eks-radio",{props:{indeterminate:a,checked:r,disabled:!n&&i||o}})}}),e(this.tag,{class:{"eks-table__row":!0,"eks-table__row--disabled":t&&o&&!i,"eks-table__row--selected":t&&r&&!s&&!i},on:{click:this.click}},l.map(function(t,n){return e(A,{key:n,props:t,style:t.style})}))},methods:{click:function(){if(this.selectable&&!this.disabled){var e=this.$table,t=this.multiple;this.inHeader?t&&this.controls&&e.select(!0,this.selected||this.indeterminate):e.select(this.raw,t&&this.selected)}}}},C={name:"eks-table-section",props:{index:null,rows:{type:Array,required:!0},tag:{type:String,default:"tbody"}},render:function(e){return e(this.tag,{class:"eks-table__section"},this.rows.map(function(t,n){return e(B,{key:n,props:t,style:t.style})}))}},V=window.JSON,z={name:"eks-table",data:function(){return{sections:[]}},model:{prop:"selectedRows",event:"change"},props:{bordered:Boolean,caption:String,colgroup:Array,controls:Boolean,data:Array,disabledRows:Array,hoverable:Boolean,multiple:Boolean,responsive:Boolean,selectable:Boolean,selectedRows:Array,size:String,striped:Boolean,tag:{type:String,default:"table"}},render:function(e){var t=this.caption,n=this.colgroup,s=this.size,i=[];return t&&i.push(e("caption",{domProps:{textContent:t}})),n&&i.push(e("colgroup",n.map(function(t,n){return e("col",{attrs:{span:t.span},key:n,style:t.style})}))),e(this.tag,{class:u({"eks-table":!0,"eks-table--bordered":this.bordered,"eks-table--hoverable":this.hoverable,"eks-table--selectable":this.selectable,"eks-table--multiple":this.multiple,"eks-table--controls":this.controls,"eks-table--responsive":this.responsive,"eks-table--striped":this.striped},"eks-table--"+s,s)},i.concat(this.sections.map(function(t,n){return e(C,{key:n,props:t,style:t.style})})))},methods:{init:function(){var e=this.data,t=this.selectable,n=this.selectedRows,s=void 0===n?[]:n,i=this.disabledRows,r=void 0===i?[]:i;if(f(e)){var l={rows:[],tag:"tbody"},c=[];e.forEach(function(e,t){if(a(e)){if(f(e.rows))return void c.push(b({index:t,rows:[],tag:"tbody"},e))}else if(!f(e))throw new Error("Invalid table section: "+V.stringify(e));l.rows.push(e),m(l,c)||c.push(l)}),c=c.map(function(e,n){var i={index:n,rows:[],tag:"tbody"};if(f(e))i.rows=e;else{if(!a(e))throw new Error("Invalid table section: "+V.stringify(e));f(e.rows)?b(i,e):o(e,function(e,t){i.rows.push({cells:e,index:t})})}return i.rows=i.rows.map(function(e,n){var l={cells:[],index:n,raw:e,indeterminate:!1,selected:m(e,s),disabled:m(e,r),tag:"tr"};if(f(e))l.cells=e;else{if(!a(e))throw new Error("Invalid table row: "+V.stringify(e));f(e.cells)?b(l,e):o(e,function(e,t){l.cells.push({content:e,index:t})})}return t||(l.selected=!1),l.cells=l.cells.map(function(e,t){var n={content:"",index:t,sortType:0,tag:"thead"===i.tag?"th":"td"};return a(e)&&e.content?b(n,e):n.content=e,n}),l}),i}),this.sections=c.sort(function(e,t){var n={thead:0,tbody:1,tfoot:2};return n[e.tag]-n[t.tag]}),this.select()}},sort:function(e,t){t>2&&(t=0),this.sections.forEach(function(n){"thead"!==n.tag?n.rows.sort(function(n,s){var i=n.cells[e],a=s.cells[e];if(t>0){var r=i.content,o=a.content;switch(t){case 2:return[r,o].sort()[0]===r?1:-1;case 1:return[r,o].sort()[0]===r?-1:1}}return n.index-s.index}):n.rows.forEach(function(n){n.cells.forEach(function(n,s){n.sortType=s===e?t:0})})})},select:function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.selectable){var s=this.multiple,i=s&&!0===e,a=[],r=0,o=void 0;if(this.sections.forEach(function(l){switch(l.tag){case"thead":o=l;break;case"tbody":l.rows.forEach(function(o){r+=1,o.disabled||(s||t(e)||(o.selected=!1),(i||o.raw===e)&&(o.selected=!n),o.selected&&a.push(o.raw))})}}),s&&this.controls&&o){var l=o.rows[o.rows.length-1],c=a.length;c===r?(l.indeterminate=!1,l.selected=!0):c>0?(l.selected=!1,l.indeterminate=!0):(l.selected=!1,l.indeterminate=!1)}t(e)||this.$emit("change",a)}}},watch:{data:function(){this.init()}},mounted:function(){this.init()}},N={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("textarea",{staticClass:"eks-textarea",attrs:{rows:e.rowsAsNumber},domProps:{value:e.currentValue},on:{input:e.input,change:e.change}})},staticRenderFns:[],name:"eks-textarea",model:{event:"change"},props:{value:null,rows:{type:[Number,Array],default:2}},computed:{currentValue:function(){return t(this.value)?l(this.$slots.default):this.value},isArrayRows:function(){return f(this.rows)},rowsAsArray:function(){var e=this.rows,t=1,n=1/0;return this.isArrayRows&&(t=Math.max(e[0],t)||t,n=Math.min(e[1],n)||n,n=Math.max(n,t)),[t,n]},rowsAsNumber:function(){var e=this.rows;return this.isArrayRows?this.rowsAsArray[0]:Math.max(e,1)},maxHeight:function(){var e=this.rowsAsArray[1];return e===1/0?e:18+20*e}},methods:{input:function(e){var t=e.target;if(this.isArrayRows){var n=t.style;t.style.height="auto";var s=t.scrollHeight;s>t.clientHeight&&(n.height=Math.min(s+2,this.maxHeight)+"px")}},change:function(e){this.$emit("change",e.target.value)}}};return{Button:v,Col:k,Container:y,NumberInput:g,Checkbox:_,Input:w,Radio:x,Row:S,Select:$,Table:z,Textarea:N,install:function(e){e.component(v.name,v),e.component(_.name,_),e.component(k.name,k),e.component(y.name,y),e.component(w.name,w),e.component(g.name,g),e.component(x.name,x),e.component(S.name,S),e.component($.name,$),e.component(z.name,z),e.component(N.name,N)}}});
{
"name": "eks",
"version": "0.1.0",
"version": "0.2.0",
"description": "A series of Vue components.",

@@ -44,3 +44,3 @@ "main": "dist/eks.common.js",

"lint:docs": "eslint docs/src --ext .js,.vue,.md --fix",
"postbuild": "npm run compress && npm run test && npm run deploy",
"postbuild": "npm run compress && npm test && npm run deploy",
"prebuild": "npm run lint && npm run clear",

@@ -68,8 +68,8 @@ "start": "npm run dev",

"cssnano": "^3.10.0",
"eslint": "^4.6.1",
"eslint-config-airbnb-base": "^12.0.0",
"eslint": "^4.8.0",
"eslint-config-airbnb-base": "^12.0.2",
"eslint-plugin-html": "^3.2.1",
"eslint-plugin-import": "^2.7.0",
"eslint-plugin-markdown": "^1.0.0-beta.7",
"file-loader": "^0.11.2",
"file-loader": "^1.1.5",
"highlight.js": "^9.12.0",

@@ -86,6 +86,6 @@ "html-webpack-plugin": "^2.30.1",

"karma-sourcemap-loader": "^0.3.7",
"karma-webpack": "^2.0.4",
"karma-webpack": "^2.0.5",
"markdown-to-vue-loader": "^0.1.1",
"mocha": "^3.5.3",
"postcss": "^6.0.11",
"mocha": "^4.0.1",
"postcss": "^6.0.13",
"postcss-atrule-bem": "^3.0.1",

@@ -95,6 +95,7 @@ "postcss-cli": "^4.1.1",

"postcss-for": "^2.1.1",
"postcss-loader": "^2.0.6",
"postcss-header": "^1.0.0",
"postcss-loader": "^2.0.7",
"postcss-smart-import": "^0.7.5",
"rimraf": "^2.6.2",
"rollup": "^0.49.3",
"rollup": "^0.50.0",
"rollup-plugin-babel": "^3.0.2",

@@ -104,13 +105,14 @@ "rollup-plugin-commonjs": "^8.2.1",

"rollup-plugin-postcss": "^0.5.5",
"rollup-plugin-vue": "^2.4.2",
"style-loader": "^0.18.2",
"rollup-plugin-vue": "^2.5.2",
"style-loader": "^0.19.0",
"stylefmt": "^6.0.0",
"uglify-js": "^3.1.0",
"uglify-js": "^3.1.3",
"vue": "^2.4.4",
"vue-loader": "^13.0.4",
"vue-router": "^2.7.0",
"vuex": "^2.4.0",
"webpack": "^3.6.0",
"webpack-dev-server": "^2.8.2"
"vue-loader": "^13.3.0",
"vue-router": "^2.8.0",
"vue-template-compiler": "^2.4.4",
"vuex": "^2.5.0",
"webpack": "^3.7.1",
"webpack-dev-server": "^2.9.1"
}
}

@@ -13,3 +13,3 @@ # Eks

```bash
```shell
npm install eks

@@ -16,0 +16,0 @@ ```

@@ -10,2 +10,3 @@ import Button from './components/button';

import Select from './components/select/index.vue';
import Table from './components/table';
import Textarea from './components/textarea/index.vue';

@@ -23,2 +24,3 @@

Select,
Table,
Textarea,

@@ -36,4 +38,5 @@

Vue.component(Select.name, Select);
Vue.component(Table.name, Table);
Vue.component(Textarea.name, Textarea);
},
};

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc