Skip to content

Commit 2848e2f

Browse files
committed
firt release
1 parent 850f6ce commit 2848e2f

33 files changed

+2173
-21024
lines changed

.babelrc

Lines changed: 0 additions & 5 deletions
This file was deleted.

.npmignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
.idea
2+
.gitignore
3+
rollup.config.js
4+
example
5+
node_modules
6+
scripts

dist/smart-table-react.js

Lines changed: 81 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
1-
import React from 'react';
1+
(function (global, factory) {
2+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
3+
typeof define === 'function' && define.amd ? define(factory) :
4+
(global['smart-table-react'] = factory());
5+
}(this, (function () { 'use strict';
6+
7+
var table = function (HOCFactory) {
8+
return HOCFactory(({table}) => table, {}, 'onDisplayChange');
9+
};
210

311
function pointer (path) {
412

@@ -40,41 +48,45 @@ const mapConfProp = (map) => (props) => {
4048
return output;
4149
};
4250

51+
var HOCFactory = function ({Component, createElement}) {
52+
return function connect (directive, confMap, event, statePter) {
53+
const propMapper = mapConfProp(confMap);
54+
const pter = statePter ? pointer(statePter) : {get: () => ({})};
55+
56+
return function hoc (Wrapped) {
57+
class HOC extends Component {
58+
constructor (props) {
59+
const {smartTable} = props;
60+
const conf = Object.assign({table: smartTable}, propMapper(props));
61+
super(props);
62+
this.directive = directive(conf);
63+
this.state = {stState: pter.get(smartTable.getTableState())};
64+
}
4365

44-
function connect (directive, confMap, event, statePter) {
45-
const propMapper = mapConfProp(confMap);
46-
const pter = statePter ? pointer(statePter) : {get: () => ({})};
66+
componentDidMount () {
67+
this.directive[event](newStateSlice => {
68+
this.setState({stState: newStateSlice});
69+
});
70+
}
4771

48-
return function hoc (Wrapped) {
49-
return class HOC extends React.Component {
50-
constructor (props, context) {
51-
const {smartTable} = props;
52-
const conf = Object.assign({table: smartTable}, propMapper(props));
53-
super(props);
54-
this.directive = directive(conf);
55-
this.state = {stState: pter.get(smartTable.getTableState())};
56-
}
72+
componentWillUnmount () {
73+
this.directive.off();
74+
}
5775

58-
componentDidMount () {
59-
this.directive[event](newStateSlice => {
60-
this.setState({stState: newStateSlice});
61-
});
76+
render () {
77+
const stState = this.state.stState;
78+
const stDirective = this.directive;
79+
const children = this.props.children || [];
80+
return createElement(Wrapped, Object.assign({stState, stDirective}, this.props), children);
81+
}
6282
}
6383

64-
componentWillUnmount () {
65-
this.directive.off();
66-
}
84+
HOC.displayName = `smart-table-hoc(${Wrapped.displayName || Wrapped.name || 'Component'})`;
6785

68-
render () {
69-
const stState = this.state.stState;
70-
const stDirective = this.directive;
71-
return React.createElement(Wrapped, Object.assign({stState, stDirective}, this.props), null);
72-
}
86+
return HOC;
7387
};
74-
};
75-
}
76-
77-
var table = connect(({table}) => table, {}, 'onDisplayChange');
88+
}
89+
};
7890

7991
function proxyListener (eventMap) {
8092
return function ({emitter}) {
@@ -109,7 +121,7 @@ function proxyListener (eventMap) {
109121
const TOGGLE_SORT = 'TOGGLE_SORT';
110122

111123
const PAGE_CHANGED = 'CHANGE_PAGE';
112-
const EXEC_CHANGED = 'EXEC_STARTED';
124+
const EXEC_CHANGED = 'EXEC_CHANGED';
113125
const FILTER_CHANGED = 'FILTER_CHANGED';
114126
const SUMMARY_CHANGED = 'SUMMARY_CHANGED';
115127
const SEARCH_CHANGED = 'SEARCH_CHANGED';
@@ -229,20 +241,48 @@ const sort = sortDirective;
229241
const filter = filterDirective;
230242
const workingIndicator = workingIndicatorDirective;
231243

232-
var loadingIndicator = connect(workingIndicator, {}, 'onExecutionChange');
244+
var loadingIndicator = function (HOCFactory) {
245+
return HOCFactory(workingIndicator, {}, 'onExecutionChange');
246+
};
247+
248+
var pagination = function (HOCFactory) {
249+
return HOCFactory(slice, {}, 'onSummaryChange', 'slice');
250+
};
251+
252+
var search$2 = function (HOCFactory) {
253+
return HOCFactory(search, {stScope: 'scope'}, 'onSearchChange', 'search');
254+
};
233255

234-
var pagination = connect(slice,{},'onSummaryChange','slice');
256+
var sort$1 = function (HOCFactory) {
257+
return HOCFactory(sort, {stSort: 'pointer', stSortCycle: 'cycle'}, 'onSortToggle', 'sort');
258+
};
235259

236-
var search$2 = connect(search, {stScope: 'scope'}, 'onSearchChange','search');
260+
var summary$1 = function (HOCFactory) {
261+
return HOCFactory(summary, {}, 'onSummaryChange');
262+
};
237263

238-
var sort$1 = connect(sort, {stSort: 'pointer', stSortCycle: 'cycle'}, 'onSortToggle','sort');
264+
var filter$2 = function (HOCFactory) {
265+
return HOCFactory(filter, {
266+
stFilter: 'pointer',
267+
stFilterType: 'type',
268+
stFilterOperator: 'operator'
269+
}, 'onFilterChange', 'filter');
270+
};
239271

240-
var summary$1 = connect(summary, {}, 'onSummaryChange');
272+
var index = function (react) {
273+
const HOCF = HOCFactory(react);
274+
return {
275+
table: table(HOCF),
276+
loadingIndicator: loadingIndicator(HOCF),
277+
HOCFactory: HOCF,
278+
pagination: pagination(HOCF),
279+
search: search$2(HOCF),
280+
sort: sort$1(HOCF),
281+
summary: summary$1(HOCF),
282+
filter: filter$2(HOCF)
283+
};
284+
};
241285

242-
var filters = connect(filter, {
243-
stFilter: 'pointer',
244-
stFilterType: 'type',
245-
stFilterOperator: 'operator'
246-
}, 'onFilterChange', 'filter');
286+
return index;
247287

248-
export { table, loadingIndicator, connect as HOCFactory, pagination, search$2 as search, sort$1 as sort, summary$1 as summary, filters as filter };
288+
})));

0 commit comments

Comments
 (0)