@imposium-hub/components 2.11.6-0 → 2.12.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/dist/cjs/components/advanced-number-field/AdvancedNumberField.d.ts +0 -8
- package/dist/cjs/components/advanced-number-field/AdvancedNumberField.js +2 -2
- package/dist/cjs/components/advanced-number-field/AdvancedNumberField.js.map +1 -1
- package/dist/cjs/components/app-wrapper/AppWrapper.js +22 -2
- package/dist/cjs/components/app-wrapper/AppWrapper.js.map +1 -1
- package/dist/cjs/components/button-group-field/ButtonGroupField.d.ts +0 -9
- package/dist/cjs/components/button-group-field/ButtonGroupField.js +20 -38
- package/dist/cjs/components/button-group-field/ButtonGroupField.js.map +1 -1
- package/dist/cjs/components/checkbox-field/CheckboxField.d.ts +0 -8
- package/dist/cjs/components/checkbox-field/CheckboxField.js +2 -2
- package/dist/cjs/components/checkbox-field/CheckboxField.js.map +1 -1
- package/dist/cjs/components/color-field/ColorField.d.ts +0 -8
- package/dist/cjs/components/color-field/ColorField.js +2 -2
- package/dist/cjs/components/color-field/ColorField.js.map +1 -1
- package/dist/cjs/components/config-variable-button/ConfigVariableButton.d.ts +1 -42
- package/dist/cjs/components/controlled-list/ControlledList.d.ts +2 -6
- package/dist/cjs/components/controlled-list/ControlledList.js +6 -22
- package/dist/cjs/components/controlled-list/ControlledList.js.map +1 -1
- package/dist/cjs/components/data-table/DataTable.d.ts +4 -0
- package/dist/cjs/components/data-table/DataTable.js +5 -1
- package/dist/cjs/components/data-table/DataTable.js.map +1 -1
- package/dist/cjs/components/data-table/Paginator.d.ts +4 -0
- package/dist/cjs/components/data-table/Paginator.js +26 -10
- package/dist/cjs/components/data-table/Paginator.js.map +1 -1
- package/dist/cjs/components/field-wrapper/FieldWrapper.d.ts +0 -11
- package/dist/cjs/components/field-wrapper/FieldWrapper.js +6 -25
- package/dist/cjs/components/field-wrapper/FieldWrapper.js.map +1 -1
- package/dist/cjs/components/number-field/NumberField.d.ts +0 -9
- package/dist/cjs/components/number-field/NumberField.js +5 -2
- package/dist/cjs/components/number-field/NumberField.js.map +1 -1
- package/dist/cjs/components/select-field/SelectField.d.ts +0 -8
- package/dist/cjs/components/select-field/SelectField.js +2 -2
- package/dist/cjs/components/select-field/SelectField.js.map +1 -1
- package/dist/cjs/constants/copy.d.ts +0 -3
- package/dist/cjs/constants/copy.js +1 -4
- package/dist/cjs/constants/copy.js.map +1 -1
- package/dist/cjs/constants/icons.d.ts +0 -2
- package/dist/cjs/constants/icons.js +1 -3
- package/dist/cjs/constants/icons.js.map +1 -1
- package/dist/cjs/constants/variables.d.ts +0 -4
- package/dist/cjs/constants/variables.js +1 -13
- package/dist/cjs/constants/variables.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -6
- package/dist/cjs/index.js +1 -9
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/services/API.d.ts +4 -0
- package/dist/cjs/services/API.js +35 -0
- package/dist/cjs/services/API.js.map +1 -1
- package/dist/esm/components/advanced-number-field/AdvancedNumberField.d.ts +0 -8
- package/dist/esm/components/advanced-number-field/AdvancedNumberField.js +2 -2
- package/dist/esm/components/advanced-number-field/AdvancedNumberField.js.map +1 -1
- package/dist/esm/components/app-wrapper/AppWrapper.js +22 -2
- package/dist/esm/components/app-wrapper/AppWrapper.js.map +1 -1
- package/dist/esm/components/button-group-field/ButtonGroupField.d.ts +0 -9
- package/dist/esm/components/button-group-field/ButtonGroupField.js +20 -38
- package/dist/esm/components/button-group-field/ButtonGroupField.js.map +1 -1
- package/dist/esm/components/checkbox-field/CheckboxField.d.ts +0 -8
- package/dist/esm/components/checkbox-field/CheckboxField.js +2 -2
- package/dist/esm/components/checkbox-field/CheckboxField.js.map +1 -1
- package/dist/esm/components/color-field/ColorField.d.ts +0 -8
- package/dist/esm/components/color-field/ColorField.js +2 -2
- package/dist/esm/components/color-field/ColorField.js.map +1 -1
- package/dist/esm/components/config-variable-button/ConfigVariableButton.d.ts +1 -42
- package/dist/esm/components/controlled-list/ControlledList.d.ts +2 -6
- package/dist/esm/components/controlled-list/ControlledList.js +7 -24
- package/dist/esm/components/controlled-list/ControlledList.js.map +1 -1
- package/dist/esm/components/data-table/DataTable.d.ts +4 -0
- package/dist/esm/components/data-table/DataTable.js +5 -1
- package/dist/esm/components/data-table/DataTable.js.map +1 -1
- package/dist/esm/components/data-table/Paginator.d.ts +4 -0
- package/dist/esm/components/data-table/Paginator.js +26 -10
- package/dist/esm/components/data-table/Paginator.js.map +1 -1
- package/dist/esm/components/field-wrapper/FieldWrapper.d.ts +0 -11
- package/dist/esm/components/field-wrapper/FieldWrapper.js +6 -24
- package/dist/esm/components/field-wrapper/FieldWrapper.js.map +1 -1
- package/dist/esm/components/number-field/NumberField.d.ts +0 -9
- package/dist/esm/components/number-field/NumberField.js +5 -2
- package/dist/esm/components/number-field/NumberField.js.map +1 -1
- package/dist/esm/components/select-field/SelectField.d.ts +0 -8
- package/dist/esm/components/select-field/SelectField.js +2 -2
- package/dist/esm/components/select-field/SelectField.js.map +1 -1
- package/dist/esm/constants/copy.d.ts +0 -3
- package/dist/esm/constants/copy.js +0 -3
- package/dist/esm/constants/copy.js.map +1 -1
- package/dist/esm/constants/icons.d.ts +0 -2
- package/dist/esm/constants/icons.js +2 -4
- package/dist/esm/constants/icons.js.map +1 -1
- package/dist/esm/constants/variables.d.ts +0 -4
- package/dist/esm/constants/variables.js +0 -11
- package/dist/esm/constants/variables.js.map +1 -1
- package/dist/esm/index.d.ts +2 -6
- package/dist/esm/index.js +1 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/services/API.d.ts +4 -0
- package/dist/esm/services/API.js +35 -0
- package/dist/esm/services/API.js.map +1 -1
- package/dist/styles.css +13 -125
- package/dist/styles.less +209 -365
- package/less/components/button.less +1 -5
- package/less/components/controlled-list.less +13 -118
- package/less/components/dropdown.less +0 -3
- package/less/components/font-picker.less +14 -18
- package/less/components/form-field.less +182 -224
- package/package.json +2 -3
- package/src/components/advanced-number-field/AdvancedNumberField.tsx +4 -29
- package/src/components/app-wrapper/AppWrapper.tsx +30 -2
- package/src/components/button-group-field/ButtonGroupField.tsx +39 -110
- package/src/components/checkbox-field/CheckboxField.tsx +3 -36
- package/src/components/color-field/ColorField.tsx +4 -29
- package/src/components/controlled-list/ControlledList.tsx +14 -62
- package/src/components/data-table/DataTable.tsx +10 -1
- package/src/components/data-table/Paginator.tsx +54 -25
- package/src/components/field-wrapper/FieldWrapper.tsx +6 -80
- package/src/components/number-field/NumberField.tsx +8 -34
- package/src/components/select-field/SelectField.tsx +4 -29
- package/src/constants/copy.ts +0 -4
- package/src/constants/icons.tsx +1 -6
- package/src/constants/variables.ts +0 -16
- package/src/index.ts +2 -11
- package/src/services/API.ts +57 -0
- package/src/components/config-variable-button/ConfigVariableButton.tsx +0 -141
- package/src/components/font-field/FontField.tsx +0 -78
- package/src/components/icon-toggle/IconToggle.tsx +0 -63
- package/src/components/text-area-autocomplete/TextAreaAutocomplete.tsx +0 -78
- package/src/components/variables-dropdown/VariableDropdown.tsx +0 -98
- package/src/constants/fonts.ts +0 -296
|
@@ -9,6 +9,7 @@ import { replaceRoute } from '../../utils/routing';
|
|
|
9
9
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
10
10
|
import { faExclamationTriangle } from '@fortawesome/pro-light-svg-icons';
|
|
11
11
|
import { initPendo } from '../../utils/pendo';
|
|
12
|
+
import { TOKEN_TYPE, FlagsProvider } from '@innovid/feature-flags-react';
|
|
12
13
|
|
|
13
14
|
export interface IAppWrapperProps {
|
|
14
15
|
appLabel: string;
|
|
@@ -63,6 +64,15 @@ export const AppWrapper: React.FC<IAppWrapperProps> = (props) => {
|
|
|
63
64
|
const { isAuthenticated, isLoading, getAccessTokenSilently, loginWithRedirect, logout, user } =
|
|
64
65
|
useAuth0();
|
|
65
66
|
const [errorState, setErrorState] = React.useState(null);
|
|
67
|
+
const [auth0Token, setAuth0Token] = React.useState(null);
|
|
68
|
+
|
|
69
|
+
React.useEffect(() => {
|
|
70
|
+
void getAccessTokenSilently().then((token) => {
|
|
71
|
+
if (token) {
|
|
72
|
+
setAuth0Token(token);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}, []);
|
|
66
76
|
|
|
67
77
|
React.useEffect(() => {
|
|
68
78
|
if (user) {
|
|
@@ -275,14 +285,24 @@ export const AppWrapper: React.FC<IAppWrapperProps> = (props) => {
|
|
|
275
285
|
innerContent = (
|
|
276
286
|
<AppWrapperErrors
|
|
277
287
|
error={errorState}
|
|
278
|
-
email={user
|
|
288
|
+
email={user?.userEmail}
|
|
279
289
|
/>
|
|
280
290
|
);
|
|
281
291
|
} else if (!blockRender) {
|
|
282
292
|
innerContent = children;
|
|
283
293
|
}
|
|
284
294
|
|
|
285
|
-
|
|
295
|
+
const featureFlagsConfig = {
|
|
296
|
+
gatewayUrl: baseUrl,
|
|
297
|
+
gatewayToken: auth0Token,
|
|
298
|
+
projectId: 'prj_40599w13mko56suv',
|
|
299
|
+
tokenType: TOKEN_TYPE.AUTH0_BEARER,
|
|
300
|
+
initialContext: {
|
|
301
|
+
email: user?.userEmail
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
const content = (
|
|
286
306
|
<div
|
|
287
307
|
id='app'
|
|
288
308
|
className='app'>
|
|
@@ -307,6 +327,14 @@ export const AppWrapper: React.FC<IAppWrapperProps> = (props) => {
|
|
|
307
327
|
<ConfirmModal />
|
|
308
328
|
</div>
|
|
309
329
|
);
|
|
330
|
+
|
|
331
|
+
const render = auth0Token ? (
|
|
332
|
+
<FlagsProvider config={featureFlagsConfig}>{content}</FlagsProvider>
|
|
333
|
+
) : (
|
|
334
|
+
content
|
|
335
|
+
);
|
|
336
|
+
|
|
337
|
+
return render;
|
|
310
338
|
};
|
|
311
339
|
|
|
312
340
|
export const ERROR_HEADINGS = {
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import FieldWrapper from '../field-wrapper/FieldWrapper';
|
|
3
3
|
import { IToolTipConfig, renderTooltip, renderTooltipProps } from '../Tooltip';
|
|
4
|
-
import { getOverrideHandler } from '../../constants/variables';
|
|
5
|
-
import Button from '../button/Button';
|
|
6
|
-
import { ICON_TIMES } from '../../constants/icons';
|
|
7
4
|
|
|
8
5
|
interface IButtonGroupOption {
|
|
9
6
|
value: string | boolean;
|
|
@@ -25,15 +22,6 @@ interface IButtonGroupFieldProps {
|
|
|
25
22
|
labelPosition?: string;
|
|
26
23
|
labelWidth?: string | number;
|
|
27
24
|
disabled?: boolean;
|
|
28
|
-
|
|
29
|
-
override?: any;
|
|
30
|
-
showCopyPropIds?: boolean;
|
|
31
|
-
propKey?: string;
|
|
32
|
-
setOverride?(e): void;
|
|
33
|
-
removeOverride?(): void;
|
|
34
|
-
inventory?: any;
|
|
35
|
-
onClose?(e: boolean): void;
|
|
36
|
-
activeOverride?: string;
|
|
37
25
|
}
|
|
38
26
|
|
|
39
27
|
class ButtonGroupField extends React.PureComponent<IButtonGroupFieldProps> {
|
|
@@ -62,114 +50,55 @@ class ButtonGroupField extends React.PureComponent<IButtonGroupFieldProps> {
|
|
|
62
50
|
}
|
|
63
51
|
};
|
|
64
52
|
|
|
65
|
-
public renderRemoveButton() {
|
|
66
|
-
const { removeOverride } = this.props;
|
|
67
|
-
return (
|
|
68
|
-
<div className='item'>
|
|
69
|
-
<div className='buttons'>
|
|
70
|
-
<Button
|
|
71
|
-
style='subtle'
|
|
72
|
-
color='danger'
|
|
73
|
-
onClick={() => removeOverride()}>
|
|
74
|
-
{ICON_TIMES}
|
|
75
|
-
</Button>
|
|
76
|
-
</div>
|
|
77
|
-
</div>
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
53
|
public render = (): JSX.Element => {
|
|
82
|
-
const {
|
|
83
|
-
|
|
84
|
-
width,
|
|
85
|
-
tooltip,
|
|
86
|
-
info,
|
|
87
|
-
labelPosition,
|
|
88
|
-
labelWidth,
|
|
89
|
-
disabled,
|
|
90
|
-
propKey,
|
|
91
|
-
showCopyPropIds,
|
|
92
|
-
inventory,
|
|
93
|
-
override,
|
|
94
|
-
setOverride,
|
|
95
|
-
onClose,
|
|
96
|
-
onChange,
|
|
97
|
-
activeOverride,
|
|
98
|
-
removeOverride
|
|
99
|
-
} = this.props;
|
|
100
|
-
|
|
54
|
+
const { value, label, options, width, tooltip, info, labelPosition, labelWidth, disabled } =
|
|
55
|
+
this.props;
|
|
101
56
|
const optionStyle: any = { width: `${100 / options.length}%` };
|
|
102
57
|
|
|
103
|
-
const inputField = () => {
|
|
104
|
-
const { hasOverride, previewItem } = getOverrideHandler(propKey, override, inventory);
|
|
105
|
-
const value = hasOverride ? previewItem : this.props.value;
|
|
106
|
-
return (
|
|
107
|
-
<div className={`${hasOverride ? 'override_variable text' : ''}`}>
|
|
108
|
-
<div className='button-group'>
|
|
109
|
-
{options.map((option, i) => {
|
|
110
|
-
const optionKey = option.value;
|
|
111
|
-
const optionLabel = option.label;
|
|
112
|
-
const icon = option.icon ? option.icon : null;
|
|
113
|
-
const tooltipId = `${optionKey}-${i}`;
|
|
114
|
-
const activeOption = optionKey === value;
|
|
115
|
-
const activeClass = activeOption
|
|
116
|
-
? 'active'
|
|
117
|
-
: disabled
|
|
118
|
-
? 'disabled'
|
|
119
|
-
: '';
|
|
120
|
-
const onClick = !activeOption
|
|
121
|
-
? () => {
|
|
122
|
-
onChange(optionKey);
|
|
123
|
-
}
|
|
124
|
-
: null;
|
|
125
|
-
|
|
126
|
-
return (
|
|
127
|
-
<div
|
|
128
|
-
key={`option-${optionKey}`}
|
|
129
|
-
style={optionStyle}
|
|
130
|
-
className={`button-group-option ${activeClass} ${
|
|
131
|
-
hasOverride ? 'disabled' : ''
|
|
132
|
-
}`}
|
|
133
|
-
{...renderTooltipProps(tooltipId, option.tooltip)}
|
|
134
|
-
onClick={
|
|
135
|
-
typeof option.onDoubleClick === 'function'
|
|
136
|
-
? () =>
|
|
137
|
-
this.handleMultipleClicks(
|
|
138
|
-
onClick,
|
|
139
|
-
option.onDoubleClick
|
|
140
|
-
)
|
|
141
|
-
: onClick
|
|
142
|
-
}>
|
|
143
|
-
{!icon ? optionLabel : icon}
|
|
144
|
-
{renderTooltip(tooltipId, option.tooltip)}
|
|
145
|
-
</div>
|
|
146
|
-
);
|
|
147
|
-
})}
|
|
148
|
-
</div>
|
|
149
|
-
</div>
|
|
150
|
-
);
|
|
151
|
-
};
|
|
152
|
-
|
|
153
58
|
return (
|
|
154
59
|
<FieldWrapper
|
|
155
60
|
customClass='button-group-field'
|
|
156
|
-
label={
|
|
61
|
+
label={label}
|
|
157
62
|
tooltip={tooltip}
|
|
158
63
|
info={info}
|
|
159
64
|
labelPosition={labelPosition}
|
|
160
65
|
width={width}
|
|
161
|
-
labelWidth={labelWidth}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
66
|
+
labelWidth={labelWidth}>
|
|
67
|
+
<div className='button-group'>
|
|
68
|
+
{options.map((option, i) => {
|
|
69
|
+
const optionKey = option.value;
|
|
70
|
+
const optionLabel = option.label;
|
|
71
|
+
const icon = option.icon ? option.icon : null;
|
|
72
|
+
const tooltipId = `${optionKey}-${i}`;
|
|
73
|
+
const activeOption = optionKey === value;
|
|
74
|
+
const activeClass = activeOption ? 'active' : disabled ? 'disabled' : '';
|
|
75
|
+
const onClick = !activeOption
|
|
76
|
+
? () => {
|
|
77
|
+
this.props.onChange(optionKey);
|
|
78
|
+
}
|
|
79
|
+
: null;
|
|
80
|
+
|
|
81
|
+
return (
|
|
82
|
+
<div
|
|
83
|
+
key={`option-${optionKey}`}
|
|
84
|
+
style={optionStyle}
|
|
85
|
+
className={`button-group-option ${activeClass}`}
|
|
86
|
+
{...renderTooltipProps(tooltipId, option.tooltip)}
|
|
87
|
+
onClick={
|
|
88
|
+
typeof option.onDoubleClick === 'function'
|
|
89
|
+
? () =>
|
|
90
|
+
this.handleMultipleClicks(
|
|
91
|
+
onClick,
|
|
92
|
+
option.onDoubleClick
|
|
93
|
+
)
|
|
94
|
+
: onClick
|
|
95
|
+
}>
|
|
96
|
+
{!icon ? optionLabel : icon}
|
|
97
|
+
{renderTooltip(tooltipId, option.tooltip)}
|
|
98
|
+
</div>
|
|
99
|
+
);
|
|
100
|
+
})}
|
|
101
|
+
</div>
|
|
173
102
|
</FieldWrapper>
|
|
174
103
|
);
|
|
175
104
|
};
|
|
@@ -13,15 +13,6 @@ interface ICheckboxFieldProps {
|
|
|
13
13
|
info?: string;
|
|
14
14
|
labelPosition?: string;
|
|
15
15
|
labelWidth?: string | number;
|
|
16
|
-
|
|
17
|
-
override?: any;
|
|
18
|
-
showCopyPropIds?: boolean;
|
|
19
|
-
propKey?: string;
|
|
20
|
-
setOverride?(e): void;
|
|
21
|
-
removeOverride?(): void;
|
|
22
|
-
inventory?: any;
|
|
23
|
-
onClose?(e: boolean): void;
|
|
24
|
-
activeOverride?: string;
|
|
25
16
|
}
|
|
26
17
|
|
|
27
18
|
class CheckboxField extends React.PureComponent<ICheckboxFieldProps> {
|
|
@@ -37,42 +28,18 @@ class CheckboxField extends React.PureComponent<ICheckboxFieldProps> {
|
|
|
37
28
|
}
|
|
38
29
|
|
|
39
30
|
public render() {
|
|
40
|
-
const {
|
|
41
|
-
value,
|
|
42
|
-
width,
|
|
43
|
-
tooltip,
|
|
44
|
-
info,
|
|
45
|
-
labelPosition,
|
|
46
|
-
labelWidth,
|
|
47
|
-
showCopyPropIds,
|
|
48
|
-
propKey,
|
|
49
|
-
override,
|
|
50
|
-
inventory,
|
|
51
|
-
setOverride,
|
|
52
|
-
removeOverride,
|
|
53
|
-
onClose,
|
|
54
|
-
activeOverride
|
|
55
|
-
} = this.props;
|
|
31
|
+
const { value, label, width, tooltip, info, labelPosition, labelWidth } = this.props;
|
|
56
32
|
const icon = value === true ? ICON_CHECK : null;
|
|
57
33
|
|
|
58
34
|
return (
|
|
59
35
|
<FieldWrapper
|
|
60
36
|
customClass='checkbox-field'
|
|
61
|
-
label={
|
|
37
|
+
label={label}
|
|
62
38
|
tooltip={tooltip}
|
|
63
39
|
info={info}
|
|
64
40
|
labelPosition={labelPosition}
|
|
65
41
|
labelWidth={labelWidth}
|
|
66
|
-
width={width}
|
|
67
|
-
propKey={propKey}
|
|
68
|
-
showCopyPropIds={showCopyPropIds}
|
|
69
|
-
inventory={inventory}
|
|
70
|
-
setOverride={setOverride}
|
|
71
|
-
onClose={onClose}
|
|
72
|
-
activeOverride={activeOverride}
|
|
73
|
-
removeOverride={removeOverride}
|
|
74
|
-
override={override}
|
|
75
|
-
type='boolean'>
|
|
42
|
+
width={width}>
|
|
76
43
|
<div
|
|
77
44
|
className='checkbox'
|
|
78
45
|
onClick={(e) => this.toggle(e)}>
|
|
@@ -19,15 +19,6 @@ interface IColorFieldProps {
|
|
|
19
19
|
pickerPosition?: string;
|
|
20
20
|
labelWidth?: string | number;
|
|
21
21
|
disabled?: boolean;
|
|
22
|
-
|
|
23
|
-
override?: any;
|
|
24
|
-
showCopyPropIds?: boolean;
|
|
25
|
-
propKey?: string;
|
|
26
|
-
setOverride?(e): void;
|
|
27
|
-
removeOverride?(): void;
|
|
28
|
-
inventory?: any;
|
|
29
|
-
onClose?(e: boolean): void;
|
|
30
|
-
activeOverride?: string;
|
|
31
22
|
}
|
|
32
23
|
|
|
33
24
|
interface IColorFieldState {
|
|
@@ -112,6 +103,7 @@ class ColorField extends React.PureComponent<IColorFieldProps, IColorFieldState>
|
|
|
112
103
|
|
|
113
104
|
public render() {
|
|
114
105
|
const {
|
|
106
|
+
label,
|
|
115
107
|
width,
|
|
116
108
|
buttons,
|
|
117
109
|
tooltip,
|
|
@@ -122,15 +114,7 @@ class ColorField extends React.PureComponent<IColorFieldProps, IColorFieldState>
|
|
|
122
114
|
labelPosition,
|
|
123
115
|
pickerPosition,
|
|
124
116
|
labelWidth,
|
|
125
|
-
disabled
|
|
126
|
-
override,
|
|
127
|
-
showCopyPropIds,
|
|
128
|
-
propKey,
|
|
129
|
-
inventory,
|
|
130
|
-
setOverride,
|
|
131
|
-
removeOverride,
|
|
132
|
-
onClose,
|
|
133
|
-
activeOverride
|
|
117
|
+
disabled
|
|
134
118
|
} = this.props;
|
|
135
119
|
const { pickerOpen } = this.state;
|
|
136
120
|
const disableAlpha = !enableAlpha;
|
|
@@ -157,22 +141,13 @@ class ColorField extends React.PureComponent<IColorFieldProps, IColorFieldState>
|
|
|
157
141
|
return (
|
|
158
142
|
<FieldWrapper
|
|
159
143
|
customClass='color-field'
|
|
160
|
-
label={
|
|
144
|
+
label={label}
|
|
161
145
|
tooltip={tooltip}
|
|
162
146
|
buttons={buttons}
|
|
163
147
|
info={info}
|
|
164
148
|
labelPosition={labelPosition}
|
|
165
149
|
labelWidth={labelWidth}
|
|
166
|
-
width={width}
|
|
167
|
-
propKey={propKey}
|
|
168
|
-
showCopyPropIds={showCopyPropIds}
|
|
169
|
-
inventory={inventory}
|
|
170
|
-
setOverride={setOverride}
|
|
171
|
-
onClose={onClose}
|
|
172
|
-
activeOverride={activeOverride}
|
|
173
|
-
removeOverride={removeOverride}
|
|
174
|
-
override={override}
|
|
175
|
-
type='color'>
|
|
150
|
+
width={width}>
|
|
176
151
|
<div style={transparentBg}>
|
|
177
152
|
<div
|
|
178
153
|
className='swatch'
|
|
@@ -1,23 +1,17 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import Button from '../button/Button';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export type ControlListType = 'text' | 'number' | 'color' | 'textarea' | 'boolean' | 'icon';
|
|
3
|
+
import { ICON_TIMES } from '../../constants/icons';
|
|
6
4
|
|
|
7
5
|
interface IControlledListProps {
|
|
8
6
|
items?: any[];
|
|
9
7
|
removable?: boolean;
|
|
10
8
|
onRemove?(index): void;
|
|
11
|
-
type?: ControlListType;
|
|
12
|
-
content?: any;
|
|
13
|
-
propKey?: string;
|
|
14
|
-
previewMultiplier?: number;
|
|
15
9
|
}
|
|
16
10
|
|
|
17
11
|
class ControlledList extends React.PureComponent<IControlledListProps> {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
private inputRef: any;
|
|
13
|
+
|
|
14
|
+
private submitHandler: any;
|
|
21
15
|
|
|
22
16
|
public renderRemoveButton(index) {
|
|
23
17
|
const { removable } = this.props;
|
|
@@ -37,61 +31,19 @@ class ControlledList extends React.PureComponent<IControlledListProps> {
|
|
|
37
31
|
}
|
|
38
32
|
|
|
39
33
|
public render() {
|
|
40
|
-
const { items
|
|
34
|
+
const { items } = this.props;
|
|
41
35
|
let buttons: JSX.Element[];
|
|
36
|
+
|
|
42
37
|
if (items) {
|
|
43
38
|
buttons = items.map((item, i) => {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
key={`item-${i}`}>
|
|
53
|
-
<p>{previewValue ? `{{ ${previewValue} }}` : 'PREVIEW NOT SET'}</p>
|
|
54
|
-
</div>
|
|
55
|
-
);
|
|
56
|
-
case 'textarea':
|
|
57
|
-
return (
|
|
58
|
-
<div
|
|
59
|
-
className='item textarea rta'
|
|
60
|
-
key={`item-${i}`}>
|
|
61
|
-
<textarea
|
|
62
|
-
className='rta__textarea'
|
|
63
|
-
value={item}
|
|
64
|
-
disabled={true}
|
|
65
|
-
/>
|
|
66
|
-
</div>
|
|
67
|
-
);
|
|
68
|
-
case 'boolean':
|
|
69
|
-
const icon = content ? ICON_BRACKET_CURLY : item ? ICON_CHECK : null;
|
|
70
|
-
return (
|
|
71
|
-
<div
|
|
72
|
-
className={`item ${content ? 'icon-toggle' : 'checkbox'}`}
|
|
73
|
-
key={`item-${i}`}>
|
|
74
|
-
{icon}
|
|
75
|
-
</div>
|
|
76
|
-
);
|
|
77
|
-
case 'color':
|
|
78
|
-
return (
|
|
79
|
-
<div
|
|
80
|
-
className='item color'
|
|
81
|
-
key={`item-${i}`}
|
|
82
|
-
style={{ backgroundColor: item }}
|
|
83
|
-
/>
|
|
84
|
-
);
|
|
85
|
-
default:
|
|
86
|
-
return (
|
|
87
|
-
<div
|
|
88
|
-
className='item'
|
|
89
|
-
key={`item-${i}`}>
|
|
90
|
-
{item}
|
|
91
|
-
{this.renderRemoveButton(i)}
|
|
92
|
-
</div>
|
|
93
|
-
);
|
|
94
|
-
}
|
|
39
|
+
return (
|
|
40
|
+
<div
|
|
41
|
+
className='item'
|
|
42
|
+
key={`item-${i}`}>
|
|
43
|
+
{item}
|
|
44
|
+
{this.renderRemoveButton(i)}
|
|
45
|
+
</div>
|
|
46
|
+
);
|
|
95
47
|
});
|
|
96
48
|
}
|
|
97
49
|
|
|
@@ -79,6 +79,8 @@ interface IDataTableProps {
|
|
|
79
79
|
// controlled sorting props, use internal sorting if not set
|
|
80
80
|
sortBy?: any[];
|
|
81
81
|
onSort?: (sortBy: any[]) => void;
|
|
82
|
+
maxItemsPerPage?: number;
|
|
83
|
+
minItemsPerPage?: number;
|
|
82
84
|
|
|
83
85
|
// controlled selection props
|
|
84
86
|
highlightBy?: any;
|
|
@@ -92,6 +94,9 @@ interface IDataTableProps {
|
|
|
92
94
|
expandTags?: boolean;
|
|
93
95
|
|
|
94
96
|
keyboardNav?: boolean;
|
|
97
|
+
|
|
98
|
+
useSimplePagination?: boolean;
|
|
99
|
+
hasMore?: boolean;
|
|
95
100
|
}
|
|
96
101
|
|
|
97
102
|
const processColumnData = (freshColumns): any[] => {
|
|
@@ -537,7 +542,11 @@ const DataTable: React.FC<IDataTableProps> = (props: IDataTableProps) => {
|
|
|
537
542
|
? () => props.onPage(props.currentPage - 1, pageSize)
|
|
538
543
|
: previousPage,
|
|
539
544
|
itemsPerPage: props.itemsPerPage,
|
|
540
|
-
onItemsPerPage: (i) => props.onItemsPerPage(i)
|
|
545
|
+
onItemsPerPage: (i) => props.onItemsPerPage(i),
|
|
546
|
+
maxItemsPerPage: props.maxItemsPerPage,
|
|
547
|
+
minItemsPerPage: props.minItemsPerPage,
|
|
548
|
+
useSimplePagination: props.useSimplePagination,
|
|
549
|
+
hasMore: props.hasMore
|
|
541
550
|
}}
|
|
542
551
|
/>
|
|
543
552
|
)}
|
|
@@ -25,6 +25,10 @@ interface IPaginatorProps {
|
|
|
25
25
|
setPageSize: (size: number) => void;
|
|
26
26
|
itemsPerPage: number;
|
|
27
27
|
onItemsPerPage: (size: number) => void;
|
|
28
|
+
maxItemsPerPage?: number;
|
|
29
|
+
minItemsPerPage?: number;
|
|
30
|
+
useSimplePagination?: boolean;
|
|
31
|
+
hasMore?: boolean;
|
|
28
32
|
}
|
|
29
33
|
|
|
30
34
|
const Paginator: React.FC<IPaginatorProps> = ({
|
|
@@ -38,7 +42,11 @@ const Paginator: React.FC<IPaginatorProps> = ({
|
|
|
38
42
|
previousPage,
|
|
39
43
|
nextPage,
|
|
40
44
|
itemsPerPage,
|
|
41
|
-
onItemsPerPage
|
|
45
|
+
onItemsPerPage,
|
|
46
|
+
maxItemsPerPage,
|
|
47
|
+
minItemsPerPage,
|
|
48
|
+
useSimplePagination,
|
|
49
|
+
hasMore
|
|
42
50
|
}) => {
|
|
43
51
|
const [getPageIndex, setPageIndex] = React.useState<number>(pageIndex);
|
|
44
52
|
const [getItemsPerPage, setItemsPerPage] = React.useState<number>(itemsPerPage);
|
|
@@ -98,43 +106,60 @@ const Paginator: React.FC<IPaginatorProps> = ({
|
|
|
98
106
|
return (
|
|
99
107
|
<section className='ip-table-pagination'>
|
|
100
108
|
<span>
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
+
{!useSimplePagination && (
|
|
110
|
+
<Button
|
|
111
|
+
style='subtle'
|
|
112
|
+
size='small'
|
|
113
|
+
tooltip='Go to first page'
|
|
114
|
+
disabled={!canPreviousPage}
|
|
115
|
+
onClick={() => gotoPage(1, pageSize)}>
|
|
116
|
+
{ICON_ANGLE_DOUBLE_LEFT}
|
|
117
|
+
</Button>
|
|
118
|
+
)}
|
|
109
119
|
<Button
|
|
110
120
|
style='subtle'
|
|
111
121
|
size='small'
|
|
112
122
|
tooltip='Go to previous page'
|
|
113
|
-
disabled={!canPreviousPage}
|
|
114
|
-
onClick={() =>
|
|
123
|
+
disabled={(!canPreviousPage || !useSimplePagination) && getPageIndex === 1}
|
|
124
|
+
onClick={() => {
|
|
125
|
+
if (!useSimplePagination) {
|
|
126
|
+
previousPage();
|
|
127
|
+
} else {
|
|
128
|
+
gotoPage(getPageIndex - 1, pageSize);
|
|
129
|
+
}
|
|
130
|
+
}}>
|
|
115
131
|
{ICON_ANGLE_LEFT}
|
|
116
132
|
</Button>
|
|
117
133
|
<Button
|
|
118
134
|
style='subtle'
|
|
119
135
|
size='small'
|
|
120
136
|
tooltip='Go to next page'
|
|
121
|
-
disabled={!canNextPage}
|
|
122
|
-
onClick={() =>
|
|
137
|
+
disabled={(!canNextPage || !useSimplePagination) && !hasMore}
|
|
138
|
+
onClick={() => {
|
|
139
|
+
if (!useSimplePagination && !hasMore) {
|
|
140
|
+
nextPage();
|
|
141
|
+
} else {
|
|
142
|
+
gotoPage(getPageIndex + 1, pageSize);
|
|
143
|
+
}
|
|
144
|
+
}}>
|
|
123
145
|
{ICON_ANGLE_RIGHT}
|
|
124
146
|
</Button>
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
147
|
+
{!useSimplePagination && (
|
|
148
|
+
<Button
|
|
149
|
+
style='subtle'
|
|
150
|
+
size='small'
|
|
151
|
+
tooltip='Go to last page'
|
|
152
|
+
disabled={!canNextPage}
|
|
153
|
+
onClick={() => gotoPage(getPageCount, pageSize)}>
|
|
154
|
+
{ICON_ANGLE_DOUBLE_RIGHT}
|
|
155
|
+
</Button>
|
|
156
|
+
)}
|
|
133
157
|
|
|
134
158
|
<span>
|
|
135
159
|
{copy.table.page}
|
|
136
160
|
<strong>
|
|
137
|
-
{getPageIndex} of
|
|
161
|
+
{getPageIndex} {useSimplePagination ? '' : 'of'}{' '}
|
|
162
|
+
{!useSimplePagination ? getPageCount : ''}
|
|
138
163
|
</strong>
|
|
139
164
|
|
|
140
165
|
</span>
|
|
@@ -196,13 +221,17 @@ const Paginator: React.FC<IPaginatorProps> = ({
|
|
|
196
221
|
}}
|
|
197
222
|
onBlur={() => onItemsPerPageBlur()}
|
|
198
223
|
onKeyDown={(e) => onItemsPerPageKeyDown(e)}
|
|
224
|
+
max={maxItemsPerPage}
|
|
225
|
+
min={minItemsPerPage}
|
|
199
226
|
/>
|
|
200
227
|
</span>
|
|
201
228
|
</span>
|
|
202
229
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
230
|
+
{!useSimplePagination && (
|
|
231
|
+
<span className='total-assets'>
|
|
232
|
+
{copy.table.total} <strong>{totalItems || 0}</strong>
|
|
233
|
+
</span>
|
|
234
|
+
)}
|
|
206
235
|
</section>
|
|
207
236
|
);
|
|
208
237
|
};
|