cluedin-widget
Version:
432 lines (356 loc) • 17.1 kB
JavaScript
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[17],{
/***/ 2332:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
// 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/react/index.js
var react = __webpack_require__(0);
var react_default = /*#__PURE__*/__webpack_require__.n(react);
// EXTERNAL MODULE: ./node_modules/prop-types/index.js
var prop_types = __webpack_require__(1);
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
// 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/connected-react-router/lib/index.js
var lib = __webpack_require__(25);
// EXTERNAL MODULE: ./node_modules/react-intl/lib/index.es.js
var index_es = __webpack_require__(4);
// EXTERNAL MODULE: ./node_modules/react-redux/es/index.js + 18 modules
var es = __webpack_require__(8);
// EXTERNAL MODULE: ./node_modules/uxi/Text/index.js
var Text = __webpack_require__(36);
var Text_default = /*#__PURE__*/__webpack_require__.n(Text);
// EXTERNAL MODULE: ./node_modules/uxi/Base/index.js
var Base = __webpack_require__(72);
// EXTERNAL MODULE: ./node_modules/recompose/es/Recompose.js
var Recompose = __webpack_require__(6);
// EXTERNAL MODULE: ./core/modules/GDPR/actions.js
var actions = __webpack_require__(23);
// 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/Input/index.js
var Input = __webpack_require__(35);
// EXTERNAL MODULE: ./core/modules/core/components/composites/PageLoader.js
var PageLoader = __webpack_require__(38);
// EXTERNAL MODULE: ./node_modules/uxi/Table/index.js
var Table = __webpack_require__(30);
// EXTERNAL MODULE: ./core/modules/wms/helpers/entityPropertyConfig.js
var entityPropertyConfig = __webpack_require__(109);
// EXTERNAL MODULE: ./core/modules/entity/components/composites/EntityLink.js
var EntityLink = __webpack_require__(341);
// CONCATENATED MODULE: ./core/modules/entity/components/composites/lists/PersonTableList.js
var roundNumber = function roundNumber(num) {
return Math.round(num * 100) / 100;
};
var handleChange = function handleChange(event, data, props) {
var onEntitySelected = props.onEntitySelected,
personEntities = props.personEntities,
selectedEntity = props.selectedEntity;
if (onEntitySelected) {
var entityToBecomeSelected = personEntities.find(function (e, i) {
return i === data[0];
});
onEntitySelected(entityToBecomeSelected, selectedEntity);
}
};
var PersonTableList_PersonTableList = function PersonTableList(props) {
var personEntities = props.personEntities,
selectedEntity = props.selectedEntity;
return react_default.a.createElement("div", {
style: {
height: 'calc(100vh - 500px)',
overflowY: 'scroll'
}
}, react_default.a.createElement(Table["Table"], {
selectable: true,
onChange: function onChange(event, data) {
return handleChange(event, data, props);
}
}, react_default.a.createElement(Table["TableHeader"], null, react_default.a.createElement(Table["TableRow"], null, react_default.a.createElement(Table["TableHeaderColumn"], null, react_default.a.createElement(Text_default.a, {
type: "caption"
}, "Full name")), react_default.a.createElement(Table["TableHeaderColumn"], null, react_default.a.createElement(Text_default.a, {
type: "caption"
}, "Likelihood (%)")), react_default.a.createElement(Table["TableHeaderColumn"], null, react_default.a.createElement(Text_default.a, {
type: "caption"
}, "Job Title")), react_default.a.createElement(Table["TableHeaderColumn"], null, react_default.a.createElement(Text_default.a, {
type: "caption"
}, "Email")), react_default.a.createElement(Table["TableHeaderColumn"], null, react_default.a.createElement(Text_default.a, {
type: "caption"
}, "Phone Number")))), react_default.a.createElement(Table["TableBody"], null, function () {
return personEntities && personEntities.map && personEntities.map(function (entity) {
var properties = entity && entity.data && entity.data.properties ? entity.data.properties : {};
return react_default.a.createElement(Table["TableRow"], {
selected: selectedEntity && selectedEntity.id === entity.Id
}, react_default.a.createElement(Table["TableRowColumn"], null, react_default.a.createElement(EntityLink["a" /* default */], {
entity: entity,
openInNewTab: true
})), react_default.a.createElement(Table["TableRowColumn"], null, entity.Score ? roundNumber(entity.Score) : 'Not available'), react_default.a.createElement(Table["TableRowColumn"], null, react_default.a.createElement(Text_default.a, null, Object(entityPropertyConfig["f" /* findOnePropertyValue */])(properties, entityPropertyConfig["j" /* jobTitle */]) || 'N/A')), react_default.a.createElement(Table["TableRowColumn"], null, react_default.a.createElement(Text_default.a, null, Object(entityPropertyConfig["f" /* findOnePropertyValue */])(properties, entityPropertyConfig["c" /* email */]) || 'N/A')), react_default.a.createElement(Table["TableRowColumn"], null, react_default.a.createElement(Text_default.a, null, Object(entityPropertyConfig["f" /* findOnePropertyValue */])(properties, entityPropertyConfig["l" /* phoneNumber */]) || 'N/A')));
});
}(selectedEntity))));
};
PersonTableList_PersonTableList.defaultProps = {
personEntities: []
};
/* harmony default export */ var lists_PersonTableList = (PersonTableList_PersonTableList);
// CONCATENATED MODULE: ./core/modules/GDPR/components/containers/lists/GdprEntitySearchContainer.js
var GdprEntitySearchContainer_EntitySearchContainer =
/*#__PURE__*/
function (_Component) {
inherits_default()(EntitySearchContainer, _Component);
function EntitySearchContainer(props) {
var _this;
classCallCheck_default()(this, EntitySearchContainer);
_this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(EntitySearchContainer).call(this, props));
_this.state = {
includeUnstructuredData: false,
includeExternalData: false
};
_this.onIncludeUnstructuredData = _this.onIncludeUnstructuredData.bind(assertThisInitialized_default()(assertThisInitialized_default()(_this)));
_this.onIncludeExternalData = _this.onIncludeExternalData.bind(assertThisInitialized_default()(assertThisInitialized_default()(_this)));
return _this;
}
createClass_default()(EntitySearchContainer, [{
key: "onIncludeUnstructuredData",
value: function onIncludeUnstructuredData(evt, value) {
this.setState({
includeUnstructuredData: value
});
}
}, {
key: "onIncludeExternalData",
value: function onIncludeExternalData(evt, value) {
this.setState({
includeExternalData: value
});
}
}, {
key: "render",
value: function render() {
var _this$props = this.props,
selectedEntity = _this$props.selectedEntity,
onEntitySelected = _this$props.onEntitySelected,
personEntities = _this$props.personEntities,
fetchPersons = _this$props.fetchPersons,
isFetching = _this$props.isFetching;
var _this$state = this.state,
includeUnstructuredData = _this$state.includeUnstructuredData,
includeExternalData = _this$state.includeExternalData;
return react_default.a.createElement("div", null, react_default.a.createElement("div", {
style: {
display: 'flex',
alignItems: 'center',
padding: '6px 0',
justifyContent: 'center'
}
}, react_default.a.createElement(Input["SearchForm"], {
onSubmit: function onSubmit(ev, val) {
return fetchPersons({
query: val,
includeUnstructuredData: includeUnstructuredData,
includeExternalData: includeExternalData
});
}
}), react_default.a.createElement(Input["Checkbox"], {
style: {
marginLeft: '16px'
},
name: "unstructureData",
label: "Include unstructured data",
checked: includeUnstructuredData,
onChange: this.onIncludeUnstructuredData
}), react_default.a.createElement(Input["Checkbox"], {
style: {
marginLeft: '16px'
},
name: "externalSearchData",
label: "Include external data",
checked: includeExternalData,
onChange: this.onIncludeExternalData
})), isFetching && react_default.a.createElement("div", {
style: {
position: 'relative',
minHeight: '300px'
}
}, react_default.a.createElement(PageLoader["a" /* default */], null)), !isFetching && react_default.a.createElement("div", null, personEntities && personEntities.length < 1 ? react_default.a.createElement("div", {
style: {
textAlign: 'center',
padding: '16px'
}
}, react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-gdpr-noResult"
})) : react_default.a.createElement(lists_PersonTableList, {
selectedEntity: selectedEntity,
onEntitySelected: onEntitySelected,
personEntities: personEntities
})));
}
}]);
return EntitySearchContainer;
}(react["Component"]);
GdprEntitySearchContainer_EntitySearchContainer.displayName = 'GdprEntitySearchContainer';
GdprEntitySearchContainer_EntitySearchContainer.propTypes = {
selectedEntity: prop_types_default.a.object,
onEntitySelected: prop_types_default.a.func,
personEntities: prop_types_default.a.object,
fetchPersons: prop_types_default.a.func,
isFetching: prop_types_default.a.bool
};
GdprEntitySearchContainer_EntitySearchContainer.defaultProps = {
selectedEntity: {},
onEntitySelected: function onEntitySelected() {},
personEntities: {},
fetchPersons: function fetchPersons() {},
isFetching: false
};
/* harmony default export */ var GdprEntitySearchContainer = (GdprEntitySearchContainer_EntitySearchContainer);
// CONCATENATED MODULE: ./core/modules/GDPR/components/pages/GdprNewSubjectAccessFindEntity.js
var GdprNewSubjectAccessFindEntity_GdprNewSubjectAccessFindEntity = function GdprNewSubjectAccessFindEntity(_ref) {
var next = _ref.next,
isFetching = _ref.isFetching,
entities = _ref.entities,
onPersonSelected = _ref.onPersonSelected,
hasSelected = _ref.hasSelected,
selectedEntity = _ref.selectedEntity,
currentSAR = _ref.currentSAR,
fetchPersons = _ref.fetchPersons;
return react_default.a.createElement("div", null, react_default.a.createElement(Base["DivPadding"], {
padding: "S"
}, react_default.a.createElement(Text_default.a, null, react_default.a.createElement(index_es["FormattedHTMLMessage"], {
id: "module-gdpr-html-selectOnePerson"
}))), react_default.a.createElement(GdprEntitySearchContainer, {
isFetching: isFetching,
selectedEntity: selectedEntity,
onEntitySelected: onPersonSelected,
personEntities: entities,
fetchPersons: fetchPersons
}), react_default.a.createElement(Base["DivPadding"], {
padding: "S"
}, react_default.a.createElement(Button_default.a, {
style: {
marginLeft: '15px'
},
type: "primary",
click: function click() {
return next(objectSpread_default()({}, currentSAR, {
State: 2
}), selectedEntity.guid);
},
message: react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-gdpr-next"
}),
disabled: isFetching || !hasSelected
})));
};
var GdprNewSubjectAccessFindEntityEnhanced = Object(Recompose["b" /* compose */])(Object(Recompose["c" /* lifecycle */])({
componentDidMount: function componentDidMount() {
var currentSAR = this.props.currentSAR;
if (currentSAR && currentSAR.Id) {
var _this$props = this.props,
fetchPersons = _this$props.fetchPersons,
Identifiers = _this$props.currentSAR.Identifiers;
var identifiersSearch = Identifiers && Object.keys(Identifiers).map(function (key) {
return Identifiers[key];
}).join(' ');
fetchPersons({
query: identifiersSearch
});
}
},
componentDidUpdate: function componentDidUpdate(prevProps) {
var currentSARId = this.props.currentSARId;
var oldSarId = prevProps.currentSARId;
if (currentSARId && oldSarId && currentSARId !== oldSarId) {
var _this$props2 = this.props,
fetchPersons = _this$props2.fetchPersons,
Identifiers = _this$props2.currentSAR.Identifiers;
var identifiersSearch = Identifiers && Object.keys(Identifiers).map(function (key) {
return Identifiers[key];
}).join(' ');
fetchPersons({
query: identifiersSearch
});
}
}
}))(GdprNewSubjectAccessFindEntity_GdprNewSubjectAccessFindEntity);
GdprNewSubjectAccessFindEntity_GdprNewSubjectAccessFindEntity.displayName = 'GdprNewSubjectAccessFindEntity';
GdprNewSubjectAccessFindEntity_GdprNewSubjectAccessFindEntity.propTypes = {
next: prop_types_default.a.func,
isFetching: prop_types_default.a.bool,
entities: prop_types_default.a.array,
onPersonSelected: prop_types_default.a.func,
hasSelected: prop_types_default.a.bool,
selectedEntity: prop_types_default.a.object,
currentSAR: prop_types_default.a.object,
fetchPersons: prop_types_default.a.func
};
GdprNewSubjectAccessFindEntity_GdprNewSubjectAccessFindEntity.defaultProps = {
next: function next() {},
isFetching: false,
entities: [],
onPersonSelected: function onPersonSelected() {},
hasSelected: false,
selectedEntity: {},
currentSAR: {},
fetchPersons: function fetchPersons() {}
};
var mapToStateProps = function mapToStateProps(_ref2, _ref3) {
var _ref2$GDPR = _ref2.GDPR,
isFetchingPersonEntitiesForSAR = _ref2$GDPR.isFetchingPersonEntitiesForSAR,
invalidPersonEntitiesForSar = _ref2$GDPR.invalidPersonEntitiesForSar,
personEntitiesForSar = _ref2$GDPR.personEntitiesForSar,
selectedPersonEntityForSar = _ref2$GDPR.selectedPersonEntityForSar,
currentSAR = _ref2$GDPR.currentSAR;
var id = _ref3.match.params.id;
return {
isFetching: isFetchingPersonEntitiesForSAR,
invalid: invalidPersonEntitiesForSar,
entities: personEntitiesForSar,
hasSelected: !!selectedPersonEntityForSar,
selectedEntity: selectedPersonEntityForSar,
currentSARId: id,
currentSAR: currentSAR
};
};
var GdprNewSubjectAccessFindEntity_mapDispatchToProps = function mapDispatchToProps(dispatch) {
return {
onPersonSelected: function onPersonSelected(entity) {
if (!entity) {
dispatch(Object(actions["k" /* clearSelectionPersonForSar */])());
} else {
dispatch(Object(actions["Nb" /* updatePersonForSar */])(entity));
}
},
prev: function prev() {
return dispatch(Object(lib["push"])('/gdpr/new'));
},
next: function next(sar, guid) {
dispatch(Object(actions["xb" /* shouldSaveSarCreateReportAndNavigate */])(sar, "/gdpr/edit/validate/".concat(sar.Id), guid));
},
fetchPersons: function fetchPersons(searchArgs) {
return dispatch(Object(actions["eb" /* shouldFetchPerson */])(searchArgs));
} // onShouldSubscribe: (guid, sarId) => shouldSubscribeForUserData(guid, sarId),
};
};
/* harmony default export */ var pages_GdprNewSubjectAccessFindEntity = __webpack_exports__["default"] = (Object(es["connect"])(mapToStateProps, GdprNewSubjectAccessFindEntity_mapDispatchToProps)(GdprNewSubjectAccessFindEntityEnhanced));
/***/ })
}]);