@uxf/cms 11.31.2 → 11.32.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/api/index.js +22 -20
- package/config/container.js +3 -3
- package/context/cms-provider.d.ts +2 -2
- package/context/cms-provider.js +1 -2
- package/deprecated/redux/entities/selectors.js +3 -2
- package/deprecated/redux/redux-helper.js +1 -2
- package/forms/change-password-form/change-password-form.js +1 -1
- package/forms/components/wysiwyg-input/wysiwyg-input.js +8 -8
- package/forms/forgotten-password-form/forgotten-password-form.js +3 -3
- package/forms/invite-user-form/invite-user-form.js +7 -7
- package/forms/login-form/login-form.js +4 -4
- package/lib/api/create-axios-instance.d.ts +1 -1
- package/lib/api/create-axios-instance.js +1 -2
- package/lib/api/create-use-axios-request.d.ts +1 -1
- package/lib/layout/breadcrumbs.js +4 -2
- package/lib/layout/layout.js +3 -3
- package/lib/layout/sidebar.js +5 -5
- package/lib/layout/types.d.ts +9 -9
- package/lib/menu/factory.js +7 -8
- package/lib/menu/mobile-bar.js +6 -6
- package/lib/menu/model.js +4 -2
- package/lib/menu/ui/list-item/list-item.d.ts +1 -1
- package/lib/menu/ui/list-item/list-item.js +10 -10
- package/lib/menu/ui/menu-item.js +1 -1
- package/lib/menu/ui/sub-menu/sub-menu-item.js +1 -1
- package/lib/menu/ui/sub-menu/sub-menu-mobile.js +1 -1
- package/lib/menu/ui/sub-menu/sub-menu.js +1 -1
- package/lib/menu/ui/sub-menu/use-sub-menu.d.ts +7 -8
- package/lib/menu/ui/sub-menu/use-sub-menu.js +2 -3
- package/lib/menu/ui/user-menu.js +6 -4
- package/package.json +19 -19
- package/pages/content-builder/components/form-content.js +7 -7
- package/pages/content-builder/components/form-root-fields.js +20 -19
- package/pages/content-builder/components/form.js +2 -2
- package/pages/content-builder/components/header.js +1 -1
- package/pages/content-builder/content/feature-section.js +9 -9
- package/pages/content-builder/content/gallery.js +1 -1
- package/pages/content-builder/content/hero-section.js +4 -4
- package/pages/content-builder/content/people.js +9 -9
- package/pages/content-builder/content/wysiwyg.js +2 -2
- package/pages/content-builder/content-builder-page.js +2 -2
- package/pages/content-builder/content-field.js +12 -12
- package/pages/content-builder/content-header.js +4 -4
- package/pages/content-builder/context/details-visibility-context.js +2 -1
- package/pages/content-builder/mapper.js +5 -5
- package/pages/content-builder/types.d.ts +33 -33
- package/pages/forgotten-password-page/forgotten-password-page.js +1 -1
- package/pages/form-page/base-field.js +15 -15
- package/pages/form-page/field/content.js +1 -1
- package/pages/form-page/field-array.js +3 -3
- package/pages/form-page/form-page.d.ts +1 -1
- package/pages/form-page/form-page.js +3 -2
- package/pages/form-page/form.d.ts +1 -1
- package/pages/form-page/form.js +7 -8
- package/pages/form-page/mapper.js +2 -1
- package/pages/grid-page/get-initial-props-helper.js +2 -3
- package/pages/grid-page/grid-page.js +4 -3
- package/pages/grid-page/types.d.ts +12 -13
- package/pages/login-page/login-page.js +2 -1
- package/pages/renew-password-page/renew-password-page.js +1 -1
- package/security/use-logged-user.js +1 -2
- package/ui/avatar/get-avatar-user-letters.js +5 -4
- package/ui/copy-to-clipboard/copy-to-clipboard.js +3 -2
- package/utils/on-remove-confirm.js +1 -2
- package/utils/use-viewport-height.js +1 -2
package/api/index.js
CHANGED
|
@@ -1,25 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.dataGridAutocompleteGet = void 0;
|
|
4
|
+
exports.contentGet = contentGet;
|
|
5
|
+
exports.contentCreate = contentCreate;
|
|
6
|
+
exports.contentUpdate = contentUpdate;
|
|
7
|
+
exports.dataGridSchemaGet = dataGridSchemaGet;
|
|
8
|
+
exports.forgottenPassword = forgottenPassword;
|
|
9
|
+
exports.getLoggedUser = getLoggedUser;
|
|
10
|
+
exports.getEntityMetaSchemas = getEntityMetaSchemas;
|
|
11
|
+
exports.getFormSchema = getFormSchema;
|
|
12
|
+
exports.getFormValues = getFormValues;
|
|
13
|
+
exports.login = login;
|
|
14
|
+
exports.autocomplete = autocomplete;
|
|
15
|
+
exports.saveFormValues = saveFormValues;
|
|
16
|
+
exports.removeEntity = removeEntity;
|
|
17
|
+
exports.userConfigSave = userConfigSave;
|
|
18
|
+
exports.userConfigGetAll = userConfigGetAll;
|
|
19
|
+
exports.userConfigGet = userConfigGet;
|
|
20
|
+
exports.uploadFile = uploadFile;
|
|
21
|
+
const is_not_nil_1 = require("@uxf/core/utils/is-not-nil");
|
|
4
22
|
// eslint-disable-next-line import/no-cycle
|
|
5
23
|
const api_1 = require("../lib/api");
|
|
6
24
|
const { axiosRequest, axiosInstance } = (0, api_1.createAxiosInstance)();
|
|
7
25
|
function contentGet(ctx, contentId) {
|
|
8
26
|
return axiosRequest(ctx, `/api/cms/content/${contentId}`, "get", null, null);
|
|
9
27
|
}
|
|
10
|
-
exports.contentGet = contentGet;
|
|
11
28
|
function contentCreate(ctx, content) {
|
|
12
29
|
return axiosRequest(ctx, "/api/cms/content", "post", content, null);
|
|
13
30
|
}
|
|
14
|
-
exports.contentCreate = contentCreate;
|
|
15
31
|
function contentUpdate(ctx, contentId, content) {
|
|
16
32
|
return axiosRequest(ctx, `/api/cms/content/${contentId}`, "put", content, null);
|
|
17
33
|
}
|
|
18
|
-
exports.contentUpdate = contentUpdate;
|
|
19
34
|
function dataGridSchemaGet(ctx, gridName) {
|
|
20
35
|
return axiosRequest(ctx, `/api/cms/datagrid/schema/${gridName}`, "get", null, null);
|
|
21
36
|
}
|
|
22
|
-
exports.dataGridSchemaGet = dataGridSchemaGet;
|
|
23
37
|
const dataGridAutocompleteGet = (ctx, gridName, filterName, text) => {
|
|
24
38
|
return axiosRequest(ctx, `/api/cms/datagrid/autocomplete/${gridName}/${filterName}`, "get", null, { s: text }).then((r) => r.data);
|
|
25
39
|
};
|
|
@@ -27,49 +41,38 @@ exports.dataGridAutocompleteGet = dataGridAutocompleteGet;
|
|
|
27
41
|
function forgottenPassword(ctx, email, cms = true) {
|
|
28
42
|
return axiosRequest(ctx, "/api/forgotten-password", "post", { email, cms }, null).then(() => undefined);
|
|
29
43
|
}
|
|
30
|
-
exports.forgottenPassword = forgottenPassword;
|
|
31
44
|
function getLoggedUser(ctx = null) {
|
|
32
45
|
return axiosRequest(ctx, `/api/cms/user`, "get", null, null).then((r) => r.data.user);
|
|
33
46
|
}
|
|
34
|
-
exports.getLoggedUser = getLoggedUser;
|
|
35
47
|
function getEntityMetaSchemas(ctx) {
|
|
36
48
|
return axiosRequest(ctx, "/api/cms/tables", "get", null, null);
|
|
37
49
|
}
|
|
38
|
-
exports.getEntityMetaSchemas = getEntityMetaSchemas;
|
|
39
50
|
function getFormSchema(ctx, path) {
|
|
40
51
|
return axiosRequest(ctx, `/api/cms/form/${path.entityAlias}/schema`, "get", null, null);
|
|
41
52
|
}
|
|
42
|
-
exports.getFormSchema = getFormSchema;
|
|
43
53
|
function getFormValues(ctx, path) {
|
|
44
54
|
return axiosRequest(ctx, `/api/cms/form/${path.entityAlias}/${path.id}`, "get", null, null);
|
|
45
55
|
}
|
|
46
|
-
exports.getFormValues = getFormValues;
|
|
47
56
|
function login(ctx, body) {
|
|
48
57
|
return axiosRequest(ctx, "/api/login", "post", body, null);
|
|
49
58
|
}
|
|
50
|
-
exports.login = login;
|
|
51
59
|
function autocomplete(ctx, path, query) {
|
|
52
60
|
return axiosRequest(ctx, `/api/cms/autocomplete/${path.name}`, "get", null, query);
|
|
53
61
|
}
|
|
54
|
-
exports.autocomplete = autocomplete;
|
|
55
62
|
function saveFormValues(ctx, path, body) {
|
|
56
63
|
return path.id
|
|
57
64
|
? axiosRequest(ctx, `/api/cms/form/${path.entityAlias}/${path.id}`, "put", body, null)
|
|
58
65
|
: axiosRequest(ctx, `/api/cms/form/${path.entityAlias}`, "post", body, null);
|
|
59
66
|
}
|
|
60
|
-
exports.saveFormValues = saveFormValues;
|
|
61
67
|
function removeEntity(ctx, path) {
|
|
62
68
|
return axiosRequest(ctx, `/api/cms/form/${path.entityAlias}/${path.id}`, "delete", null, null);
|
|
63
69
|
}
|
|
64
|
-
exports.removeEntity = removeEntity;
|
|
65
70
|
async function userConfigSave(name, data) {
|
|
66
71
|
return axiosRequest(null, "/api/cms/user-config", "post", { name, data }, null);
|
|
67
72
|
}
|
|
68
|
-
exports.userConfigSave = userConfigSave;
|
|
69
73
|
function userConfigGetAll(ctx) {
|
|
70
74
|
return axiosRequest(ctx, "/api/cms/user-config", "get", null, null);
|
|
71
75
|
}
|
|
72
|
-
exports.userConfigGetAll = userConfigGetAll;
|
|
73
76
|
async function userConfigGet(ctx, name, defaultValue) {
|
|
74
77
|
const configs = await userConfigGetAll(ctx).then((r) => r.data);
|
|
75
78
|
const configsName = configs[name];
|
|
@@ -78,7 +81,6 @@ async function userConfigGet(ctx, name, defaultValue) {
|
|
|
78
81
|
}
|
|
79
82
|
return defaultValue;
|
|
80
83
|
}
|
|
81
|
-
exports.userConfigGet = userConfigGet;
|
|
82
84
|
async function uploadFile(file, namespace = "default") {
|
|
83
85
|
const formData = new FormData();
|
|
84
86
|
formData.append("files[]", file);
|
|
@@ -86,9 +88,9 @@ async function uploadFile(file, namespace = "default") {
|
|
|
86
88
|
timeout: 100 * 1000,
|
|
87
89
|
params: namespace ? { namespace } : {},
|
|
88
90
|
});
|
|
89
|
-
|
|
90
|
-
|
|
91
|
+
const firstFile = response.data.at(0);
|
|
92
|
+
if ((0, is_not_nil_1.isNotNil)(firstFile)) {
|
|
93
|
+
return firstFile;
|
|
91
94
|
}
|
|
92
95
|
throw new Error("Response is null");
|
|
93
96
|
}
|
|
94
|
-
exports.uploadFile = uploadFile;
|
package/config/container.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Container = void 0;
|
|
4
|
-
|
|
5
|
-
const api_1 = require("../api");
|
|
4
|
+
const is_not_nil_1 = require("@uxf/core/utils/is-not-nil");
|
|
5
|
+
const api_1 = require("../api"); // eslint-disable-line import/no-cycle
|
|
6
6
|
class Container {
|
|
7
7
|
constructor() {
|
|
8
8
|
// TODO @vejvis - move initial values to better place
|
|
@@ -23,7 +23,7 @@ class Container {
|
|
|
23
23
|
return value;
|
|
24
24
|
}
|
|
25
25
|
has(key) {
|
|
26
|
-
return
|
|
26
|
+
return (0, is_not_nil_1.isNotNil)(this.store[key]);
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
exports.Container = Container;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare function CmsProvider(props: PropsWithChildren):
|
|
1
|
+
import { PropsWithChildren, ReactNode } from "react";
|
|
2
|
+
export declare function CmsProvider(props: PropsWithChildren): ReactNode;
|
package/context/cms-provider.js
CHANGED
|
@@ -3,11 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.CmsProvider =
|
|
6
|
+
exports.CmsProvider = CmsProvider;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const swr_1 = require("swr");
|
|
9
9
|
const fetcher = (input, init) => fetch(input, init).then((res) => res.json());
|
|
10
10
|
function CmsProvider(props) {
|
|
11
11
|
return react_1.default.createElement(swr_1.SWRConfig, { value: { provider: () => new Map(), fetcher } }, props.children);
|
|
12
12
|
}
|
|
13
|
-
exports.CmsProvider = CmsProvider;
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.formSchemaSelector = exports.formSchemaExistsSelector = exports.gridSchemaSelector = exports.gridSchemaExistsSelector = exports.metaSchemaSelector = exports.metaSchemaExistsSelector = void 0;
|
|
4
|
+
const is_not_nil_1 = require("@uxf/core/utils/is-not-nil");
|
|
4
5
|
const metaSchemaExistsSelector = (state) => Object.keys(state.entities.meta).length > 0;
|
|
5
6
|
exports.metaSchemaExistsSelector = metaSchemaExistsSelector;
|
|
6
7
|
const metaSchemaSelector = (entityAlias) => (state) => state.entities.meta[entityAlias];
|
|
7
8
|
exports.metaSchemaSelector = metaSchemaSelector;
|
|
8
|
-
const gridSchemaExistsSelector = (entityAlias) => (state) =>
|
|
9
|
+
const gridSchemaExistsSelector = (entityAlias) => (state) => (0, is_not_nil_1.isNotNil)(state.entities.grid[entityAlias]);
|
|
9
10
|
exports.gridSchemaExistsSelector = gridSchemaExistsSelector;
|
|
10
11
|
const gridSchemaSelector = (entityAlias) => (state) => state.entities.grid[entityAlias];
|
|
11
12
|
exports.gridSchemaSelector = gridSchemaSelector;
|
|
12
|
-
const formSchemaExistsSelector = (entityAlias) => (state) =>
|
|
13
|
+
const formSchemaExistsSelector = (entityAlias) => (state) => (0, is_not_nil_1.isNotNil)(state.entities.form[entityAlias]);
|
|
13
14
|
exports.formSchemaExistsSelector = formSchemaExistsSelector;
|
|
14
15
|
const formSchemaSelector = (entityAlias) => (state) => state.entities.form[entityAlias];
|
|
15
16
|
exports.formSchemaSelector = formSchemaSelector;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createAction =
|
|
3
|
+
exports.createAction = createAction;
|
|
4
4
|
function createAction(type, payload) {
|
|
5
5
|
return payload === undefined ? { type } : { type, payload };
|
|
6
6
|
}
|
|
7
|
-
exports.createAction = createAction;
|
|
@@ -18,7 +18,7 @@ const ChangePasswordForm = (props) => {
|
|
|
18
18
|
});
|
|
19
19
|
return (react_1.default.createElement(form_1.Form, { formApi: formApi, id: "change-password-form", ...formProps },
|
|
20
20
|
react_1.default.createElement(widget_1.Widget, { className: "[&>*]:p-4", footer: react_1.default.createElement("div", { className: "text-right" },
|
|
21
|
-
react_1.default.createElement(button_1.Button, {
|
|
21
|
+
react_1.default.createElement(button_1.Button, { isDisabled: formApi.formState.isSubmitting, type: "submit" }, "Ulo\u017Eit")), withDividers: true },
|
|
22
22
|
react_1.default.createElement(text_input_1.TextInput, { control: formApi.control, isRequired: true, label: "P\u016Fvodn\u00ED heslo", name: "originalPassword", type: "password" }),
|
|
23
23
|
react_1.default.createElement(text_input_1.TextInput, { control: formApi.control, isRequired: true, label: "Nov\u00E9 heslo", name: "newPassword", rules: props.passwordRules, type: "password" }),
|
|
24
24
|
react_1.default.createElement(text_input_1.TextInput, { control: formApi.control, isRequired: true, label: "Nov\u00E9 heslo znovu", name: "newPasswordAgain", rules: { validate: (v) => v === formApi.getValues("newPassword") || "Hesla musí být stejná" }, type: "password" }))));
|
|
@@ -23,11 +23,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.WysiwygInput =
|
|
26
|
+
exports.WysiwygInput = WysiwygInput;
|
|
27
27
|
const use_input_focus_1 = require("@uxf/core-react/hooks/use-input-focus");
|
|
28
28
|
const classes_1 = require("@uxf/core/constants/classes");
|
|
29
29
|
const cx_1 = require("@uxf/core/utils/cx");
|
|
30
30
|
const file_1 = require("@uxf/core/utils/file");
|
|
31
|
+
const is_not_nil_1 = require("@uxf/core/utils/is-not-nil");
|
|
31
32
|
const form_component_1 = require("@uxf/ui/form-component");
|
|
32
33
|
const wysiwyg_1 = require("@uxf/wysiwyg");
|
|
33
34
|
const create_all_plugins_with_ui_1 = require("@uxf/wysiwyg/create-all-plugins-with-ui");
|
|
@@ -35,14 +36,14 @@ const react_1 = __importStar(require("react"));
|
|
|
35
36
|
const react_hook_form_1 = require("react-hook-form");
|
|
36
37
|
const api_1 = require("../../../api");
|
|
37
38
|
function WysiwygInput(props) {
|
|
38
|
-
var _a, _b, _c, _d
|
|
39
|
+
var _a, _b, _c, _d;
|
|
39
40
|
const { field, fieldState } = (0, react_hook_form_1.useController)({
|
|
40
41
|
control: props.control,
|
|
41
42
|
defaultValue: props.defaultValue,
|
|
42
43
|
name: props.name,
|
|
43
44
|
rules: {
|
|
44
45
|
required: props.isRequired ? props.requiredMessage || "Toto pole je povinné" : undefined,
|
|
45
|
-
...
|
|
46
|
+
...props.rules,
|
|
46
47
|
},
|
|
47
48
|
shouldUnregister: props.shouldUnregister,
|
|
48
49
|
});
|
|
@@ -53,19 +54,19 @@ function WysiwygInput(props) {
|
|
|
53
54
|
: (0, create_all_plugins_with_ui_1.createAllPluginsWithUi)((_a = props.allPluginsOptions) !== null && _a !== void 0 ? _a : { image: { getImageUrl: file_1.getFileUrl, uploadImage: api_1.uploadFile } });
|
|
54
55
|
}, [props.allPluginsOptions, props.plugins]);
|
|
55
56
|
const generatedId = (0, react_1.useId)();
|
|
56
|
-
const id = (
|
|
57
|
+
const id = (_a = props.id) !== null && _a !== void 0 ? _a : generatedId;
|
|
57
58
|
const innerRef = (0, react_1.useRef)(null);
|
|
58
59
|
const input = (0, use_input_focus_1.useInputFocus)(innerRef, props.onBlur, props.onFocus);
|
|
59
|
-
const isInvalid =
|
|
60
|
+
const isInvalid = (0, is_not_nil_1.isNotNil)(fieldState.error);
|
|
60
61
|
const errorId = isInvalid ? `${props.id}--error-message` : undefined;
|
|
61
|
-
const rootClassName = (0, cx_1.cx)("uxf-text-input", ((
|
|
62
|
+
const rootClassName = (0, cx_1.cx)("uxf-text-input", ((_b = props.isFocused) !== null && _b !== void 0 ? _b : input.focused) && classes_1.CLASSES.IS_FOCUSED, props.isDisabled && classes_1.CLASSES.IS_DISABLED, isInvalid && classes_1.CLASSES.IS_INVALID, props.isReadOnly && classes_1.CLASSES.IS_READONLY, props.isRequired && classes_1.CLASSES.IS_REQUIRED, props.className);
|
|
62
63
|
const onBlur = (0, react_1.useCallback)((e) => {
|
|
63
64
|
var _a;
|
|
64
65
|
field.onBlur();
|
|
65
66
|
input.onBlur(e);
|
|
66
67
|
(_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, e);
|
|
67
68
|
}, [field, input, props]);
|
|
68
|
-
return (react_1.default.createElement(form_component_1.FormComponent, { className: rootClassName, errorId: errorId, form: props.form, helperText: (
|
|
69
|
+
return (react_1.default.createElement(form_component_1.FormComponent, { className: rootClassName, errorId: errorId, form: props.form, helperText: (_d = (_c = fieldState.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : props.helperText, hiddenLabel: props.hiddenLabel, inputId: id, isRequired: props.isRequired, label: props.label, name: props.name },
|
|
69
70
|
react_1.default.createElement(wysiwyg_1.WysiwygEditor, { editableProps: {
|
|
70
71
|
"aria-describedby": errorId,
|
|
71
72
|
"aria-invalid": isInvalid,
|
|
@@ -80,4 +81,3 @@ function WysiwygInput(props) {
|
|
|
80
81
|
required: props.isRequired,
|
|
81
82
|
}, id: id, initialValue: field.value, onChange: field.onChange, plugins: plugins, ...props.editorProps })));
|
|
82
83
|
}
|
|
83
|
-
exports.WysiwygInput = WysiwygInput;
|
|
@@ -42,9 +42,9 @@ const ForgottenPasswordForm = (props) => {
|
|
|
42
42
|
}, []);
|
|
43
43
|
return (react_1.default.createElement(form_1.Form, { formApi: formApi, id: "forgotten-password-form", ...formProps },
|
|
44
44
|
react_1.default.createElement("div", { className: "space-y-6" },
|
|
45
|
-
react_1.default.createElement(text_input_1.TextInput, { control: formApi.control, isDisabled: formDisabled, label: "E-mail", name: "username",
|
|
46
|
-
react_1.default.createElement(button_1.Button, { isDisabled: formDisabled || formApi.formState.isSubmitting, isLoading: formApi.formState.isSubmitting, type: "submit"
|
|
45
|
+
react_1.default.createElement(text_input_1.TextInput, { control: formApi.control, isDisabled: formDisabled, isRequired: true, label: "E-mail", name: "username", type: "text" }),
|
|
46
|
+
react_1.default.createElement(button_1.Button, { isDisabled: formDisabled || formApi.formState.isSubmitting, isFullWidth: true, isLoading: formApi.formState.isSubmitting, type: "submit" }, "Obnovit heslo"),
|
|
47
47
|
onLogin && (react_1.default.createElement("div", { className: "text-right" },
|
|
48
|
-
react_1.default.createElement(text_link_1.TextLink, {
|
|
48
|
+
react_1.default.createElement(text_link_1.TextLink, { className: "uxf-typo-medium2 text-primary", disabled: formApi.formState.isSubmitting, onClick: onLogin }, "P\u0159ihl\u00E1sit"))))));
|
|
49
49
|
};
|
|
50
50
|
exports.ForgottenPasswordForm = ForgottenPasswordForm;
|
|
@@ -20,12 +20,12 @@ const InviteUserForm = (props) => {
|
|
|
20
20
|
defaultValues,
|
|
21
21
|
});
|
|
22
22
|
return (react_1.default.createElement(form_1.Form, { formApi: formApi, id: "invite-user-form", ...formProps },
|
|
23
|
-
react_1.default.createElement(widget_1.Widget, {
|
|
24
|
-
react_1.default.createElement(button_1.Button, {
|
|
25
|
-
react_1.default.createElement(text_input_1.TextInput, {
|
|
26
|
-
react_1.default.createElement(text_input_1.TextInput, {
|
|
27
|
-
react_1.default.createElement(text_input_1.TextInput, {
|
|
28
|
-
react_1.default.createElement(multi_combobox_1.MultiCombobox, {
|
|
29
|
-
react_1.default.createElement(checkbox_input_1.CheckboxInput, {
|
|
23
|
+
react_1.default.createElement(widget_1.Widget, { className: "[&>*]:p-4", footer: react_1.default.createElement("div", { className: "text-right" },
|
|
24
|
+
react_1.default.createElement(button_1.Button, { isDisabled: formApi.formState.isSubmitting, type: "submit" }, "Ulo\u017Eit")), withDividers: true },
|
|
25
|
+
react_1.default.createElement(text_input_1.TextInput, { control: formApi.control, isRequired: true, label: "E-mail", name: "email", type: "email" }),
|
|
26
|
+
react_1.default.createElement(text_input_1.TextInput, { control: formApi.control, isRequired: true, label: "Jm\u00E9no", name: "name" }),
|
|
27
|
+
react_1.default.createElement(text_input_1.TextInput, { control: formApi.control, isRequired: true, label: "P\u0159\u00EDjmen\u00ED", name: "surname" }),
|
|
28
|
+
react_1.default.createElement(multi_combobox_1.MultiCombobox, { control: formApi.control, isRequired: true, label: "Role", loadOptions: props.onLoadRoles, name: "roles" }),
|
|
29
|
+
react_1.default.createElement(checkbox_input_1.CheckboxInput, { control: formApi.control, label: "Odeslat pozv\u00E1nku", name: "sendInvitation" }))));
|
|
30
30
|
};
|
|
31
31
|
exports.InviteUserForm = InviteUserForm;
|
|
@@ -40,10 +40,10 @@ const LoginForm = (props) => {
|
|
|
40
40
|
}, []);
|
|
41
41
|
return (react_1.default.createElement(form_1.Form, { formApi: formApi, id: "login-form", ...formProps },
|
|
42
42
|
react_1.default.createElement("div", { className: "space-y-6" },
|
|
43
|
-
react_1.default.createElement(text_input_1.TextInput, { isDisabled: formDisabled, label: "E-mail", name: "username", type: "email"
|
|
44
|
-
react_1.default.createElement(text_input_1.TextInput, { isDisabled: formDisabled, label: "Heslo", name: "password", type: "password"
|
|
43
|
+
react_1.default.createElement(text_input_1.TextInput, { control: formApi.control, isDisabled: formDisabled, isRequired: true, label: "E-mail", name: "username", type: "email" }),
|
|
44
|
+
react_1.default.createElement(text_input_1.TextInput, { control: formApi.control, isDisabled: formDisabled, isRequired: true, label: "Heslo", name: "password", type: "password" }),
|
|
45
45
|
onForgottenPassword && (react_1.default.createElement("div", { className: "text-right" },
|
|
46
|
-
react_1.default.createElement(text_link_1.TextLink, {
|
|
47
|
-
react_1.default.createElement(button_1.Button, { type: "submit"
|
|
46
|
+
react_1.default.createElement(text_link_1.TextLink, { className: "uxf-typo-medium2 text-primary", disabled: formApi.formState.isSubmitting, onClick: onForgottenPassword }, "Nepamatujete si sv\u00E9 heslo?"))),
|
|
47
|
+
react_1.default.createElement(button_1.Button, { isFullWidth: true, type: "submit" }, "P\u0159ihl\u00E1sit se"))));
|
|
48
48
|
};
|
|
49
49
|
exports.LoginForm = LoginForm;
|
|
@@ -2,5 +2,5 @@ import { AxiosRequestConfig } from "axios";
|
|
|
2
2
|
export declare function createAxiosInstance(requestConfig?: AxiosRequestConfig): {
|
|
3
3
|
axiosInstance: import("axios").AxiosInstance;
|
|
4
4
|
axiosRequest: <Response>(ctx: any, url: string, method: import("axios").Method, body: object | null, query: object | null) => Promise<import("axios").AxiosResponse<Response, any>>;
|
|
5
|
-
useAxiosRequest: <
|
|
5
|
+
useAxiosRequest: <Response extends Record<string, any> | boolean, RequestBody extends Record<string, any> | null, RequestQuery extends Record<string, any> | null, RequestPath extends Record<string, any> | null>(url: string, method: import("axios").Method, config: import("./types").RequestConfig<RequestBody, RequestQuery, RequestPath>) => [import("axios-hooks").ResponseValues<Response, any, any>, import("./types").Execute<Response, RequestBody, RequestQuery, RequestPath>];
|
|
6
6
|
};
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createAxiosInstance =
|
|
6
|
+
exports.createAxiosInstance = createAxiosInstance;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
// eslint-disable-next-line import/no-cycle
|
|
9
9
|
const create_axios_request_1 = require("./create-axios-request");
|
|
@@ -16,4 +16,3 @@ function createAxiosInstance(requestConfig = {}) {
|
|
|
16
16
|
useAxiosRequest: (0, create_use_axios_request_1.createUseAxiosRequest)(instance, requestConfig),
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
|
-
exports.createAxiosInstance = createAxiosInstance;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { AxiosInstance, AxiosRequestConfig, Method } from "axios";
|
|
2
2
|
import { ResponseValues } from "axios-hooks";
|
|
3
3
|
import { Execute, RequestConfig } from "./types";
|
|
4
|
-
export declare const createUseAxiosRequest: (axiosInstance: AxiosInstance, requestConfig: AxiosRequestConfig) => <Response extends
|
|
4
|
+
export declare const createUseAxiosRequest: (axiosInstance: AxiosInstance, requestConfig: AxiosRequestConfig) => <Response extends Record<string, any> | boolean, RequestBody extends Record<string, any> | null, RequestQuery extends Record<string, any> | null, RequestPath extends Record<string, any> | null>(url: string, method: Method, config: RequestConfig<RequestBody, RequestQuery, RequestPath>) => [ResponseValues<Response, any, any>, Execute<Response, RequestBody, RequestQuery, RequestPath>];
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.Breadcrumbs = void 0;
|
|
7
|
+
const hide_1 = require("@uxf/core-react/components/hide");
|
|
7
8
|
const icon_1 = require("@uxf/ui/icon");
|
|
8
9
|
const link_1 = __importDefault(require("next/link"));
|
|
9
10
|
const react_1 = __importDefault(require("react"));
|
|
@@ -12,8 +13,9 @@ const Breadcrumbs = (props) => {
|
|
|
12
13
|
return null;
|
|
13
14
|
}
|
|
14
15
|
return (react_1.default.createElement("div", { className: "uxf-cms-breadcrumbs" }, props.items.map((item, index) => (react_1.default.createElement("span", { className: "uxf-cms-breadcrumbs__item", key: index },
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
react_1.default.createElement(hide_1.Hide, { when: index === 0 },
|
|
17
|
+
react_1.default.createElement(icon_1.Icon, { className: "uxf-cms-breadcrumbs__divide-icon", name: "angleRight", size: 16 })),
|
|
18
|
+
item.href ? (react_1.default.createElement(link_1.default, { className: "uxf-cms-breadcrumbs__link", href: item.href },
|
|
17
19
|
react_1.default.createElement("span", null, item.title))) : (react_1.default.createElement("span", null, item.title)))))));
|
|
18
20
|
};
|
|
19
21
|
exports.Breadcrumbs = Breadcrumbs;
|
package/lib/layout/layout.js
CHANGED
|
@@ -18,12 +18,12 @@ const Layout = (props) => {
|
|
|
18
18
|
var _a, _b;
|
|
19
19
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
20
20
|
react_1.default.createElement(head_1.default, null,
|
|
21
|
-
react_1.default.createElement("meta", {
|
|
21
|
+
react_1.default.createElement("meta", { content: "width=device-width, initial-scale=1", name: "viewport" }),
|
|
22
22
|
react_1.default.createElement("meta", { charSet: "utf-8" }),
|
|
23
23
|
react_1.default.createElement("title", null, `${props.title} | ${config_1.config.get("app-name") || ""}`)),
|
|
24
24
|
react_1.default.createElement("div", { className: "uxf-cms-layout" },
|
|
25
25
|
react_1.default.createElement("div", { className: "uxf-cms-layout__wrapper" },
|
|
26
|
-
react_1.default.createElement(sidebar_1.Sidebar, {
|
|
26
|
+
react_1.default.createElement(sidebar_1.Sidebar, { Logo: props.Logo, menuConfiguration: props.menuConfiguration }),
|
|
27
27
|
react_1.default.createElement("main", { className: `uxf-cms-layout__main ${(_a = props.mainClassName) !== null && _a !== void 0 ? _a : ""}`, style: { "--drawer-width": (0, rem_1.rem)(styles_1.drawerWidth) } },
|
|
28
28
|
props.loading ? (react_1.default.createElement("div", { className: "uxf-cms-layout__loading" },
|
|
29
29
|
react_1.default.createElement("div", { className: "uxf-cms-layout__loading-inner" },
|
|
@@ -32,7 +32,7 @@ const Layout = (props) => {
|
|
|
32
32
|
props.CustomHeader ? (props.CustomHeader) : (react_1.default.createElement("div", { className: `${props.Header ? "uxf-cms-layout__header" : ""} ${props.stickyHeader ? "uxf-cms-layout__header--sticky" : ""}` },
|
|
33
33
|
props.ToolbarRight && (react_1.default.createElement("div", { className: "uxf-cms-layout__toolbar" }, props.ToolbarRight)),
|
|
34
34
|
props.MessageBar,
|
|
35
|
-
react_1.default.createElement(layout_container_1.LayoutContainer, { type: (_b = props.headerContainerType) !== null && _b !== void 0 ? _b : props.containerType
|
|
35
|
+
react_1.default.createElement(layout_container_1.LayoutContainer, { className: "uxf-cms-layout__container--basic", type: (_b = props.headerContainerType) !== null && _b !== void 0 ? _b : props.containerType },
|
|
36
36
|
react_1.default.createElement("div", { className: "uxf-cms-layout__avatar-title-wrapper" },
|
|
37
37
|
props.Avatar,
|
|
38
38
|
react_1.default.createElement("div", { className: "uxf-cms-layout__breadcrumbs-title-wrapper" },
|
package/lib/layout/sidebar.js
CHANGED
|
@@ -31,11 +31,11 @@ const menu_1 = require("../menu");
|
|
|
31
31
|
const mobile_bar_1 = require("../menu/mobile-bar");
|
|
32
32
|
const user_menu_1 = require("../menu/ui/user-menu");
|
|
33
33
|
const styles_1 = require("./styles");
|
|
34
|
-
const uxfLogo = (react_1.default.createElement("svg", {
|
|
35
|
-
react_1.default.createElement("path", {
|
|
36
|
-
react_1.default.createElement("path", {
|
|
34
|
+
const uxfLogo = (react_1.default.createElement("svg", { height: "30", viewBox: "0 0 179 40", width: "134" },
|
|
35
|
+
react_1.default.createElement("path", { clipRule: "evenodd", d: "M33.563 12.874a9.103 9.103 0 0 0 0-12.874L20.69 12.874l.107.105a9.103 9.103 0 0 0 12.766-.105Zm-20.69-6.437a9.103 9.103 0 0 1 .106 12.766l-.105.107L0 6.437a9.103 9.103 0 0 1 12.874 0ZM40 33.563 27.127 20.69l-.106.107a9.103 9.103 0 0 0 12.98 12.766Zm-20.69-6.437-.107-.105A9.103 9.103 0 0 0 6.437 40l12.874-12.874Z", fill: "#FFF", fillRule: "evenodd" }),
|
|
36
|
+
react_1.default.createElement("path", { clipRule: "evenodd", d: "m84.325 7.295 5.133 8.675h.199l5.158-8.675h6.078l-7.768 12.727 7.942 12.727h-6.19l-5.22-8.687h-.199l-5.22 8.687h-6.165l7.967-12.727-7.818-12.727h6.103Zm-24.194 0v16.07c0 .97.214 1.832.64 2.586a4.58 4.58 0 0 0 1.809 1.777c.779.431 1.686.647 2.722.647 1.044 0 1.953-.216 2.728-.647a4.591 4.591 0 0 0 1.802-1.777c.427-.754.64-1.616.64-2.585V7.296h5.382v16.53c0 1.856-.441 3.48-1.324 4.872-.882 1.392-2.115 2.475-3.697 3.25-1.583.775-3.426 1.162-5.531 1.162-2.113 0-3.96-.387-5.543-1.162-1.583-.775-2.813-1.858-3.692-3.25-.878-1.392-1.317-3.016-1.317-4.872V7.296h5.381ZM170.25 13.41c2.411 0 4.311.51 5.698 1.529 1.388 1.019 2.198 2.407 2.43 4.164l-4.847.298a2.555 2.555 0 0 0-.534-1.125 2.942 2.942 0 0 0-1.075-.808c-.444-.203-.972-.304-1.585-.304-.821 0-1.512.172-2.076.515-.563.344-.845.802-.845 1.374 0 .456.182.84.547 1.156.364.315.99.567 1.877.758l3.455.696c1.856.381 3.24.994 4.151 1.84.912.845 1.367 1.955 1.367 3.33 0 1.252-.366 2.35-1.1 3.294-.733.945-1.736 1.68-3.007 2.206-1.272.526-2.737.79-4.394.79-2.527 0-4.539-.529-6.034-1.585-1.496-1.057-2.372-2.496-2.629-4.32l5.208-.273c.157.77.538 1.357 1.143 1.759.605.402 1.38.603 2.324.603.928 0 1.676-.18 2.244-.54.567-.361.855-.827.864-1.4-.009-.48-.212-.875-.609-1.186-.398-.31-1.011-.55-1.84-.715l-3.306-.659c-1.864-.372-3.25-1.019-4.157-1.938-.908-.92-1.361-2.093-1.361-3.518 0-1.226.333-2.283 1-3.17.667-.886 1.608-1.57 2.821-2.05 1.214-.48 2.637-.72 4.27-.72Zm-36.686.373a12.285 12.285 0 0 0-3.051-.373c-1.525 0-2.865.23-4.021.69-1.156.46-2.098 1.114-2.827 1.964-.73.849-1.219 1.854-1.467 3.014l4.897.397c.182-.63.555-1.153 1.119-1.572.563-.418 1.321-.627 2.274-.627.903 0 1.601.215 2.094.646.493.43.74 1.04.74 1.827v.075c0 .405-.153.712-.46.92-.307.206-.8.362-1.479.465-.68.104-1.574.214-2.685.33-.944.09-1.845.248-2.703.472a7.698 7.698 0 0 0-2.293.994 4.727 4.727 0 0 0-1.591 1.74c-.39.721-.584 1.612-.584 2.673 0 1.259.275 2.31.826 3.15a5.147 5.147 0 0 0 2.256 1.902c.953.427 2.038.64 3.257.64.944 0 1.777-.126 2.498-.38a5.55 5.55 0 0 0 1.852-1.055 5.31 5.31 0 0 0 1.23-1.573h.149v2.648h5.022V19.873c0-1.135-.22-2.11-.659-2.927a5.655 5.655 0 0 0-1.796-2.007 8.039 8.039 0 0 0-2.598-1.156Zm-13.424-2.05V7.294h-16.853v25.454h5.381V22.235h10.354v-4.438h-10.354v-6.065h11.472Zm32.603 1.677c1.326 0 2.482.29 3.468.87.986.58 1.753 1.407 2.3 2.48.546 1.073.82 2.35.82 3.834V32.75h-5.295V21.539c.008-1.169-.29-2.082-.895-2.74-.605-.66-1.437-.989-2.498-.989-.713 0-1.34.153-1.883.46a3.166 3.166 0 0 0-1.268 1.336c-.302.584-.458 1.286-.466 2.107V32.75h-5.295V13.659h5.047v3.368H147a5.358 5.358 0 0 1 2.126-2.641c.994-.65 2.2-.976 3.616-.976Zm-20.061 10.782c.286-.087.512-.184.678-.292v2.026c0 .671-.17 1.272-.51 1.802-.34.53-.808.951-1.404 1.262-.597.31-1.285.466-2.064.466-.812 0-1.481-.189-2.007-.566-.526-.377-.789-.925-.789-1.646 0-.497.128-.914.385-1.25.257-.335.617-.602 1.082-.801a6.547 6.547 0 0 1 1.628-.435l.969-.143a24.15 24.15 0 0 0 1.069-.186c.356-.071.677-.15.963-.237Z", fill: "#FFF", fillRule: "evenodd" })));
|
|
37
37
|
const Sidebar = (props) => {
|
|
38
|
-
var _a, _b;
|
|
38
|
+
var _a, _b, _c;
|
|
39
39
|
const [deviceHeight, setDeviceHeight] = (0, react_1.useState)(0);
|
|
40
40
|
const [isMenuOpen, setIsMenuOpen] = (0, react_1.useState)(false);
|
|
41
41
|
const toggleMenu = () => setIsMenuOpen((prev) => !prev);
|
|
@@ -67,7 +67,7 @@ const Sidebar = (props) => {
|
|
|
67
67
|
react_1.default.createElement("div", { className: `uxf-cms-sidebar__content ${isMenuOpen ? "uxf-cms-sidebar__content--open" : "uxf-cms-sidebar__content--closed"}`, style: { "--device-height": (0, rem_1.rem)(deviceHeight) } },
|
|
68
68
|
react_1.default.createElement("div", { className: "uxf-cms-sidebar__logo" }, (_b = props.Logo) !== null && _b !== void 0 ? _b : uxfLogo),
|
|
69
69
|
props.menuConfiguration && props.menuConfiguration.length > 0 && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
70
|
-
react_1.default.createElement("div", { className: `uxf-cms-sidebar__nav ${props.menuConfiguration
|
|
70
|
+
react_1.default.createElement("div", { className: `uxf-cms-sidebar__nav ${((_c = props.menuConfiguration.at(0)) === null || _c === void 0 ? void 0 : _c.type) === "super-section"
|
|
71
71
|
? "uxf-cms-sidebar__nav--super-section"
|
|
72
72
|
: ""}` },
|
|
73
73
|
react_1.default.createElement(menu_1.Menu, { menu: props.menuConfiguration })),
|
package/lib/layout/types.d.ts
CHANGED
|
@@ -5,6 +5,15 @@ export type LayoutContainerType = "fullWidth" | "wide" | "narrow" | "none";
|
|
|
5
5
|
export interface LayoutContainerProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
6
|
type?: LayoutContainerType;
|
|
7
7
|
}
|
|
8
|
+
export interface AppBarProps {
|
|
9
|
+
Logo?: ReactNode;
|
|
10
|
+
ToolbarRight?: ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export interface SidebarProps {
|
|
13
|
+
Logo?: ReactNode;
|
|
14
|
+
menuConfiguration?: MenuItem[];
|
|
15
|
+
CustomSidebar?: ReactElement;
|
|
16
|
+
}
|
|
8
17
|
export type LayoutProps = SidebarProps & {
|
|
9
18
|
Avatar?: ReactNode;
|
|
10
19
|
children?: ReactNode;
|
|
@@ -24,12 +33,3 @@ export type LayoutProps = SidebarProps & {
|
|
|
24
33
|
stickyHeader?: boolean;
|
|
25
34
|
CustomHeader?: ReactNode;
|
|
26
35
|
};
|
|
27
|
-
export interface AppBarProps {
|
|
28
|
-
Logo?: ReactNode;
|
|
29
|
-
ToolbarRight?: ReactNode;
|
|
30
|
-
}
|
|
31
|
-
export interface SidebarProps {
|
|
32
|
-
Logo?: ReactNode;
|
|
33
|
-
menuConfiguration?: MenuItem[];
|
|
34
|
-
CustomSidebar?: ReactElement;
|
|
35
|
-
}
|
package/lib/menu/factory.js
CHANGED
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.createCustomContent = createCustomContent;
|
|
4
|
+
exports.createSuperSection = createSuperSection;
|
|
5
|
+
exports.createSection = createSection;
|
|
6
|
+
exports.createLink = createLink;
|
|
7
|
+
exports.createExternalLink = createExternalLink;
|
|
8
|
+
exports.createUserMenu = createUserMenu;
|
|
9
|
+
exports.createTableLink = createTableLink;
|
|
4
10
|
const active_item_resolver_1 = require("./active-item-resolver");
|
|
5
11
|
const model_1 = require("./model");
|
|
6
12
|
function createCustomContent(title, content) {
|
|
7
13
|
return model_1.MenuItem.create(title, "custom").setContent(content);
|
|
8
14
|
}
|
|
9
|
-
exports.createCustomContent = createCustomContent;
|
|
10
15
|
function createSuperSection(title, children) {
|
|
11
16
|
return model_1.MenuItem.create(title, "super-section").setChildren(children);
|
|
12
17
|
}
|
|
13
|
-
exports.createSuperSection = createSuperSection;
|
|
14
18
|
function createSection(title, icon, children) {
|
|
15
19
|
return model_1.MenuItem.create(title, "section").setIcon(icon).setChildren(children);
|
|
16
20
|
}
|
|
17
|
-
exports.createSection = createSection;
|
|
18
21
|
function createLink(title, routeName, routeParams, icon, endElement) {
|
|
19
22
|
return model_1.MenuItem.create(title, "link")
|
|
20
23
|
.setRoute(routeName, routeParams)
|
|
@@ -22,15 +25,12 @@ function createLink(title, routeName, routeParams, icon, endElement) {
|
|
|
22
25
|
.setEndElement(endElement)
|
|
23
26
|
.setActiveResolver(active_item_resolver_1.ActiveItemResolver.anyOf([routeName]));
|
|
24
27
|
}
|
|
25
|
-
exports.createLink = createLink;
|
|
26
28
|
function createExternalLink(title, href, icon, endElement) {
|
|
27
29
|
return model_1.MenuItem.create(title, "link").setIsExternal(true).setIcon(icon).setEndElement(endElement).setUrl(href);
|
|
28
30
|
}
|
|
29
|
-
exports.createExternalLink = createExternalLink;
|
|
30
31
|
function createUserMenu(userMenuData, children) {
|
|
31
32
|
return model_1.MenuItem.create("Můj profil", "super-section").setUserMenuData(userMenuData).setChildren(children);
|
|
32
33
|
}
|
|
33
|
-
exports.createUserMenu = createUserMenu;
|
|
34
34
|
function createTableLink(title, entityAlias, icon, endElement) {
|
|
35
35
|
return model_1.MenuItem.create(title, "link")
|
|
36
36
|
.setRoute("cms/table", { entityAlias })
|
|
@@ -38,4 +38,3 @@ function createTableLink(title, entityAlias, icon, endElement) {
|
|
|
38
38
|
.setEndElement(endElement)
|
|
39
39
|
.setActiveResolver(active_item_resolver_1.ActiveItemResolver.tableLink());
|
|
40
40
|
}
|
|
41
|
-
exports.createTableLink = createTableLink;
|
package/lib/menu/mobile-bar.js
CHANGED
|
@@ -36,19 +36,19 @@ const MobileBar = (props) => {
|
|
|
36
36
|
mobileBarMenu.map((item, index) => {
|
|
37
37
|
var _a, _b, _c, _d;
|
|
38
38
|
if (item.children.length) {
|
|
39
|
-
return (react_1.default.createElement(sub_menu_mobile_1.SubMenuMobile, {
|
|
40
|
-
react_1.default.createElement("button", { type: "button"
|
|
39
|
+
return (react_1.default.createElement(sub_menu_mobile_1.SubMenuMobile, { content: item.children, key: index, title: item.title },
|
|
40
|
+
react_1.default.createElement("button", { className: buttonClassName, type: "button" }, item.userMenuData ? (react_1.default.createElement(avatar_1.Avatar, { className: "uxf-cms-mobile-bar__avatar", letters: (0, get_avatar_user_letters_1.getAvatarUserLetters)(item.userMenuData.name), size: "sm", src: item.userMenuData.avatar, variant: "rounded" })) : (react_1.default.createElement(react_1.default.Fragment, null,
|
|
41
41
|
react_1.default.createElement(icon_1.Icon, { name: (_a = item.icon) !== null && _a !== void 0 ? _a : "", size: 24 }),
|
|
42
|
-
react_1.default.createElement(icon_1.Icon, { name: "caretDown", size: 16
|
|
42
|
+
react_1.default.createElement(icon_1.Icon, { className: "uxf-cms-mobile-bar__caret", name: "caretDown", size: 16 }))))));
|
|
43
43
|
}
|
|
44
44
|
if (item.url || item.route) {
|
|
45
|
-
return (react_1.default.createElement(link_1.default, {
|
|
45
|
+
return (react_1.default.createElement(link_1.default, { className: buttonClassName, href: (_b = item.url) !== null && _b !== void 0 ? _b : config_1.container.get("route")(item.route, item.routeParams), key: index, rel: item.isExternal ? "noreferrer noopener" : undefined, target: item.isExternal ? "_blank" : undefined },
|
|
46
46
|
react_1.default.createElement(icon_1.Icon, { name: (_c = item.icon) !== null && _c !== void 0 ? _c : "user", size: 24 })));
|
|
47
47
|
}
|
|
48
|
-
return (react_1.default.createElement("span", {
|
|
48
|
+
return (react_1.default.createElement("span", { className: buttonClassName, key: index },
|
|
49
49
|
react_1.default.createElement(icon_1.Icon, { name: (_d = item.icon) !== null && _d !== void 0 ? _d : "user", size: 24 })));
|
|
50
50
|
}),
|
|
51
|
-
react_1.default.createElement("button", {
|
|
51
|
+
react_1.default.createElement("button", { className: buttonClassName, onClick: props.toggleMenu, type: "button" },
|
|
52
52
|
react_1.default.createElement(icon_1.Icon, { name: "bars", size: 24 }))));
|
|
53
53
|
};
|
|
54
54
|
exports.MobileBar = MobileBar;
|
package/lib/menu/model.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MenuItem = void 0;
|
|
4
|
+
const empty_array_1 = require("@uxf/core/constants/empty-array");
|
|
5
|
+
const is_not_nil_1 = require("@uxf/core/utils/is-not-nil");
|
|
4
6
|
class MenuItem {
|
|
5
7
|
static create(title, type) {
|
|
6
8
|
return new MenuItem(title, type);
|
|
@@ -23,7 +25,7 @@ class MenuItem {
|
|
|
23
25
|
return this;
|
|
24
26
|
}
|
|
25
27
|
setChildren(children) {
|
|
26
|
-
this._children = children !== null && children !== void 0 ? children :
|
|
28
|
+
this._children = children !== null && children !== void 0 ? children : empty_array_1.EMPTY_ARRAY;
|
|
27
29
|
return this;
|
|
28
30
|
}
|
|
29
31
|
setRoute(route, routeParams) {
|
|
@@ -52,7 +54,7 @@ class MenuItem {
|
|
|
52
54
|
return this;
|
|
53
55
|
}
|
|
54
56
|
isActive(router, activeRoute) {
|
|
55
|
-
return
|
|
57
|
+
return (0, is_not_nil_1.isNotNil)(this._activeItemResolver && this._activeItemResolver(router, activeRoute));
|
|
56
58
|
}
|
|
57
59
|
hasActiveChildren(router, activeRoute) {
|
|
58
60
|
return this.children.some((item) => item.isActive(router, activeRoute));
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ReactElement } from "react";
|
|
2
2
|
import { ListItemProps } from "./types";
|
|
3
|
-
export declare
|
|
3
|
+
export declare function ListItem<T extends Record<string, any>>(props: ListItemProps<T>): ReactElement;
|