UNPKG

cluedin-widget

Version:
1,428 lines (1,145 loc) • 66.5 kB
(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/, '&nbsp;') } }) ) : _react2.default.createElement(MatchesPart, { 'data-not-matches': true, dangerouslySetInnerHTML: { __html: '' + string.replace(/\s/, '&nbsp;') } }); }); 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: '&nbsp' }, { 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