Skip to content

Commit c0dd744

Browse files
afzalahsecuredeveloper
authored andcommitted
[feat] Fix gitignore and new build
1 parent c8e4e36 commit c0dd744

File tree

5 files changed

+500
-1
lines changed

5 files changed

+500
-1
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,3 @@ node_modules
44
.idea/
55
.nyc_output/
66
coverage/
7-
dist/ExcelPlugin
Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,192 @@
1+
"use strict";
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
7+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
8+
9+
var _react = require("react");
10+
11+
var _react2 = _interopRequireDefault(_react);
12+
13+
var _propTypes = require("prop-types");
14+
15+
var _propTypes2 = _interopRequireDefault(_propTypes);
16+
17+
var _fileSaver = require("file-saver");
18+
19+
var _xlsx = require("xlsx");
20+
21+
var _xlsx2 = _interopRequireDefault(_xlsx);
22+
23+
var _ExcelSheet = require("../elements/ExcelSheet");
24+
25+
var _ExcelSheet2 = _interopRequireDefault(_ExcelSheet);
26+
27+
var _DataUtil = require("../utils/DataUtil");
28+
29+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
30+
31+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
32+
33+
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
34+
35+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
36+
37+
var ExcelFile = function (_React$Component) {
38+
_inherits(ExcelFile, _React$Component);
39+
40+
function ExcelFile(props) {
41+
_classCallCheck(this, ExcelFile);
42+
43+
var _this = _possibleConstructorReturn(this, (ExcelFile.__proto__ || Object.getPrototypeOf(ExcelFile)).call(this, props));
44+
45+
_initialiseProps.call(_this);
46+
47+
if (_this.props.hideElement) {
48+
_this.download();
49+
} else {
50+
_this.handleDownload = _this.download.bind(_this);
51+
}
52+
53+
_this.createSheetData = _this.createSheetData.bind(_this);
54+
return _this;
55+
}
56+
57+
_createClass(ExcelFile, [{
58+
key: "createSheetData",
59+
value: function createSheetData(sheet) {
60+
var columns = sheet.props.children;
61+
var sheetData = [_react2.default.Children.map(columns, function (column) {
62+
return column.props.label;
63+
})];
64+
var data = typeof sheet.props.data === 'function' ? sheet.props.data() : sheet.props.data;
65+
66+
data.forEach(function (row) {
67+
var sheetRow = [];
68+
69+
_react2.default.Children.forEach(columns, function (column) {
70+
var getValue = typeof column.props.value === 'function' ? column.props.value : function (row) {
71+
return row[column.props.value];
72+
};
73+
var itemValue = getValue(row);
74+
sheetRow.push(isNaN(itemValue) ? itemValue || '' : itemValue);
75+
});
76+
77+
sheetData.push(sheetRow);
78+
});
79+
80+
return sheetData;
81+
}
82+
}, {
83+
key: "download",
84+
value: function download() {
85+
var _this2 = this;
86+
87+
var wb = {
88+
SheetNames: _react2.default.Children.map(this.props.children, function (sheet) {
89+
return sheet.props.name;
90+
}),
91+
Sheets: {}
92+
};
93+
94+
_react2.default.Children.forEach(this.props.children, function (sheet) {
95+
if (typeof sheet.props.dataSet === 'undefined' || sheet.props.dataSet.length === 0) {
96+
wb.Sheets[sheet.props.name] = (0, _DataUtil.excelSheetFromAoA)(_this2.createSheetData(sheet));
97+
} else {
98+
wb.Sheets[sheet.props.name] = (0, _DataUtil.excelSheetFromDataSet)(sheet.props.dataSet);
99+
}
100+
});
101+
102+
var fileExtension = this.getFileExtension();
103+
var fileName = this.getFileName();
104+
var wbout = _xlsx2.default.write(wb, { bookType: fileExtension, bookSST: true, type: 'binary' });
105+
106+
(0, _fileSaver.saveAs)(new Blob([(0, _DataUtil.strToArrBuffer)(wbout)], { type: "application/octet-stream" }), fileName);
107+
}
108+
}, {
109+
key: "getFileName",
110+
value: function getFileName() {
111+
if (this.props.filename === null || typeof this.props.filename !== 'string') {
112+
throw Error('Invalid file name provided');
113+
}
114+
return this.getFileNameWithExtension(this.props.filename, this.getFileExtension());
115+
}
116+
}, {
117+
key: "getFileExtension",
118+
value: function getFileExtension() {
119+
var extension = this.props.fileExtension;
120+
121+
if (extension.length === 0) {
122+
var slugs = this.props.filename.split('.');
123+
if (slugs.length === 0) {
124+
throw Error('Invalid file name provided');
125+
}
126+
extension = slugs[slugs.length - 1];
127+
}
128+
129+
if (this.fileExtensions.indexOf(extension) !== -1) {
130+
return extension;
131+
}
132+
133+
return this.defaultFileExtension;
134+
}
135+
}, {
136+
key: "getFileNameWithExtension",
137+
value: function getFileNameWithExtension(filename, extension) {
138+
return filename + "." + extension;
139+
}
140+
}, {
141+
key: "render",
142+
value: function render() {
143+
var _props = this.props,
144+
hideElement = _props.hideElement,
145+
element = _props.element;
146+
147+
148+
if (props.hideElement) {
149+
return null;
150+
} else {
151+
return _react2.default.createElement(
152+
"span",
153+
{ onClick: this.handleDownload },
154+
element
155+
);
156+
}
157+
}
158+
}]);
159+
160+
return ExcelFile;
161+
}(_react2.default.Component);
162+
163+
ExcelFile.props = {
164+
hideElement: _propTypes2.default.bool,
165+
filename: _propTypes2.default.string,
166+
fileExtension: _propTypes2.default.string,
167+
element: _propTypes2.default.any,
168+
children: function children(props, propName, componentName) {
169+
_react2.default.Children.forEach(props[propName], function (child) {
170+
if (child.type !== _ExcelSheet2.default) {
171+
throw new Error('<ExcelFile> can only have <ExcelSheet> as children. ');
172+
}
173+
});
174+
}
175+
};
176+
ExcelFile.defaultProps = {
177+
hideElement: false,
178+
filename: "Download",
179+
fileExtension: "xlsx",
180+
element: _react2.default.createElement(
181+
"button",
182+
null,
183+
"Download"
184+
)
185+
};
186+
187+
var _initialiseProps = function _initialiseProps() {
188+
this.fileExtensions = ['xlsx', 'xls', 'csv', 'txt', 'html'];
189+
this.defaultFileExtension = 'xlsx';
190+
};
191+
192+
exports.default = ExcelFile;
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
"use strict";
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
7+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
8+
9+
var _react = require("react");
10+
11+
var _react2 = _interopRequireDefault(_react);
12+
13+
var _propTypes = require("prop-types");
14+
15+
var _propTypes2 = _interopRequireDefault(_propTypes);
16+
17+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18+
19+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
20+
21+
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
22+
23+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
24+
25+
var ExcelColumn = function (_React$Component) {
26+
_inherits(ExcelColumn, _React$Component);
27+
28+
function ExcelColumn() {
29+
_classCallCheck(this, ExcelColumn);
30+
31+
return _possibleConstructorReturn(this, (ExcelColumn.__proto__ || Object.getPrototypeOf(ExcelColumn)).apply(this, arguments));
32+
}
33+
34+
_createClass(ExcelColumn, [{
35+
key: "render",
36+
value: function render() {
37+
return null;
38+
}
39+
}]);
40+
41+
return ExcelColumn;
42+
}(_react2.default.Component);
43+
44+
ExcelColumn.propsTypes = {
45+
label: _propTypes2.default.string.isRequired,
46+
value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.bool, _propTypes2.default.string, _propTypes2.default.func]).isRequired
47+
};
48+
exports.default = ExcelColumn;
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
"use strict";
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
7+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
8+
9+
var _react = require("react");
10+
11+
var _react2 = _interopRequireDefault(_react);
12+
13+
var _propTypes = require("prop-types");
14+
15+
var _propTypes2 = _interopRequireDefault(_propTypes);
16+
17+
var _ExcelColumn = require("./ExcelColumn");
18+
19+
var _ExcelColumn2 = _interopRequireDefault(_ExcelColumn);
20+
21+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22+
23+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
24+
25+
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
26+
27+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
28+
29+
var ExcelSheet = function (_React$Component) {
30+
_inherits(ExcelSheet, _React$Component);
31+
32+
function ExcelSheet() {
33+
_classCallCheck(this, ExcelSheet);
34+
35+
return _possibleConstructorReturn(this, (ExcelSheet.__proto__ || Object.getPrototypeOf(ExcelSheet)).apply(this, arguments));
36+
}
37+
38+
_createClass(ExcelSheet, [{
39+
key: "render",
40+
value: function render() {
41+
return null;
42+
}
43+
}]);
44+
45+
return ExcelSheet;
46+
}(_react2.default.Component);
47+
48+
ExcelSheet.propsTypes = {
49+
name: _propTypes2.default.string.isRequired,
50+
data: _propTypes2.default.arrayOf(_propTypes2.default.object),
51+
dataSet: _propTypes2.default.arrayOf(_propTypes2.default.object),
52+
value: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.func]).isRequired,
53+
children: _propTypes2.default.arrayOf(function (propValue, key) {
54+
var type = propValue[key];
55+
56+
if (type !== _ExcelColumn2.default) {
57+
throw new Error("<ExcelSheet> can only have <ExcelColumn> as children");
58+
}
59+
}).isRequired
60+
};
61+
exports.default = ExcelSheet;

0 commit comments

Comments
 (0)