1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.toggleSelection = undefined;
|
7 |
|
8 | var _toPairs2 = require('ramda/src/toPairs');
|
9 |
|
10 | var _toPairs3 = _interopRequireDefault(_toPairs2);
|
11 |
|
12 | var _map2 = require('ramda/src/map');
|
13 |
|
14 | var _map3 = _interopRequireDefault(_map2);
|
15 |
|
16 | var _chain2 = require('ramda/src/chain');
|
17 |
|
18 | var _chain3 = _interopRequireDefault(_chain2);
|
19 |
|
20 | var _isEmpty2 = require('ramda/src/isEmpty');
|
21 |
|
22 | var _isEmpty3 = _interopRequireDefault(_isEmpty2);
|
23 |
|
24 | var _isNil2 = require('ramda/src/isNil');
|
25 |
|
26 | var _isNil3 = _interopRequireDefault(_isNil2);
|
27 |
|
28 | var _filter2 = require('ramda/src/filter');
|
29 |
|
30 | var _filter3 = _interopRequireDefault(_filter2);
|
31 |
|
32 | var _sortBy2 = require('ramda/src/sortBy');
|
33 |
|
34 | var _sortBy3 = _interopRequireDefault(_sortBy2);
|
35 |
|
36 | var _groupBy2 = require('ramda/src/groupBy');
|
37 |
|
38 | var _groupBy3 = _interopRequireDefault(_groupBy2);
|
39 |
|
40 | var _compose2 = require('ramda/src/compose');
|
41 |
|
42 | var _compose3 = _interopRequireDefault(_compose2);
|
43 |
|
44 | var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
|
45 |
|
46 | 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; }; }();
|
47 |
|
48 | var _templateObject = _taggedTemplateLiteral([''], ['']),
|
49 | _templateObject2 = _taggedTemplateLiteral(['\n display: flex;\n align-items: center;\n height: 40px;\n'], ['\n display: flex;\n align-items: center;\n height: 40px;\n']),
|
50 | _templateObject3 = _taggedTemplateLiteral(['\n margin-left: 5px;\n font-weight: bold;\n font-size: 1.1em;\n user-select: none;\n cursor: pointer;\n color: #444;\n'], ['\n margin-left: 5px;\n font-weight: bold;\n font-size: 1.1em;\n user-select: none;\n cursor: pointer;\n color: #444;\n']),
|
51 | _templateObject4 = _taggedTemplateLiteral(['\n color: steelblue;\n'], ['\n color: steelblue;\n']);
|
52 |
|
53 | var _react = require('react');
|
54 |
|
55 | var _react2 = _interopRequireDefault(_react);
|
56 |
|
57 | var _styledComponents = require('styled-components');
|
58 |
|
59 | var _styledComponents2 = _interopRequireDefault(_styledComponents);
|
60 |
|
61 | var _semanticUiReact = require('semantic-ui-react');
|
62 |
|
63 | var _reactToggle = require('react-toggle');
|
64 |
|
65 | var _reactToggle2 = _interopRequireDefault(_reactToggle);
|
66 |
|
67 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
68 |
|
69 | 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); } }
|
70 |
|
71 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
72 |
|
73 | 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; }
|
74 |
|
75 | 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; }
|
76 |
|
77 | function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
78 |
|
79 | var Criteria = _styledComponents2.default.div(_templateObject);
|
80 |
|
81 | var ToggleRow = (0, _styledComponents2.default)(_semanticUiReact.List.Content)(_templateObject2);
|
82 | var ToggleLabel = _styledComponents2.default.label(_templateObject3);
|
83 | var GroupTitle = _styledComponents2.default.h3(_templateObject4);
|
84 |
|
85 | var RoleSelection = function (_React$Component) {
|
86 | _inherits(RoleSelection, _React$Component);
|
87 |
|
88 | function RoleSelection() {
|
89 | var _ref;
|
90 |
|
91 | var _temp, _this, _ret;
|
92 |
|
93 | _classCallCheck(this, RoleSelection);
|
94 |
|
95 | for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
96 | args[_key] = arguments[_key];
|
97 | }
|
98 |
|
99 | return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = RoleSelection.__proto__ || Object.getPrototypeOf(RoleSelection)).call.apply(_ref, [this].concat(args))), _this), _this.state = {}, _this.filterChanged = function (_, _ref2) {
|
100 | var value = _ref2.value;
|
101 | return _this.setState({ fuzzyFilter: value });
|
102 | }, _temp), _possibleConstructorReturn(_this, _ret);
|
103 | }
|
104 |
|
105 | _createClass(RoleSelection, [{
|
106 | key: 'render',
|
107 | value: function render() {
|
108 | var _props = this.props,
|
109 | roles = _props.roles,
|
110 | className = _props.className,
|
111 | style = _props.style,
|
112 | toggleSelection = _props.toggleSelection,
|
113 | selection = _props.selection;
|
114 | var fuzzyFilter = this.state.fuzzyFilter;
|
115 |
|
116 | var prepareData = (0, _compose3.default)((0, _groupBy3.default)(function (a) {
|
117 | return a.displayGroup;
|
118 | }), (0, _sortBy3.default)(function (a) {
|
119 | return a.displayGroup + '||' + a.displayName;
|
120 | }), (0, _filter3.default)(function (r) {
|
121 | return (0, _isNil3.default)(fuzzyFilter) || (0, _isEmpty3.default)(fuzzyFilter) || r.role.toLowerCase().includes(fuzzyFilter.toLowerCase()) || r.displayName.toLowerCase().includes(fuzzyFilter.toLowerCase) || r.displayGroup.toLowerCase().includes(fuzzyFilter.toLowerCase);
|
122 | }));
|
123 | var data = prepareData(roles);
|
124 |
|
125 | var renderRole = function renderRole(_ref3) {
|
126 | var role = _ref3.role,
|
127 | displayName = _ref3.displayName;
|
128 | return _react2.default.createElement(
|
129 | _semanticUiReact.List.Item,
|
130 | { key: role },
|
131 | _react2.default.createElement(
|
132 | ToggleRow,
|
133 | null,
|
134 | _react2.default.createElement(_reactToggle2.default, {
|
135 | id: role + '-selected',
|
136 | checked: selection.includes(role),
|
137 | onChange: function onChange(e) {
|
138 | return toggleSelection(role);
|
139 | }
|
140 | }),
|
141 | _react2.default.createElement(
|
142 | ToggleLabel,
|
143 | { htmlFor: role + '-selected' },
|
144 | displayName
|
145 | )
|
146 | )
|
147 | );
|
148 | };
|
149 |
|
150 |
|
151 | var renderGroups = (0, _compose3.default)((0, _chain3.default)(function (d) {
|
152 | return d;
|
153 | }), (0, _map3.default)(function (_ref4) {
|
154 | var _ref5 = _slicedToArray(_ref4, 2),
|
155 | group = _ref5[0],
|
156 | roles = _ref5[1];
|
157 |
|
158 | return [_react2.default.createElement(
|
159 | GroupTitle,
|
160 | { key: group },
|
161 | group
|
162 | ), _react2.default.createElement(
|
163 | _semanticUiReact.List,
|
164 | { key: group + '-list', divided: true, relaxed: true },
|
165 | roles.map(renderRole)
|
166 | )];
|
167 | }), _toPairs3.default);
|
168 |
|
169 | return _react2.default.createElement(
|
170 | 'div',
|
171 | { className: className, style: style },
|
172 | _react2.default.createElement(
|
173 | Criteria,
|
174 | null,
|
175 | _react2.default.createElement(_semanticUiReact.Input, {
|
176 | fluid: true,
|
177 | value: fuzzyFilter,
|
178 | onChange: this.filterChanged,
|
179 | placeholder: 'Filter Roles...',
|
180 | icon: 'filter'
|
181 | })
|
182 | ),
|
183 | renderGroups(data)
|
184 | );
|
185 | }
|
186 | }]);
|
187 |
|
188 | return RoleSelection;
|
189 | }(_react2.default.Component);
|
190 |
|
191 | var toggleSelection = exports.toggleSelection = function toggleSelection(role) {
|
192 | return function (selected) {
|
193 | return selected.includes(role) ? (0, _filter3.default)(function (r) {
|
194 | return r !== role;
|
195 | }, selected) : [].concat(_toConsumableArray(selected), [role]);
|
196 | };
|
197 | };
|
198 | exports.default = RoleSelection;
|
199 |
|
\ | No newline at end of file |