cluedin-widget
Version:
1,452 lines (1,164 loc) • 53.7 kB
JavaScript
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[0],{
/***/ 1894:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getSchemaFilterByIntegration; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getSchema; });
/* harmony import */ var _babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var _babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var uxi_Img__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(111);
/* harmony import */ var uxi_Img__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(uxi_Img__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var uxi_Layout__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(26);
/* harmony import */ var uxi_Layout__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(uxi_Layout__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _integration_config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(64);
var onlyPersonallyIdentifying = function onlyPersonallyIdentifying(prop) {
return prop.PersonallyIdentifying;
};
var piiFilteredByIntegration = {}; // eslint-disable-next-line import/prefer-default-export
var getSchemaFilterByIntegration = function getSchemaFilterByIntegration() {
var schema = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var integration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
if (piiFilteredByIntegration[integration.name]) {
return piiFilteredByIntegration[integration.name];
}
var result = schema.filter(function (prop) {
var theProvider;
if (prop.Key.indexOf('.') > -1) {
var currentIntegration = prop.Key.split('.')[0];
theProvider = Object(_integration_config__WEBPACK_IMPORTED_MODULE_4__[/* getIntegrationByName */ "b"])(currentIntegration);
}
if (!theProvider || !theProvider.name) {
return false;
}
return theProvider && integration && theProvider.name === integration.name;
}).filter(onlyPersonallyIdentifying).map(function (prop) {
var theProvider;
if (prop.Key.indexOf('.') > -1) {
var currentIntegration = prop.Key.split('.')[0];
theProvider = Object(_integration_config__WEBPACK_IMPORTED_MODULE_4__[/* getIntegrationByName */ "b"])(currentIntegration);
}
var postFix = theProvider ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(uxi_Layout__WEBPACK_IMPORTED_MODULE_3__["Flex"], null, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(uxi_Img__WEBPACK_IMPORTED_MODULE_2__["Img"], {
width: 16,
src: theProvider.icon,
alt: prop.Name
}), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("small", {
style: {
marginLeft: '6px'
}
}, prop.Key.slice(0, prop.Key.indexOf('.')))) : null;
return _babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_0___default()({}, prop, {
postFix: postFix,
integration: theProvider,
DisplayName: prop.Key
});
});
if (result && result.length > 0) {
piiFilteredByIntegration[integration.name] = result;
}
return result;
};
var getSchema = function getSchema() {
var schema = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var result = schema.filter(onlyPersonallyIdentifying).map(function (prop) {
var theProvider;
if (prop.Key.indexOf('.') > -1) {
var currentIntegration = prop.Key.split('.')[0];
theProvider = Object(_integration_config__WEBPACK_IMPORTED_MODULE_4__[/* getIntegrationByName */ "b"])(currentIntegration);
}
var postFix = theProvider ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(uxi_Layout__WEBPACK_IMPORTED_MODULE_3__["Flex"], null, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(uxi_Img__WEBPACK_IMPORTED_MODULE_2__["Img"], {
width: 16,
src: theProvider.icon,
alt: prop.Name
}), react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("small", {
style: {
marginLeft: '6px'
}
}, prop.Key.slice(0, prop.Key.indexOf('.')))) : null;
return _babel_runtime_helpers_objectSpread__WEBPACK_IMPORTED_MODULE_0___default()({}, prop, {
postFix: postFix,
integration: theProvider,
DisplayName: prop.Key
});
}); // if (result && result.length > 0) {
// piiFilteredByIntegration[integration.name] = result;
// }
return result;
};
/***/ }),
/***/ 1895:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var uxi_AutoComplete__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1896);
/* harmony import */ var uxi_AutoComplete__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(uxi_AutoComplete__WEBPACK_IMPORTED_MODULE_1__);
var UniqueIdentifiersSelect = function UniqueIdentifiersSelect(_ref) {
var personalIdentifers = _ref.personalIdentifers,
_onChange = _ref.onChange;
return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(uxi_AutoComplete__WEBPACK_IMPORTED_MODULE_1___default.a, {
filterOn: "DisplayName",
onChange: function onChange(_ref2) {
var originalValue = _ref2.originalValue;
if (_onChange) {
var hasValidValueToSubmit = originalValue && originalValue.Key !== undefined;
if (hasValidValueToSubmit) {
_onChange(originalValue.Key);
}
}
},
items: personalIdentifers
});
};
/* harmony default export */ __webpack_exports__["a"] = (UniqueIdentifiersSelect);
/***/ }),
/***/ 1896:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = undefined;
var _AutoComplete = __webpack_require__(1897);
var _AutoComplete2 = _interopRequireDefault(_AutoComplete);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = _AutoComplete2.default; /** @deprecated */
/***/ }),
/***/ 1897:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
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; }; }();
var _templateObject = _taggedTemplateLiteral(['\n font-weight: 600;\n background: #fff9d6;\n'], ['\n font-weight: 600;\n background: #fff9d6;\n']),
_templateObject2 = _taggedTemplateLiteral(['\n white-space: nowrap;\n'], ['\n white-space: nowrap;\n']);
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
var _debounce = __webpack_require__(265);
var _debounce2 = _interopRequireDefault(_debounce);
var _styledComponents = __webpack_require__(5);
var _styledComponents2 = _interopRequireDefault(_styledComponents);
var _Input = __webpack_require__(35);
var _Menu = __webpack_require__(91);
var _Layout = __webpack_require__(26);
var _ThemeComponent2 = __webpack_require__(168);
var _ThemeComponent3 = _interopRequireDefault(_ThemeComponent2);
var _utils = __webpack_require__(1898);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
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; }
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; }
function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
var Highlighted = _styledComponents2.default.span(_templateObject);
var AutoCompleteStyle = {
boxShadow: 'rgba(0, 0, 0, 0.16) 0px 2px 5px 0px, rgba(0, 0, 0, 0.12) 0px 2px 10px 0px',
popover: {
position: 'absolute',
top: '30px',
maxHeight: '60vh',
overflowY: 'scroll',
border: '1px solid #ccc',
left: 0,
right: 0,
margin: 0,
padding: 0,
zIndex: 2,
background: 'white'
}
};
var MatchesPart = _styledComponents2.default.span(_templateObject2);
var getHighlightedNameComplex = function getHighlightedNameComplex(item, valueForInputParam, postFix /* , filterOn */) {
// const nameToRenderParam = item[filterOn];
var matchesNode = (item.matchesResults || []).map(function (_ref) {
var matches = _ref.matches,
string = _ref.string;
return matches ? _react2.default.createElement(
MatchesPart,
{ 'data-matches': true },
_react2.default.createElement(Highlighted, { dangerouslySetInnerHTML: { __html: '' + string.replace(/\s/, ' ') } })
) : _react2.default.createElement(MatchesPart, {
'data-not-matches': true,
dangerouslySetInnerHTML: { __html: '' + string.replace(/\s/, ' ') }
});
});
return _react2.default.createElement(
_Layout.Flex,
{ style: { justifyContent: 'flex-start', width: '100%' } },
_react2.default.createElement(
'div',
{ style: { overflow: 'hidden', textOverflow: 'ellipsis' } },
matchesNode
),
_react2.default.createElement(
'span',
{ 'data-postFix': true, style: { margin: '0 6px', marginLeft: 'auto' } },
postFix
)
);
};
// const recomposeStringValueReducer = (accu = '', { string }) => {
// if (!accu || typeof accu !== 'string') { accu = string; }
// return (accu += string);
// };
/* eslint-disable react/jsx-no-bind */
/** @deprecated */
var AutoComplete = function (_ThemeComponent) {
_inherits(AutoComplete, _ThemeComponent);
function AutoComplete(props) {
_classCallCheck(this, AutoComplete);
var _this = _possibleConstructorReturn(this, (AutoComplete.__proto__ || Object.getPrototypeOf(AutoComplete)).call(this, props));
_this.state = {
index: -1,
value: props.defaultValue,
originalItems: _this.props.items.map(function (x, i) {
return _extends({}, x, {
originalIndex: i
});
}) || [],
filteredSet: []
};
_this.onQuerychangeDebounced = (0, _debounce2.default)(_this.onQuerychange, 100);
_this.onChangeWrap = _this.onChangeWrap.bind(_this);
return _this;
}
_createClass(AutoComplete, [{
key: 'componentDidMount',
value: function componentDidMount() {
document.addEventListener('click', this.clickHandlerForDom.bind(this), true);
}
}, {
key: 'componentWillReceiveProps',
value: function componentWillReceiveProps(nextProps) {
if (this.props.items.length !== nextProps.items.length) {
this.setState({
originalItems: this.props.items.map(function (x, i) {
return _extends({}, x, {
originalIndex: i
});
}) || []
});
}
if (this.props.defaultValue !== nextProps.defaultValue) {
this.setState({
valueForInput: nextProps.defaultValue
});
}
}
}, {
key: 'componentWillUnmount',
value: function componentWillUnmount() {
document.removeEventListener('click', this.clickHandlerForDom);
}
}, {
key: 'onItemClick',
value: function onItemClick(index) {
var filteredSet = this.state.filteredSet;
var originalValue = filteredSet[index];
this.onEnter(originalValue.matchesResults
// eslint-disable-next-line no-return-assign
.reduce(function () {
var accu = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var _ref2 = arguments[1];
var string = _ref2.string;
return accu += string;
}, ''), // eslint-disable-line no-param-reassign
originalValue);
this.setState({ index: -1, escape: true });
}
}, {
key: 'clickHandlerForDom',
value: function clickHandlerForDom(e) {
var domNode = this.node;
if (!domNode || !domNode.contains(e.target)) {
this.setState({ index: -1, escape: true });
}
}
}, {
key: 'onQuerychange',
value: function onQuerychange(value) {
var onchange = this.props.onchange;
this.setState({
valueForInput: value
});
var consumerNotifierCallback = function consumerNotifierCallback() {
return onchange && onchange(value);
};
this.asyncUpdateFilteredSet(consumerNotifierCallback);
}
}, {
key: 'onChangeWrap',
value: function onChangeWrap(e) {
var value = e.target.value;
this.setState({ valueForInput: value });
this.onQuerychangeDebounced(value);
}
}, {
key: 'handleMouseEnterList',
value: function handleMouseEnterList() {
this.setState({ index: -1 });
}
}, {
key: 'handleMouseLeaveList',
value: function handleMouseLeaveList() {
this.setState({ index: -1 });
}
}, {
key: 'handleMouseEnterListItem',
value: function handleMouseEnterListItem() {
this.setState({ index: -1 });
}
}, {
key: 'handleMouseLeaveListItem',
value: function handleMouseLeaveListItem() {
this.setState({ index: -1 });
}
}, {
key: 'onEnter',
value: function onEnter(value, originalValue) {
// const { filteredSet, index } = this.state;
var onChange = this.props.onChange;
// const originalValue = filteredSet[index];
this.setState({
valueForInput: value
});
if (onChange) {
onChange({
value: value,
originalValue: originalValue
});
}
}
}, {
key: 'updateSearchValue',
value: function updateSearchValue(e) {
// const { items } = this.props;
var _state = this.state,
index = _state.index,
valueForInput = _state.valueForInput,
filteredSet = _state.filteredSet;
if (e.key === 'Enter') {
if (index < 0) {
this.onEnter(valueForInput || '', true);
} else {
this.onEnter(filteredSet[index].matchesResults
// eslint-disable-next-line no-return-assign
.reduce(function () {
var accu = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var _ref3 = arguments[1];
var string = _ref3.string;
return accu += string;
}, ''), // eslint-disable-line no-param-reassign
filteredSet[index]);
}
this.setState({ index: -1, escape: true });
} else if (e.key === 'Escape') {
this.setState({ index: -1, escape: true });
} else if (e.key === 'ArrowDown') {
if (this.state.index === filteredSet.length) {
this.setState({ index: 0, escape: false });
} else {
this.setState({ index: this.state.index + 1, escape: false });
}
} else if (e.key === 'ArrowUp') {
if (this.state.index >= 0) {
this.setState({ index: this.state.index - 1, escape: false });
}
} else {
this.setState({ index: -1, escape: false });
}
}
}, {
key: 'asyncUpdateFilteredSet',
value: function asyncUpdateFilteredSet(consumerNotifierCallback) {
var _this2 = this;
// eslint-disable-line class-methods-use-this
var _props = this.props,
items = _props.items,
defaultValue = _props.defaultValue,
filterOn = _props.filterOn,
strict = _props.strict;
var valueForInput = this.state.valueForInput;
if (valueForInput && valueForInput.length >= 2) {
new Promise(function (resolve /* , reject */) {
var filterFnStrict = function filterFnStrict(item) {
return item[filterOn].toLowerCase().replace(/\s/g, '').indexOf((valueForInput || defaultValue || '').toLowerCase().replace(/\s/g, '')) > -1;
};
var matchMapper = function matchMapper(item) {
return _extends({}, item, {
matchesResults: (0, _utils.getMatchesResult)(item[filterOn], valueForInput || defaultValue || '')
});
};
var filterFnPermissive = function filterFnPermissive(mappedMatch) {
var isMatch = mappedMatch.matchesResults.some(function (x) {
return x.matches;
});
return isMatch;
};
var mappedUNfilteredSet = items && items.map(matchMapper) || [];
var filteredSet = mappedUNfilteredSet.filter(strict ? filterFnStrict : filterFnPermissive);
var filteredSetWithScore = (0, _utils.getFilteredSetWithScore)(filteredSet);
var finalSortedResult = filteredSetWithScore.sort(function (a, b) {
if (a.scrore > b.scrore) {
return -1;
}
if (a.scrore < b.scrore) {
return 1;
}
return 0;
});
resolve(finalSortedResult);
}).then(function (filteredSet) {
return _this2.setState({
filteredSet: filteredSet
}, consumerNotifierCallback);
});
}
}
}, {
key: 'render',
value: function render() {
var _this3 = this;
var _props2 = this.props,
placeholder = _props2.placeholder,
filterOn = _props2.filterOn,
resultLimit = _props2.resultLimit;
var _state2 = this.state,
index = _state2.index,
escape = _state2.escape,
valueForInput = _state2.valueForInput,
filteredSet = _state2.filteredSet;
var shadowStyle = _extends({}, filteredSet.length && filteredSet.length > 0 ? { boxShadow: AutoCompleteStyle.boxShadow } : {}, filteredSet.length && filteredSet.length > 0 ? { boxShadow: AutoCompleteStyle.boxShadow } : {});
var autoComplete = !escape && valueForInput && filteredSet.length ? _react2.default.createElement(
_Menu.VerticalMenu,
{
style: _extends({}, AutoCompleteStyle.popover, shadowStyle),
ref: function ref(_ref4) {
_this3.autoComplete = _ref4;
},
onMouseOver: this.handleMouseEnterList.bind(this),
onMouseOut: this.handleMouseLeaveList.bind(this)
},
filteredSet
// more than a hundreds search results is not
// actually helpfull anyway, neither is it reasonnable to ask that to the dom
// let's cut it at 10
.slice(0, resultLimit).map(function (item, currentIndex) {
var postFix = item.postFix;
// const nameToRender = item[filterOn] || item.name;
var nameToRenderWithHightlight = getHighlightedNameComplex(item, valueForInput, postFix, filterOn);
// const selectedClass = '';
var liStyle = {};
if (index === currentIndex) {
liStyle = Object.assign({}, {
color: _this3.context.uxiTheme.palette.accent.main,
background: 'rgb(233,245,244)'
});
} else {
liStyle = {};
}
return _react2.default.createElement(
_Menu.MenuItem,
{
key: currentIndex,
onClick: _this3.onItemClick.bind(_this3, currentIndex),
style: liStyle,
onMouseOver: _this3.handleMouseEnterListItem.bind(_this3),
onMouseOut: _this3.handleMouseLeaveListItem.bind(_this3)
},
nameToRenderWithHightlight
);
}),
filteredSet.length > 20 ? _react2.default.createElement(
_Menu.MenuItem,
{
key: 'not-currentIndex',
onClick: function onClick() {}
// onMouseOver={this.handleMouseEnterListItem.bind(this)}
// onMouseOut={this.handleMouseLeaveListItem.bind(this)}
, style: {
textAlign: 'center', opacity: 0.8
}
},
'Some results were omitted, try a more specific query'
) : null,
valueForInput && filteredSet.length === 0 ? _react2.default.createElement(
_Menu.MenuItem,
{
key: 'not-currentIndex-no-results',
onClick: function onClick() {},
style: {
textAlign: 'center', opacity: 0.8
}
},
'no match found'
) : null
) : null;
return _react2.default.createElement(
'div',
{
style: { position: 'relative' },
ref: function ref(node) {
_this3.node = node;
},
onKeyUp: this.updateSearchValue.bind(this)
},
_react2.default.createElement(_Input.TextField, {
style: { zIndex: 3 },
placeholder: placeholder,
ref: function ref(_ref5) {
_this3.currentInput = _ref5;
},
onChange: this.onChangeWrap,
value: this.state.valueForInput || '',
type: 'text'
}),
autoComplete
);
}
}]);
return AutoComplete;
}(_ThemeComponent3.default);
AutoComplete.defaultProps = {
items: [],
placeholder: 'Type to search...',
strict: false,
resultLimit: 20
};
exports.default = AutoComplete;
/***/ }),
/***/ 1898:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
exports.getFilteredSetWithScore = getFilteredSetWithScore;
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
/*
Q: fernd
A:
[
{ matches: true, string: 'Fern' }, // !! watch out for the caps
{ matches: false, string: ' ' },
{ matches: true, string: 'D' }, // !! watch out for the caps
{ matches: false, string: 'awson' },
]
*/
var getMatchesResult = exports.getMatchesResult = function getMatchesResult(source, target) {
// shorcut in case of perfect match
if (source.toLowerCase().indexOf(target.toLowerCase()) === 0) {
// ! perfect match, from the start worth a 100
return [{ matches: true, string: source.slice(0, target.length) }, { matches: false, string: source.slice(target.length) }];
}
// shorcut in case of perfect match
if (source.toLowerCase().indexOf(target.toLowerCase()) > -1) {
// ! perfect match, from the middle worth a plenty
var idx = source.toLowerCase().indexOf(target.toLowerCase());
return [{ matches: false, string: source.slice(0, idx) }, { matches: true, string: source.slice(idx, idx + target.length) }, { matches: false, string: source.slice(idx + target.length) }];
}
var result = [];
// this can probalby be refactored into a nice looking map + reducer:
var i = 0;
var j = 0;
while (i < source.length) {
var sourceChar = source[i];
var targetChar = target[j];
var currentRunMatchObj = {
matches: false,
string: sourceChar
};
if (sourceChar.toLowerCase() === (targetChar && targetChar.toLowerCase())) {
currentRunMatchObj.matches = true;
result.push(currentRunMatchObj);
j++; // eslint-disable-line no-plusplus
} else {
result.push(currentRunMatchObj);
currentRunMatchObj = {
matches: false,
string: sourceChar
};
}
i++; // eslint-disable-line no-plusplus
}
var initialAccu = {
isCurrentlyMatching: result[0].matches,
result: [{
matches: result[0].matches,
string: result[0].string
}]
};
var finalResult = result.reduce(function (accu, x, i) {
// eslint-disable-line no-shadow
if (i === 0) {
return accu;
}
// const currentItem = accu.result[accu.result.length - 1];
if (x.matches === accu.isCurrentlyMatching) {
if (i === 0) {
accu.result[0] = x.string; // eslint-disable-line no-param-reassign
} else {
// eslint-disable-next-line no-param-reassign
accu.result[accu.result.length - 1].string += x.string;
}
return accu;
}
return {
isCurrentlyMatching: x.matches,
result: [].concat(_toConsumableArray(accu.result), [_extends({}, x)])
};
}, initialAccu);
return finalResult.result;
};
var addScore = function addScore(accu, _ref) {
var string = _ref.string,
matches = _ref.matches;
if (matches) {
return string.length > accu ? string.length : accu;
}
return accu;
};
function getFilteredSetWithScore(filteredSet) {
var filteredSetWithScore = filteredSet.map(function (x) {
return _extends({}, x, {
scrore: x.matchesResults.reduce(addScore, 0)
});
});
return filteredSetWithScore;
}
/***/ }),
/***/ 1900:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _react = __webpack_require__(0);
var _react2 = _interopRequireDefault(_react);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
*
* a client forms wrap a component in form that is
* preventd from event reloading the page
*/
var wrapInClientFormHOC = function wrapInClientFormHOC(Component) {
return function (props) {
return _react2.default.createElement(
'form',
{
onKeyDown: function onKeyDown(e) {
if (e.key === 'Enter') {
e.preventDefault();e.stopPropagation();
}
}
/**
* TODO: what is this for? is it used? the onSubmit is marked by react as a unrocognized attr.
*/
, onSumbit: function onSumbit(e) {
e.preventDefault();e.stopPropagation();
}
},
_react2.default.createElement(Component, props)
);
};
};
exports.default = wrapInClientFormHOC;
/***/ }),
/***/ 1928:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// 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/react/index.js
var react = __webpack_require__(0);
var react_default = /*#__PURE__*/__webpack_require__.n(react);
// EXTERNAL MODULE: ./node_modules/react-redux/es/index.js + 18 modules
var es = __webpack_require__(8);
// EXTERNAL MODULE: ./node_modules/recompose/es/Recompose.js
var Recompose = __webpack_require__(6);
// EXTERNAL MODULE: ./core/modules/core/components/composites/PageLoader.js
var PageLoader = __webpack_require__(38);
// EXTERNAL MODULE: ./node_modules/react-intl/lib/index.es.js
var index_es = __webpack_require__(4);
// EXTERNAL MODULE: ./node_modules/uxi/Input/index.js
var Input = __webpack_require__(35);
// 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/List/index.js
var List = __webpack_require__(258);
// 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/Tile/index.js
var Tile = __webpack_require__(380);
// CONCATENATED MODULE: ./core/modules/consent/components/composites/processor/ProcessorItem.js
var truncateDetail = function truncateDetail() {
var detail = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
return detail.length > 132 ? "".concat(detail.slice(0, 128), " (...)") : detail;
};
var ProcessorItem_ProcessorItem = function ProcessorItem(_ref) {
var integration = _ref.integration,
isSelected = _ref.isSelected,
addProcessor = _ref.addProcessor,
removeProcessor = _ref.removeProcessor;
var name = integration.config ? integration.config.name : integration.Name;
var providerUrl = integration.config ? integration.config.icon : '';
return react_default.a.createElement(Tile["TileDetail"], {
style: {
maxHeight: '148px',
overflow: 'hidden'
},
title: name,
imageUrl: providerUrl,
extra: react_default.a.createElement("div", {
style: {
textAlign: 'right'
}
}, react_default.a.createElement(Button_default.a, {
type: "primary",
message: isSelected ? react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-consent-remove"
}) : react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-consent-Select"
}),
onClick: function onClick() {
if (!isSelected) {
addProcessor(integration);
} else {
removeProcessor(integration);
}
}
}))
}, react_default.a.createElement("div", null, truncateDetail(integration.Details)));
};
/* harmony default export */ var processor_ProcessorItem = (ProcessorItem_ProcessorItem);
// CONCATENATED MODULE: ./core/modules/consent/components/composites/processor/ProcessorChooser.js
var ProcessorChooser_ProcessorChooser =
/*#__PURE__*/
function (_Component) {
inherits_default()(ProcessorChooser, _Component);
function ProcessorChooser(props) {
var _this;
classCallCheck_default()(this, ProcessorChooser);
_this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(ProcessorChooser).call(this, props));
_this.state = {
query: ''
};
return _this;
}
createClass_default()(ProcessorChooser, [{
key: "getFilteredIntegration",
value: function getFilteredIntegration() {
var integrations = this.props.integrations;
var query = this.state.query;
if (!query) {
return integrations;
}
return integrations.filter(function (c) {
return c.Name.match(new RegExp(query, 'i'));
});
}
}, {
key: "render",
value: function render() {
var _this2 = this;
var _this$props = this.props,
navigate = _this$props.navigate,
addProcessor = _this$props.addProcessor,
integrationSelected = _this$props.integrationSelected,
_removeProcessor = _this$props.removeProcessor,
contentStyle = _this$props.contentStyle;
var filteredIntegration = this.getFilteredIntegration();
var hasIntegration = filteredIntegration && filteredIntegration.length > 0;
return react_default.a.createElement("div", null, react_default.a.createElement("div", {
style: {
padding: '15px 15px 0 15px'
}
}, react_default.a.createElement(Input["SearchForm"], {
fullWidth: true,
placeholder: "Search for processors (google analytics, hubspots...)",
onChange: function onChange(e, value) {
_this2.setState({
query: value
});
}
})), react_default.a.createElement("div", {
style: {
padding: '15px'
}
}, react_default.a.createElement(Button["Button"], {
message: react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-consent-requestNewProcessor"
}),
onClick: function onClick() {
navigate('new');
}
})), hasIntegration && react_default.a.createElement("div", {
style: contentStyle || {}
}, react_default.a.createElement(List["TileList"], null, filteredIntegration.map(function (integration, i) {
var isSelected = integrationSelected.find(function (iSelected) {
return iSelected.Id === integration.Id;
});
var selectedIndex = -1;
if (isSelected) {
selectedIndex = integrationSelected.indexOf(isSelected);
}
return react_default.a.createElement(processor_ProcessorItem, {
key: integration.Id || i,
isSelected: isSelected,
addProcessor: addProcessor,
integration: integration,
removeProcessor: function removeProcessor() {
_removeProcessor(selectedIndex);
}
});
}))), !hasIntegration && react_default.a.createElement(Alert_default.a, null, react_default.a.createElement("div", {
style: {
paddingBottom: '15px'
}
}, "No result found."), react_default.a.createElement("div", {
style: {
paddingBottom: '15px'
}
}, react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-consent-requestDataProcessorExplanation"
})), react_default.a.createElement("div", {
style: {
paddingBottom: '15px'
}
}, react_default.a.createElement(Button["Button"], {
message: react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-consent-requestNewProcessor"
}),
onClick: function onClick() {
navigate('new');
}
}))));
}
}]);
return ProcessorChooser;
}(react["Component"]);
/* harmony default export */ var processor_ProcessorChooser = (ProcessorChooser_ProcessorChooser);
// EXTERNAL MODULE: ./core/modules/integration/actions.js + 1 modules
var actions = __webpack_require__(55);
// 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/uxi/Text/index.js
var Text = __webpack_require__(36);
var Text_default = /*#__PURE__*/__webpack_require__.n(Text);
// EXTERNAL MODULE: ./core/modules/core/components/composites/form/FormDecoratorComponent.js
var FormDecoratorComponent = __webpack_require__(293);
// CONCATENATED MODULE: ./core/modules/consent/components/composites/processor/ProcessorRequestNew.js
function _templateObject() {
var data = taggedTemplateLiteral_default()(["\n padding-bottom:15px;\n"]);
_templateObject = function _templateObject() {
return data;
};
return data;
}
var Padder = styled_components_browser_es["default"].div(_templateObject());
var ProcessorRequestNew_ProcessorRequestNew = function ProcessorRequestNew(_ref) {
var navigate = _ref.navigate,
setProcessor = _ref.setProcessor,
processor = _ref.processor;
return react_default.a.createElement("div", {
style: {
padding: '15px'
}
}, react_default.a.createElement(Padder, null, react_default.a.createElement(Button["ButtonLink"], {
onClick: function onClick() {
return navigate();
},
text: "\u2190 Back"
})), react_default.a.createElement(Padder, null, react_default.a.createElement(Text_default.a, {
type: "heading"
}, react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-consent-requestNewProcessor"
}))), react_default.a.createElement(Padder, null, react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-consent-requestNewProcessorExplanation"
})), react_default.a.createElement(FormDecoratorComponent["a" /* default */], {
label: react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-consent-processorName"
}),
helpText: react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-consent-processorNameExplanation"
})
}, react_default.a.createElement(Input["TextField"], {
onChange: function onChange(e, value) {
setProcessor(function () {
return value;
});
},
placeholder: "Mixpanel, Google Analytics..."
})), react_default.a.createElement(Button["Button"], {
type: "primary",
link: "mailto:support@cluedin.com?subject=request-for-new-data-processor&body=Please add the data processor: ".concat(processor, "."),
message: react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-consent-requestNewProcessor"
})
}));
};
/* harmony default export */ var processor_ProcessorRequestNew = (Object(Recompose["b" /* compose */])(Object(Recompose["g" /* withState */])('processor', 'setProcessor', ''))(ProcessorRequestNew_ProcessorRequestNew));
// CONCATENATED MODULE: ./core/modules/consent/components/containers/ProcessorRequestNewContainer.js
/* harmony default export */ var ProcessorRequestNewContainer = (processor_ProcessorRequestNew);
// CONCATENATED MODULE: ./core/modules/consent/components/containers/ProcessorChooserContainer.js
var ProcessorChooserContainer_ProcessorSelectorContainer =
/*#__PURE__*/
function (_Component) {
inherits_default()(ProcessorSelectorContainer, _Component);
function ProcessorSelectorContainer(props) {
var _this;
classCallCheck_default()(this, ProcessorSelectorContainer);
_this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(ProcessorSelectorContainer).call(this, props));
_this.state = {
navigation: ''
};
return _this;
}
createClass_default()(ProcessorSelectorContainer, [{
key: "setNavigationHandler",
value: function setNavigationHandler(value) {
this.setState({
navigation: value
});
}
}, {
key: "getContent",
value: function getContent() {
var _this$props = this.props,
addProcessor = _this$props.addProcessor,
removeProcessor = _this$props.removeProcessor,
integrationSelected = _this$props.integrationSelected,
integrations = _this$props.integrations,
contentStyle = _this$props.contentStyle;
var navigation = this.state.navigation;
if (navigation === 'new') {
return react_default.a.createElement(ProcessorRequestNewContainer, {
navigate: this.setNavigationHandler.bind(this)
});
}
return react_default.a.createElement(processor_ProcessorChooser, {
contentStyle: contentStyle,
integrations: integrations,
navigate: this.setNavigationHandler.bind(this),
addProcessor: addProcessor,
removeProcessor: removeProcessor,
integrationSelected: integrationSelected
});
}
}, {
key: "render",
value: function render() {
var content = this.getContent();
return react_default.a.createElement("div", null, content);
}
}]);
return ProcessorSelectorContainer;
}(react["Component"]);
var EnhancedProcessorChooser = Object(Recompose["b" /* compose */])(Object(Recompose["c" /* lifecycle */])({
componentDidMount: function componentDidMount() {
var getIntegration = this.props.getIntegration;
getIntegration();
}
}), Object(Recompose["a" /* branch */])(function (_ref) {
var isFetching = _ref.isFetching;
return isFetching;
}, Object(Recompose["e" /* renderComponent */])(PageLoader["a" /* default */])))(ProcessorChooserContainer_ProcessorSelectorContainer);
var mapToStatProps = function mapToStatProps(state, _ref2) {
var integrationSelected = _ref2.integrationSelected;
var _state$integration = state.integration,
allIntegrations = _state$integration.allIntegrations,
isFetchingAllIntegrations = _state$integration.isFetchingAllIntegrations;
return {
integrations: allIntegrations,
isFetching: isFetchingAllIntegrations,
integrationSelected: integrationSelected
};
};
var ProcessorChooserContainer_mapDispatchToProps = function mapDispatchToProps(dispatch) {
return {
getIntegration: function getIntegration() {
dispatch(Object(actions["n" /* shouldFetchAllIntegrations */])());
}
};
};
/* harmony default export */ var ProcessorChooserContainer = __webpack_exports__["a"] = (Object(es["connect"])(mapToStatProps, ProcessorChooserContainer_mapDispatchToProps)(EnhancedProcessorChooser));
/***/ }),
/***/ 1930:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(0);
var react_default = /*#__PURE__*/__webpack_require__.n(react);
// EXTERNAL MODULE: ./node_modules/react-intl/lib/index.es.js
var index_es = __webpack_require__(4);
// 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/redux-form/es/index.js
var es = __webpack_require__(66);
// 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/Indicator/index.js
var Indicator = __webpack_require__(43);
// EXTERNAL MODULE: ./core/modules/core/components/composites/form/FormDecorator.js
var FormDecorator = __webpack_require__(308);
// EXTERNAL MODULE: ./core/modules/core/components/composites/form/FormWrapper.js + 1 modules
var FormWrapper = __webpack_require__(559);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/toConsumableArray.js
var toConsumableArray = __webpack_require__(17);
var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);
// 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/uxi/Icons/index.js
var Icons = __webpack_require__(9);
// EXTERNAL MODULE: ./node_modules/react-redux/es/index.js + 18 modules
var react_redux_es = __webpack_require__(8);
// EXTERNAL MODULE: ./core/modules/consent/components/containers/schemaSelector.js
var schemaSelector = __webpack_require__(1894);
// EXTERNAL MODULE: ./core/modules/consent/components/composites/uniqueIdentifier/UniqueIdentifiersSelect.js
var UniqueIdentifiersSelect = __webpack_require__(1895);
// CONCATENATED MODULE: ./core/modules/consent/components/containers/UniqueIdentifiersByIntegrationSelectContainer.js
var UniqueIdentifiersByIntegrationSelectContainer_mapStateToProps = function mapStateToProps(_ref, _ref2) {
var schema = _ref.entity.schema;
var integration = _ref2.integration;
return {
personalIdentifers: schema && Object(schemaSelector["b" /* getSchemaFilterByIntegration */])(schema, integration)
};
};
/* harmony default export */ var UniqueIdentifiersByIntegrationSelectContainer = (Object(react_redux_es["connect"])(UniqueIdentifiersByIntegrationSelectContainer_mapStateToProps)(UniqueIdentifiersSelect["a" /* default */]));
// CONCATENATED MODULE: ./core/modules/consent/components/composites/uniqueIdentifier/UniqueIdentifierListField.js
var UniqueIdentifierListField_UniqueIdentifierListField =
/*#__PURE__*/
function (_Component) {
inherits_default()(UniqueIdentifierListField, _Component);
function UniqueIdentifierListField(props) {
var _this;
classCallCheck_default()(this, UniqueIdentifierListField);
_this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(UniqueIdentifierListField).call(this, props));
_this.state = {
currentKeys: []
};
return _this;
}
createClass_default()(UniqueIdentifierListField, [{
key: "onChangeKey",
value: function onChangeKey(value, index) {
var onChange = this.props.onChange;
var currentKeys = this.state.currentKeys;
var currentValue = currentKeys[index];
currentValue.value = value;
this.setState({
currentKeys: toConsumableArray_default()(currentKeys)
});
if (onChange) {
onChange(currentKeys);
}
}
}, {
key: "removeKey",
value: function removeKey(index) {
var currentKeys = this.state.currentKeys;
currentKeys.splice(index, 1);
this.setState({
currentKeys: toConsumableArray_default()(currentKeys)
});
}
}, {
key: "addUniqueIdentifierHandler",
value: function addUniqueIdentifierHandler() {
var currentKeys = this.state.currentKeys;
this.setState({
currentKeys: toConsumableArray_default()(currentKeys).concat([{
value: ''
}])
});
}
}, {
key: "render",
value: function render() {
var _this2 = this;
var integration = this.props.integration;
var currentKeys = this.state.currentKeys;
return react_default.a.createElement("div", null, (!currentKeys || currentKeys.length === 0) && react_default.a.createElement("div", {
style: {
border: '1px solid #ccc',
padding: '15px',
textAlign: 'center'
}
}, react_default.a.createElement("div", {
style: {
paddingBottom: '15px'
}
}, "No unique identifier added"), react_default.a.createElement(Button["ButtonLink"], {
onClick: function onClick() {
_this2.addUniqueIdentifierHandler();
},
icon: react_default.a.createElement(Icons["Add"], null),
text: "Add Unique Identifier"
})), currentKeys && currentKeys.length > 0 && react_default.a.createElement("div", null, currentKeys.map(function (k, index) {
return react_default.a.createElement("div", {
style: {
display: 'flex'
}
}, react_default.a.createElement("div", {
style: {
flex: 1
}
}, react_default.a.createElement(UniqueIdentifiersByIntegrationSelectContainer, {
key: k,
integration: integration,
onChange: function onChange(value) {
_this2.onChangeKey(value, index);
}
})), react_default.a.createElement("div", {
style: {
width: '50px'
}
}, react_default.a.createElement("div", {
style: {
paddingTop: 'px',
marginLeft: '15px',
marginRight: '15px'
}
}, react_default.a.createElement(Button["ButtonLink"], {
onClick: function onClick() {
_this2.removeKey(index);
},
icon: react_default.a.createElement(Icons["Delete"],