cluedin-widget
Version:
1,428 lines (1,145 loc) • 66.5 kB
JavaScript
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[23],{
/***/ 1893:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
/* harmony import */ var _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_taggedTemplateLiteral__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 styled_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5);
/* harmony import */ var uxi_Motion__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(102);
/* harmony import */ var uxi_Motion__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(uxi_Motion__WEBPACK_IMPORTED_MODULE_3__);
function _templateObject() {
var data = _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_0___default()(["\n width: 100%;\n text-align: center;\n display: flex;\n justify-content: center;\n"]);
_templateObject = function _templateObject() {
return data;
};
return data;
}
var CenteredLoaderUI = styled_components__WEBPACK_IMPORTED_MODULE_2__["default"].div(_templateObject());
var CenteredLoader = function CenteredLoader() {
return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(CenteredLoaderUI, null, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(uxi_Motion__WEBPACK_IMPORTED_MODULE_3__["Loader"], null));
};
/* harmony default export */ __webpack_exports__["a"] = (CenteredLoader);
/***/ }),
/***/ 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;
}
/***/ }),
/***/ 2320:
/***/ (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/prop-types/index.js
var prop_types = __webpack_require__(1);
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
// 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/GDPR/components/composites/CenteredLoader.js
var CenteredLoader = __webpack_require__(1893);
// EXTERNAL MODULE: ./core/modules/GDPR/actions.js
var actions = __webpack_require__(23);
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js
var defineProperty = __webpack_require__(3);
var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty);
// 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/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-intl/lib/index.es.js
var index_es = __webpack_require__(4);
// EXTERNAL MODULE: ./node_modules/uxi/Widget/index.js
var Widget = __webpack_require__(40);
// 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/Button/index.js
var Button = __webpack_require__(18);
var Button_default = /*#__PURE__*/__webpack_require__.n(Button);
// EXTERNAL MODULE: ./node_modules/uxi/Layout/Flex.js
var Flex = __webpack_require__(54);
var Flex_default = /*#__PURE__*/__webpack_require__.n(Flex);
// EXTERNAL MODULE: ./node_modules/uxi/Dialog/index.js
var Dialog = __webpack_require__(68);
var Dialog_default = /*#__PURE__*/__webpack_require__.n(Dialog);
// 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/Classic/index.js
var Classic = __webpack_require__(161);
// 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/UniqueIdentifiersSelectContainer.js
var UniqueIdentifiersSelectContainer_mapStateToProps = function mapStateToProps(_ref) {
var schema = _ref.entity.schema;
return {
personalIdentifers: schema && Object(schemaSelector["a" /* getSchema */])(schema)
};
};
/* harmony default export */ var UniqueIdentifiersSelectContainer = (Object(es["connect"])(UniqueIdentifiersSelectContainer_mapStateToProps)(UniqueIdentifiersSelect["a" /* default */]));
// CONCATENATED MODULE: ./core/modules/GDPR/components/composites/dialogs/NewGdprIdentifierDialog.js
// import MiniLoader from 'uxi/Motion/MiniLoader';
// eslint-disable-next-line import/no-named-as-default
var NewGdprIdentifierDialog_NewGdprIdentifierDialog =
/*#__PURE__*/
function (_Component) {
inherits_default()(NewGdprIdentifierDialog, _Component);
function NewGdprIdentifierDialog(props) {
var _this;
classCallCheck_default()(this, NewGdprIdentifierDialog);
_this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(NewGdprIdentifierDialog).call(this, props));
_this.state = {
identifier: '',
isInvalidIdentifier: null
};
_this.handleValueChange = _this.handleValueChange.bind(assertThisInitialized_default()(assertThisInitialized_default()(_this)));
return _this;
}
createClass_default()(NewGdprIdentifierDialog, [{
key: "handleValueChange",
value: function handleValueChange(value, originalValue) {
this.setState({
identifier: originalValue && originalValue.Key || value || ''
});
}
}, {
key: "addIdentifierHandler",
value: function addIdentifierHandler() {
// const { schema } = this.props;
var identifier = this.state.identifier; // find schema item
this.props.onAddIdentifier(identifier);
}
}, {
key: "render",
value: function render() {
var _this$props = this.props,
show = _this$props.show,
onClose = _this$props.onClose,
isUpdatingIdentifier = _this$props.isUpdatingIdentifier,
isInvalid = _this$props.isInvalid,
schema = _this$props.schema;
var _this$state = this.state,
isInvalidIdentifier = _this$state.isInvalidIdentifier,
identifier = _this$state.identifier;
if (!show) {
return null;
}
var alertContent = react_default.a.createElement(Alert_default.a, {
type: "danger"
}, react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-gdpr-error"
}));
var validationContent = isInvalidIdentifier && react_default.a.createElement(Alert_default.a, {
type: "danger"
}, react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-gdpr-identifierRequired"
}));
return react_default.a.createElement(Dialog_default.a, {
style: {
maxWidth: '940px'
},
onClose: onClose,
show: show
}, react_default.a.createElement(Dialog["DialogHeader"], {
title: react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-gdpr-addItenfierTItle"
})
}), react_default.a.createElement("div", {
style: {
minHeight: '200px',
padding: '15px'
}
}, isInvalid && alertContent, validationContent, react_default.a.createElement("h4", {
style: {
marginBottom: '8px'
}
}, react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-gdpr-newIdentifierName"
})), react_default.a.createElement(Flex_default.a, {
style: {
justifyContent: 'flex-start'
}
}, "Selected identifier:", react_default.a.createElement("strong", {
style: {
paddingLeft: '6px'
}
}, identifier)), react_default.a.createElement(Classic["P"], {
style: {
marginBottom: '8px'
}
}, react_default.a.createElement(UniqueIdentifiersSelectContainer, {
schema: schema,
onChange: this.handleValueChange
}))), react_default.a.createElement(Dialog["DialogFooter"], null, react_default.a.createElement(Button_default.a, {
loading: isUpdatingIdentifier,
disabled: !identifier || isUpdatingIdentifier,
onClick: this.addIdentifierHandler.bind(this),
type: "primary",
message: react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-gdpr-addIdentifier"
})
})));
}
}]);
return NewGdprIdentifierDialog;
}(react["Component"]);
NewGdprIdentifierDialog_NewGdprIdentifierDialog.displayName = 'NewGdprIdentifierDialog';
NewGdprIdentifierDialog_NewGdprIdentifierDialog.propTypes = {
show: prop_types_default.a.bool,
onClose: prop_types_default.a.func,
isUpdatingIdentifier: prop_types_default.a.bool,
isInvalid: prop_types_default.a.bool,
onAddIdentifier: prop_types_default.a.func
};
NewGdprIdentifierDialog_NewGdprIdentifierDialog.defaultProps = {
show: false,
onClose: function onClose() {},
isUpdatingIdentifier: false,
isInvalid: false,
onAddIdentifier: function onAddIdentifier() {}
};
/* harmony default export */ var dialogs_NewGdprIdentifierDialog = (NewGdprIdentifierDialog_NewGdprIdentifierDialog);
// EXTERNAL MODULE: ./node_modules/uxi/Icons/index.js
var Icons = __webpack_require__(9);
// EXTERNAL MODULE: ./node_modules/uxi/Table/index.js
var Table = __webpack_require__(30);
// EXTERNAL MODULE: ./node_modules/uxi/Input/index.js
var Input = __webpack_require__(35);
// CONCATENATED MODULE: ./core/modules/GDPR/components/composites/lists/GdprIdenfitiferRowInlineEdit.jsx
var GdprIdenfitiferRowInlineEdit_GdprIdenfitiferRowInlineEdit =
/*#__PURE__*/
function (_Component) {
inherits_default()(GdprIdenfitiferRowInlineEdit, _Component);
function GdprIdenfitiferRowInlineEdit(props) {
var _this;
classCallCheck_default()(this, GdprIdenfitiferRowInlineEdit);
_this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(GdprIdenfitiferRowInlineEdit).call(this, props));
_this.state = {
editable: false,
identifierValue: ''
};
return _this;
}
createClass_default()(GdprIdenfitiferRowInlineEdit, [{
key: "onChangeIdentifierValueHandler",
value: function onChangeIdentifierValueHandler(value) {
this.setState({
identifierValue: value
});
}
}, {
key: "edit",
value: function edit() {
this.setState({
editable: true
});
}
}, {
key: "resetEditing",
value: function resetEditing() {
this.setState({
editable: false
});
}
}, {
key: "handleSaveEditedIdentifier",
value: function handleSaveEditedIdentifier() {
var _this$props = this.props,
updateIdentifier = _this$props.updateIdentifier,
identifier = _this$props.identifier;
var identifierValue = this.state.identifierValue;
if (updateIdentifier) {
updateIdentifier(identifierValue, identifier);
}
this.setState({
editable: false
});
}
}, {
key: "render",
value: function render() {
var _this2 = this;
var identifier = this.props.identifier;
var editable = this.state.editable;
if (editable) {
return react_default.a.createElement(Input["InputGroup"], null, react_default.a.createElement(Input["TextField"], {
onKeyPress: function onKeyPress(ev) {
if (ev.key === 'Enter') {
_this2.handleSaveEditedIdentifier();
}
},
onChange: function onChange(e, v) {
_this2.onChangeIdentifierValueHandler(v);
},
placeholder: identifier,
defaultValue: identifier
}), react_default.a.createElement(Button_default.a, {
style: {
marginLeft: '5px'
},
type: "primary",
text: react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-gdpr-save"
}),
onClick: function onClick() {
_this2.handleSaveEditedIdentifier();
}
}), react_default.a.createElement(Button_default.a, {
style: {
marginLeft: '5px'
},
text: react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-gdpr-cancel"
}),
onClick: function onClick() {
_this2.resetEditing();
}
}));
}
return react_default.a.createElement("div", {
style: {
display: 'flex',
cursor: 'pointer',
aligItems: 'center'
}
}, react_default.a.createElement(Icons["Pencil"], {
size: "16",
style: {
marginRight: '15px'
},
onClick: function onClick() {
return _this2.edit();
}
}), react_default.a.createElement("span", null, identifier));
}
}]);
return GdprIdenfitiferRowInlineEdit;
}(react["Component"]);
GdprIdenfitiferRowInlineEdit_GdprIdenfitiferRowInlineEdit.displayName = 'GdprIdenfitiferRowInlineEdit';
GdprIdenfitiferRowInlineEdit_GdprIdenfitiferRowInlineEdit.propTypes = {
identifier: prop_types_default.a.string,
updateIdentifier: prop_types_default.a.func
};
GdprIdenfitiferRowInlineEdit_GdprIdenfitiferRowInlineEdit.defaultProps = {
identifier: '',
updateIdentifier: function updateIdentifier() {}
};
/* harmony default export */ var lists_GdprIdenfitiferRowInlineEdit = (GdprIdenfitiferRowInlineEdit_GdprIdenfitiferRowInlineEdit);
// CONCATENATED MODULE: ./core/modules/GDPR/components/composites/lists/GdprIdentifierList.jsx
var GdprIdentifierList_GdprIdentifierList = function GdprIdentifierList(_ref) {
var _ref$identifiers = _ref.identifiers,
identifiers = _ref$identifiers === void 0 ? [] : _ref$identifiers,
onIdentifierSelection = _ref.onIdentifierSelection,
updateIdentifier = _ref.updateIdentifier;
return react_default.a.createElement("div", null, react_default.a.createElement(Table["Table"], {
onChange: onIdentifierSelection,
selectable: true
}, 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(index_es["FormattedMessage"], {
id: "module-gdpr-identifierName"
})))), react_default.a.createElement(Table["TableBody"], null, identifiers.map(function (identifier) {
return react_default.a.createElement(Table["TableRow"], {
value: identifier
}, react_default.a.createElement(Table["TableRowColumn"], null, react_default.a.createElement(lists_GdprIdenfitiferRowInlineEdit, {
updateIdentifier: updateIdentifier,
identifier: identifier
})));
}))), (!identifiers || identifiers.length === 0) && react_default.a.createElement("div", {
style: {
textAlign: 'center',
padding: '15px'
}
}, react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-gdpr-noIdentifierName"
})));
};
GdprIdentifierList_GdprIdentifierList.displayName = 'GdprIdentifierList';
GdprIdentifierList_GdprIdentifierList.propTypes = {
identifiers: prop_types_default.a.array,
onIdentifierSelection: prop_types_default.a.func,
updateIdentifier: prop_types_default.a.func
};
GdprIdentifierList_GdprIdentifierList.defaultProps = {
identifiers: [],
onIdentifierSelection: function onIdentifierSelection() {},
updateIdentifier: function updateIdentifier() {}
};
/* harmony default export */ var lists_GdprIdentifierList = (GdprIdentifierList_GdprIdentifierList);
// CONCATENATED MODULE: ./core/modules/GDPR/components/composites/GdprSettingsIdentifiers.js
var GdprSettingsIdentifiers_GdprSettingsIdentifiers =
/*#__PURE__*/
function (_Component) {
inherits_default()(GdprSettingsIdentifiers, _Component);
function GdprSettingsIdentifiers(props) {
var _this;
classCallCheck_default()(this, GdprSettingsIdentifiers);
_this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(GdprSettingsIdentifiers).call(this, props));
_this.state = {
selection: null
};
return _this;
}
createClass_default()(GdprSettingsIdentifiers, [{
key: "onIdentifierSelectionHandler",
value: function onIdentifierSelectionHandler(e, index, value) {
this.setState({
selection: value[0]
});
}
}, {
key: "render",
value: function render() {
var _this$props = this.props,
configuration = _this$props.configuration,
configurationUpdateError = _this$props.configurationUpdateError,
onAddIdentifier = _this$props.onAddIdentifier,
onDeleteIdentifier = _this$props.onDeleteIdentifier,
updateIdentifier = _this$props.updateIdentifier;
var selection = this.state.selection;
var errorContent = configurationUpdateError && react_default.a.createElement(Alert["Alert"], {
type: "danger"
}, react_default.a.createElement(index_es["FormattedHTMLMessage"], {
id: "module-gdpr-html-error"
}));
return react_default.a.createElement("div", {
style: {
padding: '15px'
}
}, errorContent, react_default.a.createElement("div", {
style: {
marginLeft: '15px'
}
}, react_default.a.createElement(Button_default.a, {
disabled: !selection,
type: "danger",
onClick: function onClick() {
onDeleteIdentifier(selection);
},
icon: react_default.a.createElement(Icons["Delete"], null)
}), react_default.a.createElement(Button_default.a, {
style: {
marginLeft: '15px '
},
onClick: onAddIdentifier,
icon: react_default.a.createElement(Icons["Add"], null),
message: react_default.a.createElement(index_es["FormattedMessage"], {
id: "module-gdpr-addIdentifier"
})
})), react_default.a.createElement("div", null, react_default.a.createElement(lists_GdprIdentifierList, {
identifiers: Object.keys(configuration.Identifiers || {}),
updateIdentifier: updateIdentifier,
onIdentifierSelection: this.onIdentifierSelectionHandler.bind(this)
})));
}
}]);
return GdprSettingsIdentifiers;
}(react["Component"]);
GdprSettingsIdentifiers_GdprSettingsIdentifiers.displayName = '';
GdprSettingsIdentifiers_GdprSettingsIdentifiers.propTypes = {
configuration: prop_types_default.a.object,
configurationUpdateError: prop_types_default.a.any,
onAddIdentifier: prop_types_default.a.func,
onDeleteIdentifier: prop_types_default.a.func,
updateIdentifier: prop_types_default.a.func
};
GdprSettingsIdentifiers_GdprSettingsIdentifiers.defaultProps = {
configuration: {},
configurationUpdateError: false,
onAddIdentifier: function onAddIdentifier() {},
onDeleteIdentifier: function onDeleteIdentifier() {},
updateIdentifier: function updateIdentifier() {}
};
/* harmony default export */ var composites_GdprSettingsIdentifiers = (GdprSettingsIdentifiers_GdprSettingsIdentifiers);
// EXTERNAL MODULE: ./core/modules/help/actions.js
var help_actions = __webpack_require__(134);
// 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/rc-tooltip/es/index.js + 36 modules
var rc_tooltip_es = __webpack_require__(56);
// EXTERNAL MODULE: ./node_modules/styled-components/dist/styled-components.browser.es.js
var styled_components_browser_es = __webpack_require__(5);
// CONCATENATED MODULE: ./core/modules/core/components/composites/help/TextWithHelp.js
function _templateObject4() {
var data = taggedTemplateLiteral_default()(["\n width: 25px;\n margin: 0 8px 0 16px;\n display: flex;\n align-items: center;\n text-align: right;\n cursor: pointer;\n &:hover {\n opacity: 0.8;\n }\n"]);
_templateObject4 = function _templateObject4() {
return data;
};
return data;
}
function _templateObject3() {
var data = taggedTemplateLiteral_default()(["\n flex-grow: 1;\n display: flex;\n align-items: center;\n"]);
_templateObject3 = function _templateObject3() {
return data;
};
return data;
}
function _templateObject2() {
var data = taggedTemplateLiteral_default()(["\n display: flex;\n"]);
_templateObject2 = function _templateObject2() {
return data;
};
return data;
}
function _templateObject() {
var data = taggedTemplateLiteral_default()(["\n display: flex;\n"]);
_templateObject = function _templateObject() {
return data;
};
return data;
}
var HelpIconWrapper = styled_components_browser_es["default"].div(_templateObject());
var HelpTextWrapper = styled_components_browser_es["default"].div(_templateObject2());
var HelpText = styled_components_browser_es["default"].div(_templateObject3());
var HelpIconContainer = styled_components_browser_es["default"].div(_templateObject4());
var TextWithHelp_HelpIcon = function HelpIcon(_ref) {
var onClick = _ref.onClick,
text = _ref.text;
return react_default.a.createElement(HelpIconWrapper, null, react_default.a.createElement(HelpTextWrapper, null, react_default.a.createElement(HelpText, null, text), react_default.a.createElement(HelpIconContaine