cluedin-widget
Version:
608 lines (473 loc) • 20.1 kB
JavaScript
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[21],{
/***/ 2324:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(0);
var react_default = /*#__PURE__*/__webpack_require__.n(react);
// EXTERNAL MODULE: ./node_modules/recompose/es/Recompose.js
var Recompose = __webpack_require__(6);
// EXTERNAL MODULE: ./node_modules/react-redux/es/index.js + 18 modules
var es = __webpack_require__(8);
// EXTERNAL MODULE: ./node_modules/uxi/Widget/index.js
var Widget = __webpack_require__(40);
// EXTERNAL MODULE: ./node_modules/uxi/Base/index.js
var Base = __webpack_require__(72);
// EXTERNAL MODULE: ./node_modules/react-intl/lib/index.es.js
var index_es = __webpack_require__(4);
// EXTERNAL MODULE: ./node_modules/connected-react-router/lib/index.js
var lib = __webpack_require__(25);
// EXTERNAL MODULE: ./node_modules/uxi/Stepper/index.js
var Stepper = __webpack_require__(80);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/classCallCheck.js
var classCallCheck = __webpack_require__(12);
var classCallCheck_default = /*#__PURE__*/__webpack_require__.n(classCallCheck);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/createClass.js
var createClass = __webpack_require__(13);
var createClass_default = /*#__PURE__*/__webpack_require__.n(createClass);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__(14);
var possibleConstructorReturn_default = /*#__PURE__*/__webpack_require__.n(possibleConstructorReturn);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/getPrototypeOf.js
var getPrototypeOf = __webpack_require__(15);
var getPrototypeOf_default = /*#__PURE__*/__webpack_require__.n(getPrototypeOf);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/inherits.js
var inherits = __webpack_require__(16);
var inherits_default = /*#__PURE__*/__webpack_require__.n(inherits);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/assertThisInitialized.js
var assertThisInitialized = __webpack_require__(27);
var assertThisInitialized_default = /*#__PURE__*/__webpack_require__.n(assertThisInitialized);
// EXTERNAL MODULE: ./node_modules/uxi/Layout/index.js
var Layout = __webpack_require__(26);
// EXTERNAL MODULE: ./node_modules/uxi/Input/index.js
var Input = __webpack_require__(35);
// EXTERNAL MODULE: ./node_modules/uxi/Button/index.js
var Button = __webpack_require__(18);
var Button_default = /*#__PURE__*/__webpack_require__.n(Button);
// EXTERNAL MODULE: ./node_modules/uxi/Alert/index.js
var Alert = __webpack_require__(24);
var Alert_default = /*#__PURE__*/__webpack_require__.n(Alert);
// EXTERNAL MODULE: ./node_modules/uxi/Icons/index.js
var Icons = __webpack_require__(9);
// EXTERNAL MODULE: ./node_modules/uxi/Indicator/index.js
var Indicator = __webpack_require__(43);
// CONCATENATED MODULE: ./core/modules/GDPR/components/containers/import/ImportFile.js
var ImportFile_ImportFile =
/*#__PURE__*/
function (_Component) {
inherits_default()(ImportFile, _Component);
function ImportFile(props) {
var _this;
classCallCheck_default()(this, ImportFile);
_this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(ImportFile).call(this, props));
_this.state = {
file: null
};
_this.onFileChange = _this.onFileChange.bind(assertThisInitialized_default()(assertThisInitialized_default()(_this)));
_this.onFileUploadHandler = _this.onFileUploadHandler.bind(assertThisInitialized_default()(assertThisInitialized_default()(_this)));
return _this;
}
createClass_default()(ImportFile, [{
key: "onFileChange",
value: function onFileChange(e) {
var _this$props = this.props,
importedSARInvalid = _this$props.importedSARInvalid,
cleanUp = _this$props.cleanUp;
var files = e.target.files;
var file = files[0];
this.setState({
file: file
});
if (importedSARInvalid) {
if (cleanUp) {
cleanUp();
}
}
}
}, {
key: "onFileUploadHandler",
value: function onFileUploadHandler() {
var onFileUpload = this.props.onFileUpload;
var file = this.state.file;
if (file && onFileUpload) {
onFileUpload(file);
}
}
}, {
key: "render",
value: function render() {
var file = this.state.file;
var _this$props2 = this.props,
importedSARInvalid = _this$props2.importedSARInvalid,
importedSARFetching = _this$props2.importedSARFetching;
var errorMsg = null;
if (importedSARInvalid) {
var details = null;
if (importedSARInvalid instanceof Error) {
details = react_default.a.createElement("div", null, react_default.a.createElement("strong", null, "Details:"), " ", react_default.a.createElement("br", null), importedSARInvalid.toString());
}
errorMsg = react_default.a.createElement(Alert_default.a, {
type: "error"
}, "An error occured while sending the data. ", react_default.a.createElement("br", null), details);
}
return react_default.a.createElement("div", null, errorMsg, react_default.a.createElement(Layout["Flex"], {
style: {
padding: '40px',
borderTop: '1px solid #ececec',
flexDirection: 'column'
}
}, react_default.a.createElement(Input["FileInput"], {
label: 'Choose file',
onChange: this.onFileChange
}), react_default.a.createElement("div", null, !file && 'no file chosen', file && file.name), react_default.a.createElement("div", {
style: {
padding: '32px'
}
}, react_default.a.createElement(Button_default.a, {
disabled: !file,
type: "primary",
message: "Upload file and setup S.A.R",
onClick: this.onFileUploadHandler,
icon: importedSARFetching ? react_default.a.createElement(Indicator["Loader"], null) : react_default.a.createElement(Icons["Upload"], null)
}))));
}
}]);
return ImportFile;
}(react["Component"]);
/* harmony default export */ var import_ImportFile = (ImportFile_ImportFile);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectSpread.js
var objectSpread = __webpack_require__(2);
var objectSpread_default = /*#__PURE__*/__webpack_require__.n(objectSpread);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js
var taggedTemplateLiteral = __webpack_require__(7);
var taggedTemplateLiteral_default = /*#__PURE__*/__webpack_require__.n(taggedTemplateLiteral);
// EXTERNAL MODULE: ./node_modules/styled-components/dist/styled-components.browser.es.js
var styled_components_browser_es = __webpack_require__(5);
// EXTERNAL MODULE: ./node_modules/uuid/v4.js
var v4 = __webpack_require__(185);
var v4_default = /*#__PURE__*/__webpack_require__.n(v4);
// EXTERNAL MODULE: ./node_modules/uxi/Table/index.js
var Table = __webpack_require__(30);
// EXTERNAL MODULE: ./core/modules/core/actions.js
var actions = __webpack_require__(60);
// CONCATENATED MODULE: ./core/modules/genericDataManipulation/components/composites/JsonPreview.js
function _templateObject() {
var data = taggedTemplateLiteral_default()(["\n overflow-x: scroll;\n position: relative;\n display: flex;\n & > div {\n flex: 1;\n }\n"]);
_templateObject = function _templateObject() {
return data;
};
return data;
}
var PreviewRoot = styled_components_browser_es["default"].div(_templateObject());
var createHeaders = function createHeaders() {
var json = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var propKeys = Object.keys(json[0] || {}).filter(function (i) {
return i.toLowerCase() !== 'idForClient'.toLowerCase();
}) || [];
json.forEach(function (j) {
(Object.keys(j) || {}).forEach(function (k) {
if (propKeys.indexOf(k) === -1 && k.toLowerCase() !== 'idForClient'.toLowerCase()) {
propKeys.push(k);
}
});
});
return propKeys;
};
var createValuesFromItemArray = function createValuesFromItemArray() {
var headers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var json = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return headers.map(function (h) {
return json[h] || '-';
});
};
var createValues = function createValues() {
var headers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var json = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
var allValues = []; // striup clientID in original value
json.forEach(function (jsonItem) {
allValues.push({
vm: createValuesFromItemArray(headers, jsonItem) || [],
original: jsonItem
});
});
return allValues;
};
var JsonPreview_PreviewStatus = function PreviewStatus(_ref) {
var status = _ref.status,
errorMsg = _ref.errorMsg;
var statusContent = 'Ready';
if (status && status.isFetching) {
statusContent = 'Loading...';
}
if (status && status.invalid) {
statusContent = "An error occured! ".concat(errorMsg || '');
}
if (status && status.done) {
statusContent = 'SAR has been created';
}
return react_default.a.createElement("div", null, statusContent);
};
var EnhancedPreviewStatus = Object(actions["g" /* withStatus */])(JsonPreview_PreviewStatus, function (json, ownProps) {
return json.Identifiers.idForClient === ownProps.original.idForClient;
});
var JsonPreview_JsonPreview =
/*#__PURE__*/
function (_Component) {
inherits_default()(JsonPreview, _Component);
function JsonPreview(props) {
var _this;
classCallCheck_default()(this, JsonPreview);
_this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(JsonPreview).call(this, props));
var jsonWithIds = (props.json || []).map(function (j) {
return objectSpread_default()({
idForClient: v4_default()()
}, j);
});
var headers = createHeaders(jsonWithIds);
_this.state = {
headers: headers,
values: createValues(headers, jsonWithIds)
};
return _this;
}
createClass_default()(JsonPreview, [{
key: "componentWillReceiveProps",
value: function componentWillReceiveProps(nextProps) {
var json = this.props.json;
if (json && nextProps && nextProps.json && nextProps.json.length !== json.length) {
var jsonWithIds = (nextProps.json || []).map(function (j) {
return objectSpread_default()({
idForClient: v4_default()()
}, j);
});
var headers = createHeaders(jsonWithIds);
this.state = {
headers: headers,
values: createValues(headers, jsonWithIds)
};
}
}
}, {
key: "render",
value: function render() {
var _this$state = this.state,
headers = _this$state.headers,
values = _this$state.values;
var onChange = this.props.onChange;
return react_default.a.createElement(PreviewRoot, null, react_default.a.createElement(Table["Table"], {
onChange: onChange,
multiSelectable: true,
selectable: true,
style: {
tableLayout: 'auto'
}
}, react_default.a.createElement(Table["TableHeader"], null, react_default.a.createElement(Table["TableRow"], null, react_default.a.createElement(Table["TableHeaderColumn"], null, "Status"), (headers || []).map(function (k) {
return react_default.a.createElement(Table["TableHeaderColumn"], null, k);
}))), react_default.a.createElement(Table["TableBody"], null, (values || []).map(function (_ref2) {
var original = _ref2.original,
vm = _ref2.vm;
return react_default.a.createElement(Table["TableRow"], {
value: original
}, react_default.a.createElement(Table["TableRowColumn"], {
style: {
minWidth: '200px'
}
}, react_default.a.createElement(EnhancedPreviewStatus, {
original: original,
vm: vm
})), (Object.values(vm) || []).map(function (value) {
return react_default.a.createElement(Table["TableRowColumn"], {
style: {
minWidth: '200px'
}
}, value);
}));
}))));
}
}]);
return JsonPreview;
}(react["Component"]);
/* harmony default export */ var composites_JsonPreview = (JsonPreview_JsonPreview);
// EXTERNAL MODULE: ./core/modules/GDPR/data.js
var GDPR_data = __webpack_require__(67);
// CONCATENATED MODULE: ./core/modules/GDPR/components/containers/import/ReviewAndCreateSar.js
var toSARPayload = function toSARPayload() {
var selected = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var currentUserEmail = arguments.length > 1 ? arguments[1] : undefined;
return selected.map(function (x) {
return {
Type: 'Export',
Email: currentUserEmail,
Identifiers: x
};
});
};
var ReviewAndCreateSar_ReviewAndCreateSar =
/*#__PURE__*/
function (_Component) {
inherits_default()(ReviewAndCreateSar, _Component);
function ReviewAndCreateSar(props) {
var _this;
classCallCheck_default()(this, ReviewAndCreateSar);
_this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(ReviewAndCreateSar).call(this, props));
_this.state = {
selected: []
};
_this.addToSelection = _this.addToSelection.bind(assertThisInitialized_default()(assertThisInitialized_default()(_this)));
_this.createAllSelectedSar = _this.createAllSelectedSar.bind(assertThisInitialized_default()(assertThisInitialized_default()(_this)));
return _this;
}
createClass_default()(ReviewAndCreateSar, [{
key: "componentWillReceiveProps",
value: function componentWillReceiveProps(nextProps) {
var allDoneAndRedirect = this.props.allDoneAndRedirect;
if (nextProps.allDone) {
allDoneAndRedirect();
}
}
}, {
key: "addToSelection",
value: function addToSelection(evt, selectedRows, selectedRowsValues) {
this.setState({
selected: selectedRowsValues || []
});
}
}, {
key: "createAllSelectedSar",
value: function createAllSelectedSar() {
var selected = this.state.selected;
var _this$props = this.props,
batch = _this$props.batch,
currentUserEmail = _this$props.currentUserEmail;
if (batch && selected.length > 0) {
var vm = toSARPayload(selected, currentUserEmail);
batch(vm);
}
}
}, {
key: "render",
value: function render() {
/**
*
* For Each JSON => reserved keyWords => requestIsFetching,
* requestDone, requestInvalid => JSON Preview should understand this.
*/
var json = this.props.json;
return react_default.a.createElement("div", null, react_default.a.createElement("div", {
style: {
padding: '16px'
}
}, react_default.a.createElement(Button_default.a, {
type: "primary",
message: "Create S.A.R",
onClick: this.createAllSelectedSar
})), react_default.a.createElement(composites_JsonPreview, {
json: json,
onChange: this.addToSelection
}));
}
}]);
return ReviewAndCreateSar;
}(react["Component"]);
/* harmony default export */ var import_ReviewAndCreateSar = (Object(actions["e" /* withBatchActionStatus */])(ReviewAndCreateSar_ReviewAndCreateSar, GDPR_data["f" /* createSar */]));
// EXTERNAL MODULE: ./core/modules/GDPR/actions.js
var GDPR_actions = __webpack_require__(23);
// CONCATENATED MODULE: ./core/modules/GDPR/components/containers/GdprImportSarContainer.js
var GdprImportSarContainer_GdprImportSarContainer = function GdprImportSarContainer(_ref) {
var onFileUpload = _ref.onFileUpload,
step = _ref.step,
_ref$importedSAR = _ref.importedSAR,
importedSAR = _ref$importedSAR === void 0 ? [] : _ref$importedSAR,
importedSARSuccess = _ref.importedSARSuccess,
importedSARInvalid = _ref.importedSARInvalid,
importedSARFetching = _ref.importedSARFetching,
currentUserEmail = _ref.currentUserEmail,
allDoneAndRedirect = _ref.allDoneAndRedirect,
cleanUp = _ref.cleanUp;
return react_default.a.createElement(Widget["Widget"], {
style: {
background: '#fff',
margin: '32px'
},
title: react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-gdpr-importSaRFromFile"
})
}, react_default.a.createElement(Base["DivPadding"], {
padding: "S"
}, react_default.a.createElement(Stepper["Stepper"], {
activeStep: step,
linear: true,
nowrap: true
}, react_default.a.createElement(Stepper["Step"], null, react_default.a.createElement(Stepper["StepButton"], null, react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-gdpr-importSARStep1"
}))), react_default.a.createElement(Stepper["Step"], null, react_default.a.createElement(Stepper["StepButton"], null, react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-gdpr-importSARStep2"
}))))), step === 1 && react_default.a.createElement(import_ImportFile, {
onFileUpload: onFileUpload,
importedSARSuccess: importedSARSuccess,
importedSARInvalid: importedSARInvalid,
importedSARFetching: importedSARFetching,
cleanUp: cleanUp
}), step === 2 && react_default.a.createElement(import_ReviewAndCreateSar, {
json: importedSAR,
currentUserEmail: currentUserEmail,
allDoneAndRedirect: allDoneAndRedirect
}));
};
var getStep = function getStep() {
var json = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
if (json && json.length > 0) {
return 2;
}
return 1;
};
var EnhancedGdprImportSarContainer = Object(Recompose["b" /* compose */])(Object(Recompose["c" /* lifecycle */])({
componentDidMount: function componentDidMount() {
var cleanUp = this.props.cleanUp;
cleanUp();
},
componentWillUnmount: function componentWillUnmount() {
var cleanUp = this.props.cleanUp;
cleanUp();
}
}))(GdprImportSarContainer_GdprImportSarContainer);
var mapStateToProps = function mapStateToProps(_ref2) {
var _ref2$GDPR = _ref2.GDPR,
importedSAR = _ref2$GDPR.importedSAR,
importedSARSuccess = _ref2$GDPR.importedSARSuccess,
importedSARInvalid = _ref2$GDPR.importedSARInvalid,
importedSARFetching = _ref2$GDPR.importedSARFetching,
currentUser = _ref2.user.currentUser;
return {
importedSAR: importedSAR,
importedSARSuccess: importedSARSuccess,
importedSARInvalid: importedSARInvalid,
importedSARFetching: importedSARFetching,
step: getStep(importedSAR),
currentUserEmail: currentUser.client.Email || null
};
};
var GdprImportSarContainer_mapDispatchToProps = function mapDispatchToProps(dispatch) {
return {
onFileUpload: function onFileUpload(file) {
dispatch(Object(GDPR_actions["Q" /* shouldBatchImportFromFile */])(file));
},
cleanUp: function cleanUp() {
dispatch(Object(GDPR_actions["j" /* batchImportFromFileCleanUpActions */])());
},
allDoneAndRedirect: function allDoneAndRedirect() {
dispatch(Object(actions["c" /* shouldShowAlert */])({
type: 'success',
description: 'All S.A.R have been created'
}));
dispatch(Object(GDPR_actions["j" /* batchImportFromFileCleanUpActions */])());
dispatch(Object(lib["push"])('/gdpr/list'));
}
};
};
/* harmony default export */ var containers_GdprImportSarContainer = (Object(es["connect"])(mapStateToProps, GdprImportSarContainer_mapDispatchToProps)(EnhancedGdprImportSarContainer));
// CONCATENATED MODULE: ./core/modules/GDPR/components/pages/GdprSarImportPage.js
/* harmony default export */ var GdprSarImportPage = __webpack_exports__["default"] = (containers_GdprImportSarContainer);
/***/ })
}]);