UNPKG

cluedin-widget

Version:
1,452 lines (1,164 loc) • 53.7 kB
(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/, '&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; } /***/ }), /***/ 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"],