@plone/volto 18.0.0-alpha.45 → 18.0.0-alpha.47
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/.eslintrc +19 -22
- package/CHANGELOG.md +62 -0
- package/locales/ca/LC_MESSAGES/volto.po +81 -13
- package/locales/ca.json +1 -1
- package/locales/de/LC_MESSAGES/volto.po +86 -18
- package/locales/de.json +1 -1
- package/locales/en/LC_MESSAGES/volto.po +81 -13
- package/locales/en.json +1 -1
- package/locales/es/LC_MESSAGES/volto.po +81 -13
- package/locales/es.json +1 -1
- package/locales/eu/LC_MESSAGES/volto.po +81 -13
- package/locales/eu.json +1 -1
- package/locales/fi/LC_MESSAGES/volto.po +81 -13
- package/locales/fi.json +1 -1
- package/locales/fr/LC_MESSAGES/volto.po +81 -13
- package/locales/fr.json +1 -1
- package/locales/hi/LC_MESSAGES/volto.po +81 -13
- package/locales/hi.json +1 -1
- package/locales/it/LC_MESSAGES/volto.po +81 -13
- package/locales/it.json +1 -1
- package/locales/ja/LC_MESSAGES/volto.po +81 -13
- package/locales/ja.json +1 -1
- package/locales/nl/LC_MESSAGES/volto.po +81 -13
- package/locales/nl.json +1 -1
- package/locales/pt/LC_MESSAGES/volto.po +81 -13
- package/locales/pt.json +1 -1
- package/locales/pt_BR/LC_MESSAGES/volto.po +81 -13
- package/locales/pt_BR.json +1 -1
- package/locales/ro/LC_MESSAGES/volto.po +81 -13
- package/locales/ro.json +1 -1
- package/locales/volto.pot +82 -14
- package/locales/zh_CN/LC_MESSAGES/volto.po +81 -13
- package/locales/zh_CN.json +1 -1
- package/package.json +11 -9
- package/razzle.config.js +8 -5
- package/src/actions/aliases/aliases.js +27 -7
- package/src/actions/aliases/aliases.test.js +1 -1
- package/src/components/manage/BlockChooser/BlockChooserSearch.jsx +0 -1
- package/src/components/manage/Contents/Contents.jsx +2 -0
- package/src/components/manage/Controlpanels/Aliases.jsx +499 -412
- package/src/components/manage/Controlpanels/Aliases.test.jsx +7 -0
- package/src/components/manage/Controlpanels/DatabaseInformation.jsx +1 -0
- package/src/components/manage/Controlpanels/UpgradeControlPanel.jsx +1 -0
- package/src/components/manage/Controlpanels/Users/UserGroupMembershipMatrix.jsx +14 -12
- package/src/components/manage/Edit/Edit.jsx +7 -3
- package/src/components/manage/Form/ModalForm.jsx +3 -1
- package/src/components/manage/Pluggable/Pluggable.test.js +3 -3
- package/src/components/manage/Sidebar/ObjectBrowserNav.jsx +1 -0
- package/src/components/manage/Toolbar/More.jsx +2 -2
- package/src/components/manage/Toolbar/PersonalTools.jsx +7 -7
- package/src/components/manage/Toolbar/PersonalTools.test.jsx +71 -0
- package/src/components/theme/Icon/Icon.stories.jsx +1 -0
- package/src/components/theme/Login/Login.jsx +1 -2
- package/src/components/theme/Widgets/ArrayWidget.jsx +2 -2
- package/src/constants/ActionTypes.js +1 -0
- package/src/express-middleware/static.js +2 -2
- package/src/helpers/Api/Api.js +12 -1
- package/src/helpers/Html/Html.jsx +1 -0
- package/src/middleware/api.js +3 -0
- package/src/reducers/content/content.js +12 -0
- package/src/start-server.js +2 -5
- package/types/actions/aliases/aliases.d.ts +8 -1
- package/types/components/manage/Contents/__mocks__/index.d.ts +0 -1
- package/types/components/manage/Controlpanels/Relations/RelationsMatrix.d.ts +1 -1
- package/types/components/manage/Controlpanels/index.d.ts +0 -1
- package/types/components/manage/Form/__mocks__/index.d.ts +0 -1
- package/types/components/manage/Form/index.d.ts +0 -1
- package/types/components/manage/Multilingual/ManageTranslations.d.ts +1 -1
- package/types/components/manage/Sidebar/ObjectBrowser.d.ts +1 -1
- package/types/components/manage/Widgets/InternalUrlWidget.d.ts +1 -1
- package/types/components/manage/Widgets/UrlWidget.d.ts +1 -1
- package/types/components/manage/Widgets/__mocks__/index.d.ts +0 -1
- package/types/components/manage/Widgets/index.d.ts +2 -3
- package/types/config/slots.d.ts +1 -1
- package/types/constants/ActionTypes.d.ts +1 -0
- package/types/helpers/Helmet/Helmet.d.ts +1 -1
|
@@ -150,6 +150,7 @@ const DatabaseInformation = () => {
|
|
|
150
150
|
</Table.Row>
|
|
151
151
|
</Table.Header>
|
|
152
152
|
{databaseInformation.cache_detail_length.map((item) => (
|
|
153
|
+
// eslint-disable-next-line react/jsx-key
|
|
153
154
|
<Table.Row>
|
|
154
155
|
<Table.Cell>{item.connection}</Table.Cell>
|
|
155
156
|
<Table.Cell>{item.ngsize}</Table.Cell>
|
|
@@ -188,18 +188,20 @@ const UserGroupMembershipMatrix = ({ many_users, many_groups }) => {
|
|
|
188
188
|
</Form>
|
|
189
189
|
{(!many_groups || query_group_filter.length > 1) &&
|
|
190
190
|
filter_options?.map((filter_option) => (
|
|
191
|
-
<
|
|
192
|
-
<
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
191
|
+
<React.Fragment key={filter_option.value}>
|
|
192
|
+
<Form.Field>
|
|
193
|
+
<Checkbox
|
|
194
|
+
name={`filter_option_${filter_option.value}`}
|
|
195
|
+
key={filter_option.value}
|
|
196
|
+
title={filter_option.label}
|
|
197
|
+
label={filter_option.label}
|
|
198
|
+
defaultChecked={false}
|
|
199
|
+
onChange={(event, { checked }) => {
|
|
200
|
+
onSelectOptionHandler(filter_option, checked);
|
|
201
|
+
}}
|
|
202
|
+
/>
|
|
203
|
+
</Form.Field>
|
|
204
|
+
</React.Fragment>
|
|
203
205
|
))}
|
|
204
206
|
</div>
|
|
205
207
|
<UserGroupMembershipListing
|
|
@@ -346,11 +346,15 @@ class Edit extends Component {
|
|
|
346
346
|
<>
|
|
347
347
|
<Helmet
|
|
348
348
|
title={
|
|
349
|
-
this.props?.
|
|
349
|
+
this.props?.content?.title
|
|
350
350
|
? this.props.intl.formatMessage(messages.edit, {
|
|
351
|
-
title: this.props
|
|
351
|
+
title: this.props?.content?.title,
|
|
352
352
|
})
|
|
353
|
-
:
|
|
353
|
+
: this.props?.schema?.title
|
|
354
|
+
? this.props.intl.formatMessage(messages.edit, {
|
|
355
|
+
title: this.props.schema.title,
|
|
356
|
+
})
|
|
357
|
+
: null
|
|
354
358
|
}
|
|
355
359
|
>
|
|
356
360
|
{this.props.content?.language && (
|
|
@@ -70,6 +70,7 @@ class ModalForm extends Component {
|
|
|
70
70
|
required: PropTypes.arrayOf(PropTypes.string),
|
|
71
71
|
}).isRequired,
|
|
72
72
|
title: PropTypes.string.isRequired,
|
|
73
|
+
description: PropTypes.objectOf(PropTypes.any),
|
|
73
74
|
formData: PropTypes.objectOf(PropTypes.any),
|
|
74
75
|
submitError: PropTypes.string,
|
|
75
76
|
onSubmit: PropTypes.func.isRequired,
|
|
@@ -211,7 +212,7 @@ class ModalForm extends Component {
|
|
|
211
212
|
* @returns {string} Markup for the component.
|
|
212
213
|
*/
|
|
213
214
|
render() {
|
|
214
|
-
const { schema, onCancel } = this.props;
|
|
215
|
+
const { schema, onCancel, description } = this.props;
|
|
215
216
|
const currentFieldset = schema.fieldsets[this.state.currentTab];
|
|
216
217
|
|
|
217
218
|
const fields = map(currentFieldset.fields, (field) => ({
|
|
@@ -245,6 +246,7 @@ class ModalForm extends Component {
|
|
|
245
246
|
onSubmit={this.onSubmit}
|
|
246
247
|
error={state_errors || Boolean(this.props.submitError)}
|
|
247
248
|
>
|
|
249
|
+
{description}
|
|
248
250
|
<Message error>
|
|
249
251
|
{state_errors ? (
|
|
250
252
|
<FormattedMessage
|
|
@@ -57,8 +57,8 @@ describe('<Pluggable />', () => {
|
|
|
57
57
|
</header>
|
|
58
58
|
<div className="pastanaga-menu-list">
|
|
59
59
|
<ul>
|
|
60
|
-
{pluggables.map((p) => (
|
|
61
|
-
|
|
60
|
+
{pluggables.map((p, index) => (
|
|
61
|
+
<React.Fragment key={index}>{p()}</React.Fragment>
|
|
62
62
|
))}
|
|
63
63
|
</ul>
|
|
64
64
|
</div>
|
|
@@ -92,7 +92,7 @@ describe('<Pluggable />', () => {
|
|
|
92
92
|
<div className="pastanaga-menu-list">
|
|
93
93
|
<ul>
|
|
94
94
|
{pluggables.map((p) => (
|
|
95
|
-
|
|
95
|
+
<React.Fragment key={p}>{p()}</React.Fragment>
|
|
96
96
|
))}
|
|
97
97
|
</ul>
|
|
98
98
|
</div>
|
|
@@ -311,8 +311,8 @@ const More = (props) => {
|
|
|
311
311
|
</header>
|
|
312
312
|
<div className="pastanaga-menu-list">
|
|
313
313
|
<ul>
|
|
314
|
-
{pluggables.map((p) => (
|
|
315
|
-
|
|
314
|
+
{pluggables.map((p, index) => (
|
|
315
|
+
<React.Fragment key={index}>{p()}</React.Fragment>
|
|
316
316
|
))}
|
|
317
317
|
</ul>
|
|
318
318
|
</div>
|
|
@@ -9,11 +9,7 @@ import { FormattedMessage, useIntl, defineMessages } from 'react-intl';
|
|
|
9
9
|
import { Icon } from '@plone/volto/components';
|
|
10
10
|
import { getUser } from '@plone/volto/actions';
|
|
11
11
|
import { Pluggable } from '@plone/volto/components/manage/Pluggable';
|
|
12
|
-
import {
|
|
13
|
-
expandToBackendURL,
|
|
14
|
-
getBaseUrl,
|
|
15
|
-
userHasRoles,
|
|
16
|
-
} from '@plone/volto/helpers';
|
|
12
|
+
import { expandToBackendURL, getBaseUrl } from '@plone/volto/helpers';
|
|
17
13
|
import logoutSVG from '@plone/volto/icons/log-out.svg';
|
|
18
14
|
import rightArrowSVG from '@plone/volto/icons/right-key.svg';
|
|
19
15
|
import backSVG from '@plone/volto/icons/back.svg';
|
|
@@ -50,7 +46,11 @@ const PersonalTools = (props) => {
|
|
|
50
46
|
const token = useSelector((state) => state.userSession.token, shallowEqual);
|
|
51
47
|
const user = useSelector((state) => state.users.user);
|
|
52
48
|
const userId = token ? jwtDecode(token).sub : '';
|
|
53
|
-
|
|
49
|
+
const siteSetupAction = useSelector((state) =>
|
|
50
|
+
state.actions?.actions?.user?.find(
|
|
51
|
+
(action) => action?.id === 'plone_setup',
|
|
52
|
+
),
|
|
53
|
+
);
|
|
54
54
|
useEffect(() => {
|
|
55
55
|
dispatch(getUser(userId));
|
|
56
56
|
}, [dispatch, userId]);
|
|
@@ -127,7 +127,7 @@ const PersonalTools = (props) => {
|
|
|
127
127
|
</button>
|
|
128
128
|
</li>
|
|
129
129
|
|
|
130
|
-
{
|
|
130
|
+
{siteSetupAction && (
|
|
131
131
|
<li>
|
|
132
132
|
<Link to="/controlpanel">
|
|
133
133
|
<FormattedMessage id="Site Setup" defaultMessage="Site Setup" />
|
|
@@ -29,6 +29,16 @@ describe('Toolbar Personal Tools component', () => {
|
|
|
29
29
|
is_folderish: true,
|
|
30
30
|
},
|
|
31
31
|
},
|
|
32
|
+
actions: {
|
|
33
|
+
actions: {
|
|
34
|
+
user: [
|
|
35
|
+
{
|
|
36
|
+
id: 'plone_setup',
|
|
37
|
+
title: 'Site Setup',
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
},
|
|
41
|
+
},
|
|
32
42
|
intl: {
|
|
33
43
|
locale: 'en',
|
|
34
44
|
messages: {},
|
|
@@ -70,6 +80,16 @@ describe('Toolbar Personal Tools component', () => {
|
|
|
70
80
|
is_folderish: true,
|
|
71
81
|
},
|
|
72
82
|
},
|
|
83
|
+
actions: {
|
|
84
|
+
actions: {
|
|
85
|
+
user: [
|
|
86
|
+
{
|
|
87
|
+
id: 'plone_setup',
|
|
88
|
+
title: 'Site Setup',
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
},
|
|
92
|
+
},
|
|
73
93
|
intl: {
|
|
74
94
|
locale: 'en',
|
|
75
95
|
messages: {},
|
|
@@ -112,6 +132,57 @@ describe('Toolbar Personal Tools component', () => {
|
|
|
112
132
|
is_folderish: true,
|
|
113
133
|
},
|
|
114
134
|
},
|
|
135
|
+
actions: {
|
|
136
|
+
actions: {
|
|
137
|
+
user: [
|
|
138
|
+
{
|
|
139
|
+
id: 'plone_setup',
|
|
140
|
+
title: 'Site Setup',
|
|
141
|
+
},
|
|
142
|
+
],
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
intl: {
|
|
146
|
+
locale: 'en',
|
|
147
|
+
messages: {},
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
const component = renderer.create(
|
|
151
|
+
<Provider store={store}>
|
|
152
|
+
<PluggablesProvider>
|
|
153
|
+
<MemoryRouter>
|
|
154
|
+
<PersonalTools
|
|
155
|
+
loadComponent={() => {}}
|
|
156
|
+
theToolbar={{
|
|
157
|
+
current: { getBoundingClientRect: () => ({ width: '320' }) },
|
|
158
|
+
}}
|
|
159
|
+
/>
|
|
160
|
+
</MemoryRouter>
|
|
161
|
+
</PluggablesProvider>
|
|
162
|
+
</Provider>,
|
|
163
|
+
);
|
|
164
|
+
const json = component.toJSON();
|
|
165
|
+
expect(json).toMatchSnapshot();
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
it('renders an Toolbar Personal Tools component without Site Setup access', () => {
|
|
169
|
+
const store = mockStore({
|
|
170
|
+
users: {
|
|
171
|
+
user: {
|
|
172
|
+
fullname: 'regular_user',
|
|
173
|
+
email: 'user@plone.org',
|
|
174
|
+
roles: ['Member'],
|
|
175
|
+
},
|
|
176
|
+
},
|
|
177
|
+
userSession: {
|
|
178
|
+
token: jwt.sign({ sub: 'regular_user' }, 'secret'),
|
|
179
|
+
},
|
|
180
|
+
content: {
|
|
181
|
+
data: {
|
|
182
|
+
'@type': 'Folder',
|
|
183
|
+
is_folderish: true,
|
|
184
|
+
},
|
|
185
|
+
},
|
|
115
186
|
intl: {
|
|
116
187
|
locale: 'en',
|
|
117
188
|
messages: {},
|
|
@@ -80,9 +80,8 @@ const Login = (props) => {
|
|
|
80
80
|
const loading = useSelector((state) => state.userSession.login.loading);
|
|
81
81
|
const returnUrl =
|
|
82
82
|
qs.parse(props.location?.search ?? location.search).return_url ||
|
|
83
|
-
location.pathname.replace(/\/
|
|
83
|
+
location.pathname.replace(/\/[^/]*\/?$/, '') ||
|
|
84
84
|
'/';
|
|
85
|
-
|
|
86
85
|
const previousToken = usePrevious(token);
|
|
87
86
|
|
|
88
87
|
useEffect(() => {
|
|
@@ -5,14 +5,14 @@ const ArrayWidget = ({ value, children, className }) =>
|
|
|
5
5
|
value ? (
|
|
6
6
|
<span className={cx(className, 'array', 'widget')}>
|
|
7
7
|
{value.map((item, key) => (
|
|
8
|
-
|
|
8
|
+
<React.Fragment key={item.token}>
|
|
9
9
|
{key ? ', ' : ''}
|
|
10
10
|
<span key={item.token || item.title || item}>
|
|
11
11
|
{children
|
|
12
12
|
? children(item.title || item.token || item)
|
|
13
13
|
: item.title || item.token || item}
|
|
14
14
|
</span>
|
|
15
|
-
|
|
15
|
+
</React.Fragment>
|
|
16
16
|
))}
|
|
17
17
|
</span>
|
|
18
18
|
) : (
|
|
@@ -138,6 +138,7 @@ export const MOVE_CONTENT_RULE = 'MOVE_CONTENT_RULE';
|
|
|
138
138
|
export const GET_ALIASES = 'GET_ALIASES';
|
|
139
139
|
export const ADD_ALIASES = 'ADD_ALIASES';
|
|
140
140
|
export const REMOVE_ALIASES = 'REMOVE_ALIASES';
|
|
141
|
+
export const UPLOAD_ALIASES = 'UPLOAD_ALIASES';
|
|
141
142
|
export const GET_USERSCHEMA = 'GET_USERSCHEMA';
|
|
142
143
|
export const GET_UPGRADE = 'GET_UPGRADE';
|
|
143
144
|
export const POST_UPGRADE = 'POST_UPGRADE';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
2
|
import path from 'path';
|
|
3
|
-
import
|
|
3
|
+
import { AddonRegistry } from '@plone/registry/addon-registry';
|
|
4
4
|
import config from '@plone/volto/registry';
|
|
5
5
|
|
|
6
6
|
const projectRootPath = path.resolve('.');
|
|
7
|
-
const registry =
|
|
7
|
+
const { registry } = AddonRegistry.init(projectRootPath);
|
|
8
8
|
|
|
9
9
|
const staticDirectory = () => {
|
|
10
10
|
if (process.env.BUILD_DIR) {
|
package/src/helpers/Api/Api.js
CHANGED
|
@@ -50,7 +50,14 @@ class Api {
|
|
|
50
50
|
methods.forEach((method) => {
|
|
51
51
|
this[method] = (
|
|
52
52
|
path,
|
|
53
|
-
{
|
|
53
|
+
{
|
|
54
|
+
params,
|
|
55
|
+
data,
|
|
56
|
+
type,
|
|
57
|
+
headers = {},
|
|
58
|
+
checkUrl = false,
|
|
59
|
+
attach = [],
|
|
60
|
+
} = {},
|
|
54
61
|
) => {
|
|
55
62
|
let request;
|
|
56
63
|
let promise = new Promise((resolve, reject) => {
|
|
@@ -88,6 +95,10 @@ class Api {
|
|
|
88
95
|
request.send(data);
|
|
89
96
|
}
|
|
90
97
|
|
|
98
|
+
attach.forEach((attachment) => {
|
|
99
|
+
request.attach.apply(request, attachment);
|
|
100
|
+
});
|
|
101
|
+
|
|
91
102
|
request.end((err, response) => {
|
|
92
103
|
if (
|
|
93
104
|
checkUrl &&
|
package/src/middleware/api.js
CHANGED
|
@@ -186,6 +186,7 @@ const apiMiddlewareFactory =
|
|
|
186
186
|
checkUrl: settings.actions_raising_api_errors.includes(
|
|
187
187
|
action.type,
|
|
188
188
|
),
|
|
189
|
+
attach: item.attach,
|
|
189
190
|
},
|
|
190
191
|
).then((reqres) => {
|
|
191
192
|
if (action.subrequest === 'batch-upload') {
|
|
@@ -205,6 +206,7 @@ const apiMiddlewareFactory =
|
|
|
205
206
|
checkUrl: settings.actions_raising_api_errors.includes(
|
|
206
207
|
action.type,
|
|
207
208
|
),
|
|
209
|
+
attach: item.attach,
|
|
208
210
|
}),
|
|
209
211
|
),
|
|
210
212
|
)
|
|
@@ -214,6 +216,7 @@ const apiMiddlewareFactory =
|
|
|
214
216
|
headers: request.headers,
|
|
215
217
|
params: request.params,
|
|
216
218
|
checkUrl: settings.actions_raising_api_errors.includes(action.type),
|
|
219
|
+
attach: request.attach,
|
|
217
220
|
});
|
|
218
221
|
actionPromise.then(
|
|
219
222
|
(result) => {
|
|
@@ -20,6 +20,8 @@ import {
|
|
|
20
20
|
UPDATE_UPLOADED_FILES,
|
|
21
21
|
} from '@plone/volto/constants/ActionTypes';
|
|
22
22
|
|
|
23
|
+
import config from '@plone/volto/registry';
|
|
24
|
+
|
|
23
25
|
const initialState = {
|
|
24
26
|
create: {
|
|
25
27
|
loaded: false,
|
|
@@ -192,6 +194,16 @@ export default function content(state = initialState, action = {}) {
|
|
|
192
194
|
};
|
|
193
195
|
});
|
|
194
196
|
}
|
|
197
|
+
|
|
198
|
+
const transforms = config.getUtilities({
|
|
199
|
+
type: 'transform',
|
|
200
|
+
dependencies: { reducer: 'content' },
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
transforms.forEach(({ method }) => {
|
|
204
|
+
method(result);
|
|
205
|
+
});
|
|
206
|
+
|
|
195
207
|
return action.subrequest
|
|
196
208
|
? {
|
|
197
209
|
...state,
|
package/src/start-server.js
CHANGED
|
@@ -18,11 +18,8 @@ export default function server() {
|
|
|
18
18
|
|
|
19
19
|
server
|
|
20
20
|
.listen(port, bind_address, () => {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
} else {
|
|
24
|
-
console.log(`API server (API_PATH) is set to: ${app.apiPath}`);
|
|
25
|
-
}
|
|
21
|
+
console.log(`API server (API_PATH) is set to: ${app.apiPath}`);
|
|
22
|
+
|
|
26
23
|
if (app.devProxyToApiPath)
|
|
27
24
|
console.log(
|
|
28
25
|
`Proxying API requests from ${app.publicURL}/++api++ to ${
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @param {Object} options Options data.
|
|
6
6
|
* @returns {Object} Get aliases action.
|
|
7
7
|
*/
|
|
8
|
-
export function getAliases(url: string, options
|
|
8
|
+
export function getAliases(url: string, options?: any): any;
|
|
9
9
|
/**
|
|
10
10
|
* Add alias function.
|
|
11
11
|
* @function addAliases
|
|
@@ -22,3 +22,10 @@ export function addAliases(url: string, data: any): any;
|
|
|
22
22
|
* @returns {Object} Remove alias action.
|
|
23
23
|
*/
|
|
24
24
|
export function removeAliases(url: string, data: any): any;
|
|
25
|
+
/**
|
|
26
|
+
* Upload aliases function.
|
|
27
|
+
* @function uploadAliases
|
|
28
|
+
* @param {Object} file CSV file.
|
|
29
|
+
* @returns {Object} Upload aliases action.
|
|
30
|
+
*/
|
|
31
|
+
export function uploadAliases(file: any): any;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
export declare const Controlpanels: any;
|
|
3
2
|
export declare const Controlpanel: import("@loadable/component").LoadableComponent<Omit<import("react-intl").WithIntlProps<import("react-intl").WrappedComponentProps<string>>, "ref"> & import("react").RefAttributes<import("react").ComponentType<import("react-intl").WrappedComponentProps<string>>>>;
|
|
4
3
|
export declare const RulesControlpanel: import("@loadable/component").LoadableClassComponent<any>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="jest" />
|
|
2
1
|
export declare const Field: jest.Mock<import("react/jsx-runtime").JSX.Element, [props: any], any>;
|
|
3
2
|
export declare const InlineForm: jest.Mock<import("react/jsx-runtime").JSX.Element, [props: any], any>;
|
|
4
3
|
export declare const ModalForm: jest.Mock<import("react/jsx-runtime").JSX.Element, [props: any], any>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
export declare const Field: import("@loadable/component").LoadableComponent<import("react-intl").WithIntlProps<any>>;
|
|
3
2
|
export declare const InlineForm: import("@loadable/component").LoadableComponent<Omit<import("react-intl").WithIntlProps<any>, "ref"> & import("react").RefAttributes<any>>;
|
|
4
3
|
export declare const ModalForm: import("@loadable/component").LoadableComponent<import("react-intl").WithIntlProps<any>>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="jest" />
|
|
2
1
|
export declare const AlignWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
|
|
3
2
|
export declare const ButtonsWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
|
|
4
3
|
export declare const ArrayWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
export declare const AlignWidget: import("@loadable/component").LoadableComponent<any>;
|
|
3
2
|
export declare const ButtonsWidget: import("@loadable/component").LoadableComponent<any>;
|
|
4
3
|
export declare const ArrayWidget: import("@loadable/component").LoadableClassComponent<any>;
|
|
@@ -53,7 +52,7 @@ export declare const UrlWidget: import("@loadable/component").LoadableClassCompo
|
|
|
53
52
|
data: {};
|
|
54
53
|
block: string;
|
|
55
54
|
};
|
|
56
|
-
contextType?: import("react").Context<any
|
|
55
|
+
contextType?: import("react").Context<any> | undefined;
|
|
57
56
|
}>;
|
|
58
57
|
export declare const InternalUrlWidget: import("@loadable/component").LoadableClassComponent<{
|
|
59
58
|
new (): {
|
|
@@ -93,7 +92,7 @@ export declare const InternalUrlWidget: import("@loadable/component").LoadableCl
|
|
|
93
92
|
data: {};
|
|
94
93
|
block: string;
|
|
95
94
|
};
|
|
96
|
-
contextType?: import("react").Context<any
|
|
95
|
+
contextType?: import("react").Context<any> | undefined;
|
|
97
96
|
}>;
|
|
98
97
|
export declare const EmailWidget: import("@loadable/component").LoadableComponent<any>;
|
|
99
98
|
export declare const NumberWidget: import("@loadable/component").LoadableComponent<import("react-intl").WithIntlProps<any>>;
|
package/types/config/slots.d.ts
CHANGED
|
@@ -134,6 +134,7 @@ export const MOVE_CONTENT_RULE: "MOVE_CONTENT_RULE";
|
|
|
134
134
|
export const GET_ALIASES: "GET_ALIASES";
|
|
135
135
|
export const ADD_ALIASES: "ADD_ALIASES";
|
|
136
136
|
export const REMOVE_ALIASES: "REMOVE_ALIASES";
|
|
137
|
+
export const UPLOAD_ALIASES: "UPLOAD_ALIASES";
|
|
137
138
|
export const GET_USERSCHEMA: "GET_USERSCHEMA";
|
|
138
139
|
export const GET_UPGRADE: "GET_UPGRADE";
|
|
139
140
|
export const POST_UPGRADE: "POST_UPGRADE";
|