UNPKG

cluedin-widget

Version:
608 lines (473 loc) • 20.1 kB
(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); /***/ }) }]);