@desynova-digital/components 8.5.2 → 8.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/atoms/checkbox/checkbox.js +20 -3
- package/atoms/checkbox/checkbox.story.js +35 -0
- package/atoms/icon/icon.js +2 -2
- package/atoms/icon/icons.json +47 -4
- package/atoms/inputText/inputText.js +20 -7
- package/atoms/inputText/inputText.story.js +5 -3
- package/molecules/filter/filter.js +240 -158
- package/molecules/table/table.js +15 -3
- package/package.json +2 -2
|
@@ -31,6 +31,10 @@ var _switch = require("../switch");
|
|
|
31
31
|
|
|
32
32
|
var _switch2 = _interopRequireDefault(_switch);
|
|
33
33
|
|
|
34
|
+
var _icon = require("../icon");
|
|
35
|
+
|
|
36
|
+
var _icon2 = _interopRequireDefault(_icon);
|
|
37
|
+
|
|
34
38
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
35
39
|
|
|
36
40
|
function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
@@ -139,7 +143,14 @@ var Checkbox = function Checkbox(props) {
|
|
|
139
143
|
console.log(value);
|
|
140
144
|
}
|
|
141
145
|
})
|
|
142
|
-
) : null
|
|
146
|
+
) : null,
|
|
147
|
+
props.type === 'icon' && _react2.default.createElement(_icon2.default, {
|
|
148
|
+
name: props.value,
|
|
149
|
+
value: props.value,
|
|
150
|
+
width: props.width,
|
|
151
|
+
height: props.height,
|
|
152
|
+
fillRule: props.fillRule,
|
|
153
|
+
color: props.checked ? "#00CEC6" : "#AFB2BA" })
|
|
143
154
|
);
|
|
144
155
|
};
|
|
145
156
|
|
|
@@ -156,7 +167,10 @@ var CheckboxGroup = function CheckboxGroup(props) {
|
|
|
156
167
|
readOnly: props.readOnly || child.props.readOnly,
|
|
157
168
|
onChange: child.props.isDisabled ? props.onChange : function () {},
|
|
158
169
|
theme: props.theme,
|
|
159
|
-
type: props.type
|
|
170
|
+
type: props.type,
|
|
171
|
+
width: props.width || 16,
|
|
172
|
+
height: props.height || 24,
|
|
173
|
+
fillRule: props.fillRule || ''
|
|
160
174
|
}) : null;
|
|
161
175
|
})
|
|
162
176
|
);
|
|
@@ -173,7 +187,10 @@ Checkbox.propTypes = {
|
|
|
173
187
|
readOnly: _propTypes2.default.bool,
|
|
174
188
|
/** Callback function which is called when the user selects an option */
|
|
175
189
|
onChange: _propTypes2.default.func,
|
|
176
|
-
type: _propTypes2.default.oneOf(["default", "label", "switch"])
|
|
190
|
+
type: _propTypes2.default.oneOf(["default", "label", "switch"]),
|
|
191
|
+
width: _propTypes2.default.number,
|
|
192
|
+
height: _propTypes2.default.number,
|
|
193
|
+
fillRule: _propTypes2.default.string
|
|
177
194
|
};
|
|
178
195
|
|
|
179
196
|
Checkbox.defaultProps = {
|
|
@@ -208,6 +208,41 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
208
208
|
{ value: "four" },
|
|
209
209
|
"Option 4"
|
|
210
210
|
)
|
|
211
|
+
),
|
|
212
|
+
_react2.default.createElement(
|
|
213
|
+
_components.Checkbox.Group,
|
|
214
|
+
{
|
|
215
|
+
theme: "dark",
|
|
216
|
+
name: "example5",
|
|
217
|
+
onChange: function onChange(e) {
|
|
218
|
+
console.log(e.target.value, e.target.checked);
|
|
219
|
+
},
|
|
220
|
+
align: "horizontal",
|
|
221
|
+
selected: ["text_aligned_left"],
|
|
222
|
+
type: "icon"
|
|
223
|
+
},
|
|
224
|
+
_react2.default.createElement(_components.Checkbox, { value: "text_aligned_left" }),
|
|
225
|
+
_react2.default.createElement(_components.Checkbox, { value: "text_aligned_center" }),
|
|
226
|
+
_react2.default.createElement(_components.Checkbox, { value: "text_aligned_right" })
|
|
227
|
+
),
|
|
228
|
+
_react2.default.createElement(
|
|
229
|
+
_components.Checkbox.Group,
|
|
230
|
+
{
|
|
231
|
+
theme: "dark",
|
|
232
|
+
name: "example6",
|
|
233
|
+
onChange: function onChange(e) {
|
|
234
|
+
console.log(e.target.value, e.target.checked);
|
|
235
|
+
},
|
|
236
|
+
align: "horizontal",
|
|
237
|
+
selected: ["text_position_bottom"],
|
|
238
|
+
type: "icon",
|
|
239
|
+
width: 24,
|
|
240
|
+
height: 16,
|
|
241
|
+
fillRule: "evenodd"
|
|
242
|
+
},
|
|
243
|
+
_react2.default.createElement(_components.Checkbox, { value: "text_position_top" }),
|
|
244
|
+
_react2.default.createElement(_components.Checkbox, { value: "text_position_center" }),
|
|
245
|
+
_react2.default.createElement(_components.Checkbox, { value: "text_position_bottom" })
|
|
211
246
|
)
|
|
212
247
|
);
|
|
213
248
|
});
|
package/atoms/icon/icon.js
CHANGED
|
@@ -40,7 +40,7 @@ var Icon = function Icon(props) {
|
|
|
40
40
|
{
|
|
41
41
|
width: props.width || icon.width,
|
|
42
42
|
height: props.height || icon.height,
|
|
43
|
-
viewBox: '0 0 ' + icon.width + ' ' + icon.height,
|
|
43
|
+
viewBox: '0 0 ' + (props.width || icon.width) + ' ' + (props.height || icon.height),
|
|
44
44
|
color: props.color
|
|
45
45
|
},
|
|
46
46
|
icon.paths.map(function (path, index) {
|
|
@@ -51,7 +51,7 @@ var Icon = function Icon(props) {
|
|
|
51
51
|
fill: props.color,
|
|
52
52
|
stroke: props.stroke,
|
|
53
53
|
strokeWidth: icon.strokeWidth,
|
|
54
|
-
fillRule:
|
|
54
|
+
fillRule: props.fillRule
|
|
55
55
|
});
|
|
56
56
|
})
|
|
57
57
|
)
|
package/atoms/icon/icons.json
CHANGED
|
@@ -328,10 +328,10 @@
|
|
|
328
328
|
},
|
|
329
329
|
"delete": {
|
|
330
330
|
"paths": [
|
|
331
|
-
"
|
|
331
|
+
"M0.888889 14.2222C0.888889 15.2 1.68889 16 2.66667 16H9.77778C10.7556 16 11.5556 15.2 11.5556 14.2222V3.55556H0.888889V14.2222ZM12.4444 0.888889H9.33333L8.44445 0H4L3.11111 0.888889H0V2.66667H12.4444V0.888889Z"
|
|
332
332
|
],
|
|
333
|
-
"width":
|
|
334
|
-
"height":
|
|
333
|
+
"width": 13,
|
|
334
|
+
"height": 16
|
|
335
335
|
},
|
|
336
336
|
"volume": {
|
|
337
337
|
"paths": [
|
|
@@ -561,7 +561,7 @@
|
|
|
561
561
|
},
|
|
562
562
|
"subtitle": {
|
|
563
563
|
"paths": [
|
|
564
|
-
"
|
|
564
|
+
"M10.8 0H1.2C0.54 0 0 0.54 0 1.2V8.4C0 9.06 0.54 9.6 1.2 9.6H10.8C11.46 9.6 12 9.06 12 8.4V1.2C12 0.54 11.46 0 10.8 0ZM1.2 4.8H3.6V6H1.2V4.8ZM1.2 8.4H7.2V7.2H1.2V8.4ZM10.8 8.4H8.4V7.2H10.8V8.4ZM4.8 6H10.8V4.8H4.8V6Z"
|
|
565
565
|
],
|
|
566
566
|
"width": 20,
|
|
567
567
|
"height": 16
|
|
@@ -609,6 +609,13 @@
|
|
|
609
609
|
"width": 13,
|
|
610
610
|
"height": 13
|
|
611
611
|
},
|
|
612
|
+
"chat": {
|
|
613
|
+
"paths":[
|
|
614
|
+
"M7.8 1.2V5.4H1.902L1.2 6.102V1.2H7.8ZM8.4 0H0.6C0.27 0 0 0.27 0 0.6V9L2.4 6.6H8.4C8.73 6.6 9 6.33 9 6V0.6C9 0.27 8.73 0 8.4 0ZM11.4 2.4H10.2V7.8H2.4V9C2.4 9.33 2.67 9.6 3 9.6H9.6L12 12V3C12 2.67 11.73 2.4 11.4 2.4Z"
|
|
615
|
+
],
|
|
616
|
+
"width": 12,
|
|
617
|
+
"height": 12
|
|
618
|
+
},
|
|
612
619
|
"cut": {
|
|
613
620
|
"paths": [
|
|
614
621
|
"M7.368 6.28L12.742.946a.74.74 0 0 1 1.042 0 .728.728 0 0 1 0 1.034l-8.297 8.236c.259.436.408.944.408 1.486 0 1.616-1.32 2.926-2.948 2.926C1.32 14.628 0 13.318 0 11.702s1.32-2.925 2.947-2.925a2.95 2.95 0 0 1 1.498.405l1.881-1.868-1.881-1.868a2.95 2.95 0 0 1-1.498.405C1.32 5.851 0 4.541 0 2.926 0 1.31 1.32 0 2.947 0c1.628 0 2.948 1.31 2.948 2.926 0 .542-.15 1.05-.408 1.486L7.368 6.28zM4.015 3.934c.252-.263.406-.618.406-1.008 0-.808-.66-1.463-1.474-1.463s-1.473.655-1.473 1.463c0 .807.66 1.462 1.473 1.462a1.475 1.475 0 0 0 1.068-.454zm-.052 6.708a1.475 1.475 0 0 0-1.016-.403c-.814 0-1.473.655-1.473 1.463s.66 1.463 1.473 1.463c.814 0 1.474-.655 1.474-1.463a1.452 1.452 0 0 0-.458-1.06zm4.705-.997a.728.728 0 0 1-.001-1.034.74.74 0 0 1 1.042-.001l4.075 4.037a.728.728 0 0 1 0 1.035.74.74 0 0 1-1.041 0L8.668 9.646z"
|
|
@@ -1104,6 +1111,42 @@
|
|
|
1104
1111
|
],
|
|
1105
1112
|
"width": 16,
|
|
1106
1113
|
"height": 18
|
|
1114
|
+
},
|
|
1115
|
+
"text_aligned_right": {
|
|
1116
|
+
"paths":[
|
|
1117
|
+
"M0 1.77778V0H16V1.77778H0ZM5.33333 5.33333H16V3.55556H5.33333V5.33333ZM16 8.88889H0V7.11111H16V8.88889ZM5.33333 12.4444H16V10.6667H5.33333V12.4444ZM0 16H16V14.2222H0V16Z"
|
|
1118
|
+
],
|
|
1119
|
+
"width": 16,
|
|
1120
|
+
"height": 16
|
|
1121
|
+
},
|
|
1122
|
+
"text_aligned_center": {
|
|
1123
|
+
"paths":[
|
|
1124
|
+
"M0 1.77778V0H16V1.77778H0ZM3.55556 3.55556V5.33333H12.4444V3.55556H3.55556ZM16 8.88889H0V7.11111H16V8.88889ZM3.55556 10.6667V12.4444H12.4444V10.6667H3.55556ZM0 16H16V14.2222H0V16Z"
|
|
1125
|
+
],
|
|
1126
|
+
"width": 16,
|
|
1127
|
+
"height": 16
|
|
1128
|
+
},
|
|
1129
|
+
"text_aligned_left": {
|
|
1130
|
+
"paths":[
|
|
1131
|
+
"M0 1.77778V0H16V1.77778H0ZM10.6667 3.55556H0V5.33333H10.6667V3.55556ZM10.6667 10.6667H0V12.4444H10.6667V10.6667ZM16 8.88889H0V7.11111H16V8.88889ZM0 16H16V14.2222H0V16Z"
|
|
1132
|
+
],
|
|
1133
|
+
"width": 16,
|
|
1134
|
+
"height": 16
|
|
1135
|
+
},
|
|
1136
|
+
"text_position_top": {
|
|
1137
|
+
"paths": ["M0 0H24V16H0V0ZM2 2H22V14H2V2ZM4 5.77778V4H20V5.77778H4Z"],
|
|
1138
|
+
"width": 16,
|
|
1139
|
+
"height": 16
|
|
1140
|
+
},
|
|
1141
|
+
"text_position_center": {
|
|
1142
|
+
"paths": ["M0 0H24V16H0V0ZM2 2H22V14H2V2ZM4 8.77778V7H20V8.77778H4Z"],
|
|
1143
|
+
"width": 16,
|
|
1144
|
+
"height": 16
|
|
1145
|
+
},
|
|
1146
|
+
"text_position_bottom": {
|
|
1147
|
+
"paths": ["M0 0H24V16H0V0ZM2 2H22V14H2V2ZM4 11.7778V10H20V11.7778H4Z"],
|
|
1148
|
+
"width": 16,
|
|
1149
|
+
"height": 16
|
|
1107
1150
|
}
|
|
1108
1151
|
}
|
|
1109
1152
|
}
|
|
@@ -11,7 +11,8 @@ var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = [
|
|
|
11
11
|
var _templateObject = _taggedTemplateLiteral(['\n background: transparent;\n font-family: \'SFUIText-Medium\';\n position: relative;\n width: 100%;\n display: block;\n\n > label {\n color: #999999;\n font-size: 14px;\n\n font-family: inherit;\n position: absolute;\n pointer-events: none;\n left: 0px;\n top: 5px;\n transition: 0.2s ease all;\n -moz-transition: 0.2s ease all;\n -webkit-transition: 0.2s ease all;\n }\n > input:focus ~ label {\n top: -10px;\n left: 0px;\n font-size: 10px;\n color: #999999;\n text-transform: capitalize;\n }\n\n > input ~ label.floaton {\n top: -5px;\n left: 0px;\n font-size: 10px;\n color: #999999;\n text-transform: capitalize;\n }\n'], ['\n background: transparent;\n font-family: \'SFUIText-Medium\';\n position: relative;\n width: 100%;\n display: block;\n\n > label {\n color: #999999;\n font-size: 14px;\n\n font-family: inherit;\n position: absolute;\n pointer-events: none;\n left: 0px;\n top: 5px;\n transition: 0.2s ease all;\n -moz-transition: 0.2s ease all;\n -webkit-transition: 0.2s ease all;\n }\n > input:focus ~ label {\n top: -10px;\n left: 0px;\n font-size: 10px;\n color: #999999;\n text-transform: capitalize;\n }\n\n > input ~ label.floaton {\n top: -5px;\n left: 0px;\n font-size: 10px;\n color: #999999;\n text-transform: capitalize;\n }\n']),
|
|
12
12
|
_templateObject2 = _taggedTemplateLiteral(['\n color: ', ';\n padding-top: 5px;\n display: inline-block;\n font-size: 12px;\n font-family: inherit;\n width: 100%;\n text-align: left;\n'], ['\n color: ', ';\n padding-top: 5px;\n display: inline-block;\n font-size: 12px;\n font-family: inherit;\n width: 100%;\n text-align: left;\n']),
|
|
13
13
|
_templateObject3 = _taggedTemplateLiteral(['\n background: none;\n border: none;\n cursor: pointer;\n position: absolute;\n right: 0;\n top: 5px;\n &:focus {\n outline: none;\n }\n'], ['\n background: none;\n border: none;\n cursor: pointer;\n position: absolute;\n right: 0;\n top: 5px;\n &:focus {\n outline: none;\n }\n']),
|
|
14
|
-
_templateObject4 = _taggedTemplateLiteral(['\n
|
|
14
|
+
_templateObject4 = _taggedTemplateLiteral(['\n position: absolute;\n right: 0px;\n top: 0px;\n background-color: #303F51;\n border-radius: 12px;\n font-size: 12px;\n padding: 5px 10px;\n color: #FFFFFF;\n'], ['\n position: absolute;\n right: 0px;\n top: 0px;\n background-color: #303F51;\n border-radius: 12px;\n font-size: 12px;\n padding: 5px 10px;\n color: #FFFFFF;\n']),
|
|
15
|
+
_templateObject5 = _taggedTemplateLiteral(['\n width: 100%;\n box-sizing: border-box;\n\n background: ', ';\n\n border: none;\n border-radius: 0px;\n -webkit-appearance: none;\n border-bottom: 1px solid\n ', ';\n\n font-family: \'SFUIText-Medium\';\n color: ', ';\n\n cursor: ', ';\n\n font-size: 14px;\n padding: 7px 0px 2px;\n margin-top: 15px;\n display: block;\n\n &:hover {\n border-color: ', ';\n }\n &:disabled:hover {\n border-color: ', ';\n }\n &:disabled {\n border-color: ', ';\n color: ', ';\n }\n &:focus {\n outline: none;\n }\n &::placeholder {\n color: ', ';\n\n opacity: ', ';\n transition: 0.2s ease all;\n }\n\n &:focus::placeholder {\n color: ', ';\n\n opacity: ', ';\n }\n'], ['\n width: 100%;\n box-sizing: border-box;\n\n background: ', ';\n\n border: none;\n border-radius: 0px;\n -webkit-appearance: none;\n border-bottom: 1px solid\n ', ';\n\n font-family: \'SFUIText-Medium\';\n color: ', ';\n\n cursor: ', ';\n\n font-size: 14px;\n padding: 7px 0px 2px;\n margin-top: 15px;\n display: block;\n\n &:hover {\n border-color: ', ';\n }\n &:disabled:hover {\n border-color: ', ';\n }\n &:disabled {\n border-color: ', ';\n color: ', ';\n }\n &:focus {\n outline: none;\n }\n &::placeholder {\n color: ', ';\n\n opacity: ', ';\n transition: 0.2s ease all;\n }\n\n &:focus::placeholder {\n color: ', ';\n\n opacity: ', ';\n }\n']);
|
|
15
16
|
|
|
16
17
|
var _react = require('react');
|
|
17
18
|
|
|
@@ -45,10 +46,14 @@ var InputError = _styledComponents2.default.span(_templateObject2, function (pro
|
|
|
45
46
|
|
|
46
47
|
var PasswordToggleButton = _styledComponents2.default.div(_templateObject3);
|
|
47
48
|
|
|
49
|
+
var CountWrappper = _styledComponents2.default.div(_templateObject4);
|
|
50
|
+
|
|
48
51
|
var InputText = function InputText(_ref) {
|
|
49
|
-
var
|
|
52
|
+
var maxlength = _ref.maxlength,
|
|
53
|
+
defaultValue = _ref.defaultValue,
|
|
50
54
|
type = _ref.type,
|
|
51
|
-
|
|
55
|
+
showLengthCount = _ref.showLengthCount,
|
|
56
|
+
props = _objectWithoutProperties(_ref, ['maxlength', 'defaultValue', 'type', 'showLengthCount']);
|
|
52
57
|
|
|
53
58
|
var _useState = (0, _react.useState)(true),
|
|
54
59
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -81,7 +86,7 @@ var InputText = function InputText(_ref) {
|
|
|
81
86
|
return _react2.default.createElement(
|
|
82
87
|
InputTextDiv,
|
|
83
88
|
{ theme: props.theme },
|
|
84
|
-
_react2.default.createElement(InputText.Element, _extends({ type: hidden ? type : 'text', value: props.value, defaultValue: defaultValue }, props)),
|
|
89
|
+
_react2.default.createElement(InputText.Element, _extends({ type: hidden ? type : 'text', value: props.value, defaultValue: defaultValue }, props, { maxLength: maxlength || '' })),
|
|
85
90
|
props.label ? _react2.default.createElement(
|
|
86
91
|
'label',
|
|
87
92
|
{
|
|
@@ -95,6 +100,13 @@ var InputText = function InputText(_ref) {
|
|
|
95
100
|
{ value: props.value, theme: props.theme, error: props.error },
|
|
96
101
|
errorMesssage
|
|
97
102
|
) : '',
|
|
103
|
+
maxlength && showLengthCount && _react2.default.createElement(
|
|
104
|
+
CountWrappper,
|
|
105
|
+
null,
|
|
106
|
+
props.value.length,
|
|
107
|
+
'/',
|
|
108
|
+
maxlength
|
|
109
|
+
),
|
|
98
110
|
type == 'password' || passwordButton ? _react2.default.createElement(
|
|
99
111
|
PasswordToggleButton,
|
|
100
112
|
{
|
|
@@ -120,7 +132,7 @@ var InputText = function InputText(_ref) {
|
|
|
120
132
|
);
|
|
121
133
|
};
|
|
122
134
|
|
|
123
|
-
InputText.Element = _styledComponents2.default.input(
|
|
135
|
+
InputText.Element = _styledComponents2.default.input(_templateObject5, function (props) {
|
|
124
136
|
return _tokens.colors[props.theme].inputCommon.background;
|
|
125
137
|
}, function (props) {
|
|
126
138
|
if (props.error) {
|
|
@@ -182,7 +194,7 @@ InputText.propTypes = {
|
|
|
182
194
|
value: _propTypes2.default.string,
|
|
183
195
|
/** The (HTML) maxlength for the input. */
|
|
184
196
|
maxlength: _propTypes2.default.number,
|
|
185
|
-
|
|
197
|
+
showLengthCount: _propTypes2.default.bool,
|
|
186
198
|
theme: _propTypes2.default.oneOf(['light', 'dark'])
|
|
187
199
|
|
|
188
200
|
/** deprecate error string prop */
|
|
@@ -197,7 +209,8 @@ InputText.defaultProps = {
|
|
|
197
209
|
type: 'text',
|
|
198
210
|
maxlength: 50,
|
|
199
211
|
theme: 'light',
|
|
200
|
-
value: ''
|
|
212
|
+
value: '',
|
|
213
|
+
showLengthCount: false
|
|
201
214
|
};
|
|
202
215
|
|
|
203
216
|
exports.default = InputText;
|
|
@@ -19,9 +19,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
19
19
|
_react2.default.createElement(
|
|
20
20
|
_storyHelpers.Stack,
|
|
21
21
|
null,
|
|
22
|
-
_react2.default.createElement(_components.InputText, { type: 'text', label: 'First Name',
|
|
22
|
+
_react2.default.createElement(_components.InputText, { type: 'text', label: 'First Name', onKeyPress: function onKeyPress(e) {
|
|
23
|
+
return undefined.value = e.target.value;
|
|
24
|
+
}, onChange: function onChange(e) {
|
|
23
25
|
return console.log(e.target.value);
|
|
24
|
-
}, placeholder: 'Enter Name max 10', value: '', required: true }),
|
|
26
|
+
}, placeholder: 'Enter Name max 10', value: 'asd', required: true }),
|
|
25
27
|
_react2.default.createElement(_components.InputText, { type: 'password', label: 'Middle Name', minLength: 3, maxLength: 6, placeholder: 'Show as password', required: true }),
|
|
26
28
|
_react2.default.createElement(_components.InputText, { type: 'text', value: "hello", label: 'Label and default value', required: true })
|
|
27
29
|
),
|
|
@@ -60,7 +62,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
60
62
|
_react2.default.createElement(
|
|
61
63
|
_storyHelpers.Stack,
|
|
62
64
|
null,
|
|
63
|
-
_react2.default.createElement(_components.InputText, { theme: 'dark', type: 'text', label: 'First Name', maxLength: 3, onChange: function onChange(e) {
|
|
65
|
+
_react2.default.createElement(_components.InputText, { theme: 'dark', type: 'text', label: 'First Name', showLengthCount: true, maxLength: 3, onChange: function onChange(e) {
|
|
64
66
|
return console.log(e.target.value);
|
|
65
67
|
}, placeholder: 'Enter Name max 10', required: true }),
|
|
66
68
|
_react2.default.createElement(_components.InputText, { theme: 'dark', type: 'password', label: 'Middle Name', minLength: 3, maxLength: 6, placeholder: 'Show as password', required: true }),
|
|
@@ -62,10 +62,10 @@ function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defi
|
|
|
62
62
|
|
|
63
63
|
var StyledFilterCompoment = _styledComponents2.default.div(_templateObject, function (_ref) {
|
|
64
64
|
var isMenuOpen = _ref.isMenuOpen;
|
|
65
|
-
return isMenuOpen ?
|
|
65
|
+
return isMenuOpen ? '95' : '1';
|
|
66
66
|
}, function (_ref2) {
|
|
67
67
|
var showSelectedFiltersAsChip = _ref2.showSelectedFiltersAsChip;
|
|
68
|
-
return showSelectedFiltersAsChip ?
|
|
68
|
+
return showSelectedFiltersAsChip ? '360px' : '30px';
|
|
69
69
|
});
|
|
70
70
|
|
|
71
71
|
var ApplyBtn = (0, _styledComponents2.default)(_button2.default)(_templateObject2);
|
|
@@ -73,7 +73,7 @@ var ResetBtn = (0, _styledComponents2.default)(_button2.default)(_templateObject
|
|
|
73
73
|
|
|
74
74
|
var OverlayStyles = _styledComponents2.default.div(_templateObject4, function (_ref3) {
|
|
75
75
|
var isMenuOpen = _ref3.isMenuOpen;
|
|
76
|
-
return isMenuOpen ?
|
|
76
|
+
return isMenuOpen ? '94' : '0';
|
|
77
77
|
});
|
|
78
78
|
|
|
79
79
|
var UserIdDropdown = _styledComponents2.default.div(_templateObject5);
|
|
@@ -95,14 +95,14 @@ var Filter = function (_Component) {
|
|
|
95
95
|
})))));
|
|
96
96
|
|
|
97
97
|
switch (groupItem.display_format) {
|
|
98
|
-
case
|
|
98
|
+
case 'CheckboxGroup':
|
|
99
99
|
{
|
|
100
|
-
if (groupItem.select_type ===
|
|
100
|
+
if (groupItem.select_type === 'select') {
|
|
101
101
|
// single select
|
|
102
102
|
var selected = selectedFiltersObj[groupItem.field].value === optionItem.field;
|
|
103
103
|
if (selected && groupItem.min_selection === 0) {
|
|
104
|
-
filters[groupItem.field].value =
|
|
105
|
-
filters.params[groupItem.field] =
|
|
104
|
+
filters[groupItem.field].value = '';
|
|
105
|
+
filters.params[groupItem.field] = '';
|
|
106
106
|
} else {
|
|
107
107
|
filters[groupItem.field].value = optionItem.field;
|
|
108
108
|
filters.params[groupItem.field] = optionItem.field;
|
|
@@ -121,7 +121,7 @@ var Filter = function (_Component) {
|
|
|
121
121
|
return item === optionItem.field;
|
|
122
122
|
});
|
|
123
123
|
|
|
124
|
-
var maxSelection = typeof groupItem.max_selection ===
|
|
124
|
+
var maxSelection = typeof groupItem.max_selection === 'number' ? groupItem.max_selection : groupItem.options.length;
|
|
125
125
|
if (optionIndex < 0 && multiple.length < maxSelection) {
|
|
126
126
|
multiple.push(optionItem.field);
|
|
127
127
|
} else if (optionIndex > -1 && !(groupItem.required && multiple.length === 1)) {
|
|
@@ -132,21 +132,21 @@ var Filter = function (_Component) {
|
|
|
132
132
|
break;
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
-
case
|
|
135
|
+
case 'datepicker':
|
|
136
136
|
{
|
|
137
137
|
filters[groupItem.field].value.key = optionItem.field; // in date, this needs to be added for highlighting the selected filters
|
|
138
|
-
if (optionItem.field ===
|
|
138
|
+
if (optionItem.field === 'date_range') {
|
|
139
139
|
_this.setState({ isSelectRangeSelected: true }, function () {
|
|
140
140
|
filters[groupItem.field].value.fromDate = selectedFiltersObj[groupItem.field].value.fromDate;
|
|
141
141
|
filters[groupItem.field].value.toDate = selectedFiltersObj[groupItem.field].value.toDate;
|
|
142
142
|
});
|
|
143
|
-
} else if (optionItem.field ===
|
|
143
|
+
} else if (optionItem.field === 'week') {
|
|
144
144
|
filters[groupItem.field].value.fromDate = _constants.WEEK_DATE;
|
|
145
145
|
filters[groupItem.field].value.toDate = _constants.CURRENT_DATE;
|
|
146
|
-
} else if (optionItem.field ===
|
|
146
|
+
} else if (optionItem.field === 'month') {
|
|
147
147
|
filters[groupItem.field].value.fromDate = _constants.MONTH_DATE;
|
|
148
148
|
filters[groupItem.field].value.toDate = _constants.CURRENT_DATE;
|
|
149
|
-
} else if (optionItem.field ===
|
|
149
|
+
} else if (optionItem.field === 'three_month') {
|
|
150
150
|
filters[groupItem.field].value.fromDate = _constants.THREE_MONTHS;
|
|
151
151
|
filters[groupItem.field].value.toDate = _constants.CURRENT_DATE;
|
|
152
152
|
} else {
|
|
@@ -158,7 +158,7 @@ var Filter = function (_Component) {
|
|
|
158
158
|
break;
|
|
159
159
|
}
|
|
160
160
|
|
|
161
|
-
case
|
|
161
|
+
case 'input':
|
|
162
162
|
{
|
|
163
163
|
var selectedUserIds = _this.state.selectedUserIds;
|
|
164
164
|
|
|
@@ -176,32 +176,33 @@ var Filter = function (_Component) {
|
|
|
176
176
|
}, '');
|
|
177
177
|
filters[groupItem.field] = updatedUserIds;
|
|
178
178
|
filters.params[groupItem.field] = updatedUserid;
|
|
179
|
-
_this._userFilterInput.current.value =
|
|
179
|
+
_this._userFilterInput.current.value = '';
|
|
180
180
|
}
|
|
181
181
|
|
|
182
182
|
default:
|
|
183
183
|
break;
|
|
184
184
|
}
|
|
185
185
|
|
|
186
|
-
_this.changeFilters(
|
|
186
|
+
_this.changeFilters('selected', filters);
|
|
187
187
|
};
|
|
188
188
|
|
|
189
189
|
_this.changeFilters = function (forAction, filters) {
|
|
190
190
|
var initialFilters = _this.props.initialFilters;
|
|
191
191
|
|
|
192
192
|
var newFilters = null;
|
|
193
|
-
if (forAction ===
|
|
193
|
+
if (forAction === 'reset') {
|
|
194
194
|
newFilters = initialFilters;
|
|
195
|
-
} else if (forAction ===
|
|
195
|
+
} else if (forAction === 'selected') {
|
|
196
196
|
newFilters = filters;
|
|
197
|
-
} else if (forAction ===
|
|
197
|
+
} else if (forAction === 'previous') {
|
|
198
198
|
newFilters = _this.props.selectedFilters;
|
|
199
199
|
}
|
|
200
200
|
_this.setState({
|
|
201
201
|
selectedFiltersObj: newFilters,
|
|
202
|
-
selectedFiltersFor: forAction
|
|
202
|
+
selectedFiltersFor: forAction,
|
|
203
|
+
autoSelectIndex: -1
|
|
203
204
|
}, function () {
|
|
204
|
-
if (forAction ===
|
|
205
|
+
if (forAction === 'reset' || forAction === 'previous') {
|
|
205
206
|
_this.applyFilters();
|
|
206
207
|
}
|
|
207
208
|
});
|
|
@@ -214,37 +215,37 @@ var Filter = function (_Component) {
|
|
|
214
215
|
_this.highlightSelectedFilters = function (element, option) {
|
|
215
216
|
var selectedFiltersObj = _this.state.selectedFiltersObj;
|
|
216
217
|
|
|
217
|
-
var selectedStyle =
|
|
218
|
+
var selectedStyle = '';
|
|
218
219
|
if (selectedFiltersObj[element.field]) {
|
|
219
|
-
if (element.select_type ===
|
|
220
|
-
if (element.field ===
|
|
220
|
+
if (element.select_type === 'select') {
|
|
221
|
+
if (element.field === 'date') {
|
|
221
222
|
/*
|
|
222
223
|
* for date we have value as Object which contains fromDate and toDate
|
|
223
224
|
* so we add "key" in that object and check based on that key
|
|
224
225
|
* key is nothing but the value of selected label
|
|
225
226
|
*/
|
|
226
|
-
selectedStyle = selectedFiltersObj[element.field].value.key === option.field ?
|
|
227
|
+
selectedStyle = selectedFiltersObj[element.field].value.key === option.field ? 'checked' : '';
|
|
227
228
|
} else {
|
|
228
|
-
selectedStyle = selectedFiltersObj[element.field].value === option.field ?
|
|
229
|
+
selectedStyle = selectedFiltersObj[element.field].value === option.field ? 'checked' : '';
|
|
229
230
|
}
|
|
230
|
-
} else if (element.select_type ===
|
|
231
|
-
selectedStyle = selectedFiltersObj[element.field].value.includes(option.field) ?
|
|
231
|
+
} else if (element.select_type === 'multiselect') {
|
|
232
|
+
selectedStyle = selectedFiltersObj[element.field].value.includes(option.field) ? 'checked' : '';
|
|
232
233
|
}
|
|
233
234
|
}
|
|
234
|
-
return
|
|
235
|
+
return 'filter-group-item ' + selectedStyle;
|
|
235
236
|
};
|
|
236
237
|
|
|
237
238
|
_this.renderFilterDisplayLabels = function (element) {
|
|
238
239
|
var selectedFiltersObj = _this.state.selectedFiltersObj;
|
|
239
240
|
|
|
240
241
|
|
|
241
|
-
var label =
|
|
242
|
+
var label = '';
|
|
242
243
|
|
|
243
244
|
if (selectedFiltersObj && selectedFiltersObj[element.field]) {
|
|
244
|
-
if (element.select_type ===
|
|
245
|
-
label = selectedFiltersObj[element.field].value ? selectedFiltersObj[element.field].label :
|
|
245
|
+
if (element.select_type === 'select') {
|
|
246
|
+
label = selectedFiltersObj[element.field].value ? selectedFiltersObj[element.field].label : 'All'; // normal label - single select
|
|
246
247
|
|
|
247
|
-
if (element.field ===
|
|
248
|
+
if (element.field === 'date') {
|
|
248
249
|
// eg. display like this Jan 10
|
|
249
250
|
var value = selectedFiltersObj[element.field].value;
|
|
250
251
|
|
|
@@ -252,28 +253,37 @@ var Filter = function (_Component) {
|
|
|
252
253
|
var end = new Date(value ? value.toDate : _constants.CURRENT_DATE);
|
|
253
254
|
var fromattedFrom = _constants.MONTHS[from.getMonth()] + " " + from.getDate();
|
|
254
255
|
var fromattedEnd = _constants.MONTHS[end.getMonth()] + " " + end.getDate();
|
|
255
|
-
if (value.key ===
|
|
256
|
-
label =
|
|
257
|
-
} else if (value.key ===
|
|
256
|
+
if (value.key === 'date_range' && !value.toDate && !value.fromDate) {
|
|
257
|
+
label = ' - ';
|
|
258
|
+
} else if (value.key === 'date_range' || value.key === 'week' || value.key === 'month' || value.key === 'three_month') {
|
|
258
259
|
label = fromattedFrom + " - " + fromattedEnd;
|
|
259
260
|
} else {
|
|
260
261
|
label = fromattedEnd;
|
|
261
262
|
}
|
|
262
263
|
}
|
|
263
|
-
} else if (element.select_type ===
|
|
264
|
+
} else if (element.select_type === 'multiselect') {
|
|
264
265
|
label = selectedFiltersObj[element.field].value.length;
|
|
265
266
|
}
|
|
266
267
|
}
|
|
267
268
|
|
|
268
|
-
return "" + (element.title ===
|
|
269
|
+
return "" + (element.title === 'Date' ? '' : element.title + " : ") + label;
|
|
269
270
|
};
|
|
270
271
|
|
|
271
272
|
_this.toggleFiltersMenu = function (flag) {
|
|
272
|
-
|
|
273
|
+
var selectedFilters = _this.props.selectedFilters;
|
|
274
|
+
|
|
275
|
+
if (flag) {
|
|
276
|
+
_this.setState({
|
|
277
|
+
isMenuOpen: flag,
|
|
278
|
+
selectedUserIds: selectedFilters && selectedFilters.user_id_filter
|
|
279
|
+
});
|
|
280
|
+
} else {
|
|
281
|
+
_this.setState({ isMenuOpen: flag });
|
|
282
|
+
}
|
|
273
283
|
};
|
|
274
284
|
|
|
275
285
|
_this.componentDidUpdate = function (prevProps, prevState, snapshot) {
|
|
276
|
-
if (_this.state.selectedFiltersFor ==
|
|
286
|
+
if (_this.state.selectedFiltersFor == 'reset') {} else if (_this.state.selectedFiltersFor == 'selected') {} else if (prevProps.selectedFilters && _this.state.selectedFiltersObj == null) {
|
|
277
287
|
_this.setState({
|
|
278
288
|
selectedFiltersObj: _this.props.selectedFilters
|
|
279
289
|
});
|
|
@@ -306,39 +316,54 @@ var Filter = function (_Component) {
|
|
|
306
316
|
};
|
|
307
317
|
|
|
308
318
|
_this.applyFilters = function (forData) {
|
|
309
|
-
var
|
|
319
|
+
var _this$state = _this.state,
|
|
320
|
+
selectedFiltersObj = _this$state.selectedFiltersObj,
|
|
321
|
+
selectedUserIds = _this$state.selectedUserIds;
|
|
310
322
|
var _this$props = _this.props,
|
|
311
323
|
applyFilters = _this$props.applyFilters,
|
|
312
324
|
initialFilters = _this$props.initialFilters;
|
|
313
325
|
|
|
314
326
|
_this.toggleFiltersMenu(false);
|
|
315
|
-
if (forData ===
|
|
327
|
+
if (forData === 'reset') {
|
|
316
328
|
_this.setState({
|
|
317
329
|
selectedFiltersObj: initialFilters,
|
|
318
330
|
showDropDownOptions: false,
|
|
319
331
|
selectedUserIds: []
|
|
320
332
|
}, function () {
|
|
321
|
-
applyFilters(_this.state.selectedFiltersObj,
|
|
333
|
+
applyFilters(_this.state.selectedFiltersObj, 'reset');
|
|
322
334
|
});
|
|
323
|
-
} else if (forData ===
|
|
335
|
+
} else if (forData === 'cancel') {
|
|
324
336
|
_this.setState({
|
|
325
337
|
selectedFiltersObj: _this.props.selectedFilters,
|
|
326
|
-
showDropDownOptions: false
|
|
338
|
+
showDropDownOptions: false,
|
|
339
|
+
selectedUserIds: []
|
|
327
340
|
}, function () {
|
|
328
341
|
// applyFilters(this.state.selectedFiltersObj);
|
|
329
342
|
});
|
|
330
343
|
} else {
|
|
331
|
-
applyFilters(selectedFiltersObj,
|
|
344
|
+
applyFilters(selectedFiltersObj, 'apply');
|
|
332
345
|
}
|
|
333
346
|
};
|
|
334
347
|
|
|
335
|
-
_this.getClassName = function (user) {
|
|
336
|
-
var
|
|
348
|
+
_this.getClassName = function (user, indx) {
|
|
349
|
+
var _this$state2 = _this.state,
|
|
350
|
+
selectedUserIds = _this$state2.selectedUserIds,
|
|
351
|
+
autoSelectIndex = _this$state2.autoSelectIndex;
|
|
337
352
|
|
|
338
|
-
|
|
339
|
-
|
|
353
|
+
if (autoSelectIndex === indx) return 'dropdown-options active';else {
|
|
354
|
+
var index = selectedUserIds.findIndex(function (userObj) {
|
|
355
|
+
return userObj.user_id === user.user_id;
|
|
356
|
+
});
|
|
357
|
+
return index >= 0 ? 'dropdown-options active' : 'dropdown-options';
|
|
358
|
+
}
|
|
359
|
+
};
|
|
360
|
+
|
|
361
|
+
_this.resetSelectedUserFilter = function () {
|
|
362
|
+
_this.setState({
|
|
363
|
+
selectedUserIds: [],
|
|
364
|
+
showDropDownOptions: false,
|
|
365
|
+
autoSelectIndex: -1
|
|
340
366
|
});
|
|
341
|
-
return index >= 0 ? "dropdown-options active" : "dropdown-options";
|
|
342
367
|
};
|
|
343
368
|
|
|
344
369
|
_this.render = function () {
|
|
@@ -348,11 +373,11 @@ var Filter = function (_Component) {
|
|
|
348
373
|
filterMessage = _this$props2.filterMessage,
|
|
349
374
|
width = _this$props2.width,
|
|
350
375
|
userIdsList = _this$props2.userIdsList;
|
|
351
|
-
var _this$
|
|
352
|
-
isMenuOpen = _this$
|
|
353
|
-
selectedFiltersObj = _this$
|
|
354
|
-
isSelectRangeSelected = _this$
|
|
355
|
-
showDropDownOptions = _this$
|
|
376
|
+
var _this$state3 = _this.state,
|
|
377
|
+
isMenuOpen = _this$state3.isMenuOpen,
|
|
378
|
+
selectedFiltersObj = _this$state3.selectedFiltersObj,
|
|
379
|
+
isSelectRangeSelected = _this$state3.isSelectRangeSelected,
|
|
380
|
+
showDropDownOptions = _this$state3.showDropDownOptions;
|
|
356
381
|
|
|
357
382
|
return _react2.default.createElement(
|
|
358
383
|
_react.Fragment,
|
|
@@ -379,9 +404,9 @@ var Filter = function (_Component) {
|
|
|
379
404
|
className: "search-filter-list-box",
|
|
380
405
|
onClick: function onClick() {
|
|
381
406
|
_this.toggleFiltersMenu(!(isMenuOpen && !showSelectedFiltersAsChip));
|
|
382
|
-
_this.applyFilters(
|
|
407
|
+
_this.applyFilters('cancel');
|
|
383
408
|
if (isMenuOpen && !showSelectedFiltersAsChip) {
|
|
384
|
-
_this.applyFilters(
|
|
409
|
+
_this.applyFilters('cancel');
|
|
385
410
|
} else {
|
|
386
411
|
_this.toggleFiltersMenu(true);
|
|
387
412
|
}
|
|
@@ -390,7 +415,7 @@ var Filter = function (_Component) {
|
|
|
390
415
|
!showSelectedFiltersAsChip && _react2.default.createElement(
|
|
391
416
|
"div",
|
|
392
417
|
{
|
|
393
|
-
className: isMenuOpen ?
|
|
418
|
+
className: isMenuOpen ? 'filter-button active' : 'filter-button'
|
|
394
419
|
},
|
|
395
420
|
_react2.default.createElement(_icon2.default, { name: "filter", width: 16, height: 16, color: "#afb2ba" })
|
|
396
421
|
),
|
|
@@ -404,7 +429,7 @@ var Filter = function (_Component) {
|
|
|
404
429
|
"span",
|
|
405
430
|
{
|
|
406
431
|
style: {
|
|
407
|
-
color:
|
|
432
|
+
color: '#63d0c7'
|
|
408
433
|
}
|
|
409
434
|
},
|
|
410
435
|
"FILTERS"
|
|
@@ -421,7 +446,7 @@ var Filter = function (_Component) {
|
|
|
421
446
|
{
|
|
422
447
|
key: item.text,
|
|
423
448
|
theme: "dark",
|
|
424
|
-
style: { cursor:
|
|
449
|
+
style: { cursor: 'pointer' },
|
|
425
450
|
className: "chip-button checked"
|
|
426
451
|
},
|
|
427
452
|
_this.renderFilterDisplayLabels(item)
|
|
@@ -490,17 +515,20 @@ var Filter = function (_Component) {
|
|
|
490
515
|
onChange: function onChange(e) {
|
|
491
516
|
_this.handleDebounce(groupItem.permission, e.target.value);
|
|
492
517
|
_this.setState({ showDropDownOptions: true });
|
|
518
|
+
},
|
|
519
|
+
onKeyDown: function onKeyDown(e) {
|
|
520
|
+
return _this.onKeyDown(e, groupItem);
|
|
493
521
|
}
|
|
494
522
|
// onFocus={(e) => this.setState({showDropDownOptions: true})}
|
|
495
523
|
}),
|
|
496
524
|
userIdsList && userIdsList.length > 0 && showDropDownOptions && _this._userFilterInput.current.value.length > 1 && _react2.default.createElement(
|
|
497
525
|
"div",
|
|
498
526
|
{ className: "user-dropdown" },
|
|
499
|
-
userIdsList.map(function (user) {
|
|
527
|
+
userIdsList.map(function (user, index) {
|
|
500
528
|
return _react2.default.createElement(
|
|
501
529
|
"p",
|
|
502
530
|
{
|
|
503
|
-
className: _this.getClassName(user),
|
|
531
|
+
className: _this.getClassName(user, index),
|
|
504
532
|
onClick: function onClick(e) {
|
|
505
533
|
return _this.onSelection(groupItem, user);
|
|
506
534
|
}
|
|
@@ -512,83 +540,82 @@ var Filter = function (_Component) {
|
|
|
512
540
|
)
|
|
513
541
|
)
|
|
514
542
|
);
|
|
515
|
-
}
|
|
516
|
-
|
|
543
|
+
}
|
|
544
|
+
return _react2.default.createElement(
|
|
545
|
+
"div",
|
|
546
|
+
{ className: "filter-group", key: groupItem.field },
|
|
547
|
+
_react2.default.createElement(
|
|
517
548
|
"div",
|
|
518
|
-
{ className: "filter-group"
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
return option.field === "date_range" ? _react2.default.createElement(_datePicker2.default, {
|
|
529
|
-
theme: "dark",
|
|
530
|
-
label: _react2.default.createElement(
|
|
531
|
-
_tag2.default,
|
|
532
|
-
{
|
|
533
|
-
key: option.field,
|
|
534
|
-
theme: "dark",
|
|
535
|
-
className: "chip-button " + _this.highlightSelectedFilters(groupItem, option)
|
|
536
|
-
},
|
|
537
|
-
option.title
|
|
538
|
-
),
|
|
539
|
-
className: _this.highlightSelectedFilters(groupItem, option),
|
|
540
|
-
labelAsText: true,
|
|
541
|
-
rangePicker: true,
|
|
542
|
-
minDate: isSelectRangeSelected ? null : selectedFiltersObj[groupItem.field].value.fromDate - option.max_days * _constants.CONVERT,
|
|
543
|
-
maxDate: isSelectRangeSelected ? _constants.CURRENT_DATE : selectedFiltersObj[groupItem.field].value.fromDate + option.max_days * _constants.CONVERT > _constants.CURRENT_DATE ? _constants.CURRENT_DATE : selectedFiltersObj[groupItem.field].value.fromDate + option.max_days * _constants.CONVERT,
|
|
544
|
-
datepickerStep: 2,
|
|
545
|
-
selected:
|
|
546
|
-
// previousSelectedFilters && previousSelectedFilters[groupItem.field].value.key !='date_range' ? []:(
|
|
547
|
-
selectedFiltersObj[groupItem.field] ? [selectedFiltersObj[groupItem.field].value.fromDate, selectedFiltersObj[groupItem.field].value.toDate] : []
|
|
548
|
-
// )
|
|
549
|
-
,
|
|
550
|
-
onSelectionChange: function onSelectionChange(date) {
|
|
551
|
-
var filters = _extends({}, selectedFiltersObj);
|
|
552
|
-
var formattedFrom = date.from ? new Date(date.from) : null;
|
|
553
|
-
var formattedEnd = date.to ? new Date(date.to) : null; // new Date(date.to || CURRENT_DATE);
|
|
554
|
-
filters[groupItem.field].value.fromDate = date.from;
|
|
555
|
-
filters[groupItem.field].value.toDate = date.to; // || CURRENT_DATE;
|
|
556
|
-
filters[groupItem.field].value.key = "date_range";
|
|
557
|
-
filters[groupItem.field].label = date.from && date.to ? _constants.MONTHS[formattedFrom.getMonth()] + " " + formattedFrom.getDate() + " - " + _constants.MONTHS[formattedEnd.getMonth()] + " " + formattedEnd.getDate() : "no selection";
|
|
558
|
-
_this.setState({ isSelectRangeSelected: false }, function () {
|
|
559
|
-
_this.changeFilters("selected", filters);
|
|
560
|
-
});
|
|
561
|
-
},
|
|
562
|
-
onCalendarOpen: function onCalendarOpen() {
|
|
563
|
-
_this.onSelection(groupItem, option);
|
|
564
|
-
}
|
|
565
|
-
}) : _react2.default.createElement(
|
|
549
|
+
{ className: "filter-group-title" },
|
|
550
|
+
groupItem.title
|
|
551
|
+
),
|
|
552
|
+
_react2.default.createElement(
|
|
553
|
+
"div",
|
|
554
|
+
{ className: "filter-group-item-list" },
|
|
555
|
+
groupItem.options.map(function (option) {
|
|
556
|
+
return option.field === 'date_range' ? _react2.default.createElement(_datePicker2.default, {
|
|
557
|
+
theme: "dark",
|
|
558
|
+
label: _react2.default.createElement(
|
|
566
559
|
_tag2.default,
|
|
567
560
|
{
|
|
568
561
|
key: option.field,
|
|
569
562
|
theme: "dark",
|
|
570
|
-
className:
|
|
571
|
-
onClick: function onClick() {
|
|
572
|
-
// first range picker false then
|
|
573
|
-
_this.setState({ isRangePickerVisible: false }, function () {
|
|
574
|
-
_this.onSelection(groupItem, option);
|
|
575
|
-
});
|
|
576
|
-
}
|
|
563
|
+
className: 'chip-button ' + _this.highlightSelectedFilters(groupItem, option)
|
|
577
564
|
},
|
|
578
565
|
option.title
|
|
579
|
-
)
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
566
|
+
),
|
|
567
|
+
className: _this.highlightSelectedFilters(groupItem, option),
|
|
568
|
+
labelAsText: true,
|
|
569
|
+
rangePicker: true,
|
|
570
|
+
minDate: isSelectRangeSelected ? null : selectedFiltersObj[groupItem.field].value.fromDate - option.max_days * _constants.CONVERT,
|
|
571
|
+
maxDate: isSelectRangeSelected ? _constants.CURRENT_DATE : selectedFiltersObj[groupItem.field].value.fromDate + option.max_days * _constants.CONVERT > _constants.CURRENT_DATE ? _constants.CURRENT_DATE : selectedFiltersObj[groupItem.field].value.fromDate + option.max_days * _constants.CONVERT,
|
|
572
|
+
datepickerStep: 2,
|
|
573
|
+
selected:
|
|
574
|
+
// previousSelectedFilters && previousSelectedFilters[groupItem.field].value.key !='date_range' ? []:(
|
|
575
|
+
selectedFiltersObj[groupItem.field] ? [selectedFiltersObj[groupItem.field].value.fromDate, selectedFiltersObj[groupItem.field].value.toDate] : []
|
|
576
|
+
// )
|
|
577
|
+
,
|
|
578
|
+
onSelectionChange: function onSelectionChange(date) {
|
|
579
|
+
var filters = _extends({}, selectedFiltersObj);
|
|
580
|
+
var formattedFrom = date.from ? new Date(date.from) : null;
|
|
581
|
+
var formattedEnd = date.to ? new Date(date.to) : null; // new Date(date.to || CURRENT_DATE);
|
|
582
|
+
filters[groupItem.field].value.fromDate = date.from;
|
|
583
|
+
filters[groupItem.field].value.toDate = date.to; // || CURRENT_DATE;
|
|
584
|
+
filters[groupItem.field].value.key = 'date_range';
|
|
585
|
+
filters[groupItem.field].label = date.from && date.to ? _constants.MONTHS[formattedFrom.getMonth()] + " " + formattedFrom.getDate() + " - " + _constants.MONTHS[formattedEnd.getMonth()] + " " + formattedEnd.getDate() : 'no selection';
|
|
586
|
+
_this.setState({ isSelectRangeSelected: false }, function () {
|
|
587
|
+
_this.changeFilters('selected', filters);
|
|
588
|
+
});
|
|
589
|
+
},
|
|
590
|
+
onCalendarOpen: function onCalendarOpen() {
|
|
591
|
+
_this.onSelection(groupItem, option);
|
|
592
|
+
}
|
|
593
|
+
}) : _react2.default.createElement(
|
|
594
|
+
_tag2.default,
|
|
595
|
+
{
|
|
596
|
+
key: option.field,
|
|
597
|
+
theme: "dark",
|
|
598
|
+
className: 'chip-button ' + _this.highlightSelectedFilters(groupItem, option),
|
|
599
|
+
onClick: function onClick() {
|
|
600
|
+
// first range picker false then
|
|
601
|
+
_this.setState({ isRangePickerVisible: false }, function () {
|
|
602
|
+
_this.onSelection(groupItem, option);
|
|
603
|
+
});
|
|
604
|
+
}
|
|
605
|
+
},
|
|
606
|
+
option.title
|
|
607
|
+
);
|
|
608
|
+
})
|
|
609
|
+
)
|
|
610
|
+
);
|
|
584
611
|
}) : null,
|
|
585
612
|
_react2.default.createElement(
|
|
586
613
|
"div",
|
|
587
614
|
{
|
|
588
615
|
style: {
|
|
589
|
-
margin:
|
|
590
|
-
textAlign:
|
|
591
|
-
display:
|
|
616
|
+
margin: '15px 0px 0px',
|
|
617
|
+
textAlign: 'center',
|
|
618
|
+
display: 'flex'
|
|
592
619
|
}
|
|
593
620
|
},
|
|
594
621
|
_react2.default.createElement(
|
|
@@ -597,7 +624,7 @@ var Filter = function (_Component) {
|
|
|
597
624
|
appearance: "cta",
|
|
598
625
|
onClick: function onClick() {
|
|
599
626
|
// this.toggleFiltersMenu(false);
|
|
600
|
-
_this.applyFilters(
|
|
627
|
+
_this.applyFilters('reset');
|
|
601
628
|
// this.changeFilters('reset', null);
|
|
602
629
|
}
|
|
603
630
|
},
|
|
@@ -628,8 +655,8 @@ var Filter = function (_Component) {
|
|
|
628
655
|
selectedFiltersFor: null,
|
|
629
656
|
isSelectRangeSelected: false, // this is based on max_days
|
|
630
657
|
selectedUserIds: [],
|
|
631
|
-
|
|
632
|
-
|
|
658
|
+
showDropDownOptions: false,
|
|
659
|
+
autoSelectIndex: -1
|
|
633
660
|
};
|
|
634
661
|
_this._userFilter = _react2.default.createRef();
|
|
635
662
|
_this._userFilterInput = _react2.default.createRef();
|
|
@@ -637,48 +664,98 @@ var Filter = function (_Component) {
|
|
|
637
664
|
}
|
|
638
665
|
|
|
639
666
|
/**
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
667
|
+
* This function handle the onChange event in the filter.
|
|
668
|
+
* @param {Object} groupItem GUI elements for the particular section
|
|
669
|
+
* @param {Object} optionItem the item from the options of that section
|
|
670
|
+
*/
|
|
644
671
|
|
|
645
672
|
|
|
646
673
|
/**
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
674
|
+
* This function performs action based on forAction on filters object
|
|
675
|
+
* @param {String} forAction action performed on the filter object
|
|
676
|
+
* @param {Object} filters Object containing current filters selected values
|
|
677
|
+
*/
|
|
651
678
|
|
|
652
679
|
|
|
653
680
|
/**
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
681
|
+
* This function hadles the onchange event for search input field inside filter
|
|
682
|
+
* @param {string} query Input Filed value
|
|
683
|
+
* @param {string} permission Type of dashboard
|
|
684
|
+
*/
|
|
658
685
|
|
|
659
686
|
|
|
660
|
-
|
|
687
|
+
_createClass(Filter, [{
|
|
688
|
+
key: "onKeyDown",
|
|
661
689
|
|
|
662
690
|
|
|
663
|
-
|
|
691
|
+
/**
|
|
692
|
+
* This function handles the keypress traverse over the dropdown option list
|
|
693
|
+
* @param {Object} e the event object that is fired
|
|
694
|
+
* @param {Object} groupItem Object containing groupitem details
|
|
695
|
+
*/
|
|
696
|
+
value: function onKeyDown(e, groupItem) {
|
|
697
|
+
var autoSelectIndex = this.state.autoSelectIndex;
|
|
698
|
+
var userIdsList = this.props.userIdsList;
|
|
664
699
|
|
|
665
700
|
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
701
|
+
if (userIdsList.length) {
|
|
702
|
+
switch (e.keyCode) {
|
|
703
|
+
case 13:
|
|
704
|
+
e.preventDefault();
|
|
705
|
+
this.onSelection(groupItem, userIdsList[autoSelectIndex]);
|
|
706
|
+
break;
|
|
707
|
+
case 40:
|
|
708
|
+
{
|
|
709
|
+
e.preventDefault();
|
|
710
|
+
var nextIndex = autoSelectIndex + 1;
|
|
711
|
+
if (nextIndex > userIdsList.length - 1) {
|
|
712
|
+
nextIndex = userIdsList.length - 1;
|
|
713
|
+
}
|
|
714
|
+
this.setState({
|
|
715
|
+
autoSelectIndex: nextIndex
|
|
716
|
+
});
|
|
717
|
+
}
|
|
718
|
+
break;
|
|
719
|
+
case 38:
|
|
720
|
+
{
|
|
721
|
+
e.preventDefault();
|
|
722
|
+
var prevIndex = autoSelectIndex - 1;
|
|
723
|
+
if (prevIndex < 0) {
|
|
724
|
+
prevIndex = userIdsList.length - 1;
|
|
725
|
+
}
|
|
726
|
+
this.setState({
|
|
727
|
+
autoSelectIndex: prevIndex
|
|
728
|
+
});
|
|
729
|
+
}
|
|
730
|
+
break;
|
|
731
|
+
default:
|
|
732
|
+
// eslint-disable-next-line no-console
|
|
733
|
+
console.log('Default Case');
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
}
|
|
670
737
|
|
|
738
|
+
// to highlight selected filters
|
|
671
739
|
|
|
672
|
-
|
|
740
|
+
|
|
741
|
+
// this to render filter label based on selectedFiltersObj
|
|
742
|
+
|
|
743
|
+
|
|
744
|
+
/**
|
|
745
|
+
* This function toggle filters menu - show & hide.
|
|
746
|
+
* @param {boolean} flag contains value true/false to show/ hide filter.
|
|
747
|
+
*/
|
|
748
|
+
|
|
749
|
+
}, {
|
|
673
750
|
key: "componentDidMount",
|
|
674
751
|
value: function componentDidMount() {
|
|
675
752
|
document.body.addEventListener('click', this.toggleDropDown);
|
|
676
753
|
}
|
|
677
754
|
|
|
678
755
|
/**
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
756
|
+
* This function hides the dropdown list when user clicks outside the area of input box
|
|
757
|
+
* @param {Object} e click event that gets fired.
|
|
758
|
+
*/
|
|
682
759
|
|
|
683
760
|
|
|
684
761
|
/**
|
|
@@ -688,10 +765,15 @@ var Filter = function (_Component) {
|
|
|
688
765
|
|
|
689
766
|
|
|
690
767
|
/**
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
768
|
+
* This function takes the current user object from the dropdown list and checks if it is pre-selected.
|
|
769
|
+
* @param {Objec} user object that contains details for the user
|
|
770
|
+
* @returns the name of class with active state or not.
|
|
771
|
+
*/
|
|
772
|
+
|
|
773
|
+
|
|
774
|
+
/**
|
|
775
|
+
* This function reset userIds in the filter.
|
|
776
|
+
*/
|
|
695
777
|
|
|
696
778
|
}]);
|
|
697
779
|
|
|
@@ -709,7 +791,7 @@ Filter.propTypes = {
|
|
|
709
791
|
};
|
|
710
792
|
|
|
711
793
|
Filter.defaultProps = {
|
|
712
|
-
width:
|
|
794
|
+
width: '360px'
|
|
713
795
|
};
|
|
714
796
|
|
|
715
797
|
exports.default = Filter;
|
package/molecules/table/table.js
CHANGED
|
@@ -558,6 +558,11 @@ var Table = function (_Component) {
|
|
|
558
558
|
_this.handleDebounce(text);
|
|
559
559
|
};
|
|
560
560
|
|
|
561
|
+
_this.resetSearchTextAndFilters = function () {
|
|
562
|
+
_this.handleInputChange('');
|
|
563
|
+
_this._filterRef.current.resetSelectedUserFilter();
|
|
564
|
+
};
|
|
565
|
+
|
|
561
566
|
_this.handleDebounce = (0, _lodash.debounce)(function (text) {
|
|
562
567
|
var getSearchedRows = _this.props.getSearchedRows;
|
|
563
568
|
|
|
@@ -597,6 +602,7 @@ var Table = function (_Component) {
|
|
|
597
602
|
// isAllRowsSelected:false,
|
|
598
603
|
searchedText: ''
|
|
599
604
|
};
|
|
605
|
+
|
|
600
606
|
return _this;
|
|
601
607
|
}
|
|
602
608
|
|
|
@@ -837,6 +843,11 @@ var Table = function (_Component) {
|
|
|
837
843
|
*/
|
|
838
844
|
|
|
839
845
|
|
|
846
|
+
/**
|
|
847
|
+
* This function reset Search & filters.
|
|
848
|
+
*/
|
|
849
|
+
|
|
850
|
+
|
|
840
851
|
/**
|
|
841
852
|
* This function triggers API call with the text as searched keyword
|
|
842
853
|
* @param {string} text the searched text
|
|
@@ -1007,11 +1018,11 @@ var Table = function (_Component) {
|
|
|
1007
1018
|
null,
|
|
1008
1019
|
_react2.default.createElement(
|
|
1009
1020
|
"span",
|
|
1010
|
-
|
|
1021
|
+
{ className: "search-icon-wrapper" },
|
|
1011
1022
|
_react2.default.createElement(_icon2.default, {
|
|
1012
1023
|
name: "search",
|
|
1013
|
-
width:
|
|
1014
|
-
height:
|
|
1024
|
+
width: 12,
|
|
1025
|
+
height: 12,
|
|
1015
1026
|
color: "#999999"
|
|
1016
1027
|
})
|
|
1017
1028
|
),
|
|
@@ -1079,6 +1090,7 @@ var Table = function (_Component) {
|
|
|
1079
1090
|
)
|
|
1080
1091
|
),
|
|
1081
1092
|
this.props.filtersStructure && this.props.filtersStructure.length ? _react2.default.createElement(_filter2.default, {
|
|
1093
|
+
ref: this._filterRef,
|
|
1082
1094
|
initialFilters: this.props.initialFilters,
|
|
1083
1095
|
filtersStructure: this.props.filtersStructure,
|
|
1084
1096
|
selectedFilters: this.props.selectedFilters,
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@desynova-digital/components",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.7.0",
|
|
4
4
|
"description": "Components for Desynova Digital",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"author": "desynova-digital",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"repository": "desynova-digital",
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@desynova-digital/tokens": "8.
|
|
10
|
+
"@desynova-digital/tokens": "8.7.0",
|
|
11
11
|
"prop-types": "^15.7.2",
|
|
12
12
|
"styled-components": "^4.3.2"
|
|
13
13
|
},
|