@uxf/cms 13.0.3 → 14.1.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/README.md +1 -1
- package/api/index.d.ts +2 -0
- package/api/index.js +2 -2
- package/api/swr.js +71 -6
- package/content-builder/content-builder-header.js +42 -3
- package/content-builder/content-builder.js +140 -18
- package/content-builder/content-builder.stories.js +24 -5
- package/content-builder/forms/content-builder-basic-form.js +212 -25
- package/content-builder/forms/content-builder-seo-form.js +92 -8
- package/forms/change-password-form/change-password-form.js +152 -15
- package/forms/components/wysiwyg-input/wysiwyg-input.js +188 -50
- package/forms/components/wysiwyg-input/wysiwyg-input.stories.js +127 -22
- package/forms/forgotten-password-form/forgotten-password-form.js +119 -15
- package/forms/invite-user-form/invite-user-form.js +171 -13
- package/forms/login-form/login-form.js +122 -13
- package/forms/renew-password-form/renew-password-form.js +148 -16
- package/lib/api/create-axios-instance.d.ts +3 -1
- package/lib/api/create-axios-request.d.ts +3 -1
- package/lib/api/create-axios-request.js +9 -2
- package/lib/api/create-axios-request.test.d.ts +1 -0
- package/lib/api/create-axios-request.test.js +32 -0
- package/lib/layout/layout.js +126 -28
- package/lib/layout/sidebar.js +69 -38
- package/lib/menu/ui/menu-item.js +5 -2
- package/lib/menu/ui/sub-menu/sub-menu-mobile.js +62 -14
- package/lib/menu/ui/sub-menu/sub-menu.js +66 -14
- package/lib/menu/ui/sub-menu/use-sub-menu.js +137 -34
- package/lib/menu/ui/user-menu.js +178 -14
- package/package.json +21 -21
- package/pages/content-builder/components/form-content.js +189 -38
- package/pages/content-builder/components/form-root-fields.js +3 -3
- package/pages/content-builder/components/form.js +142 -27
- package/pages/content-builder/components/header.js +44 -5
- package/pages/content-builder/content/feature-section.js +67 -15
- package/pages/content-builder/content/gallery.js +38 -6
- package/pages/content-builder/content/hero-section.js +39 -6
- package/pages/content-builder/content/people.js +64 -13
- package/pages/content-builder/content/wysiwyg.js +60 -6
- package/pages/content-builder/content-builder-page.js +120 -48
- package/pages/content-builder/content-field.js +216 -35
- package/pages/content-builder/content-header-behaviour.spec.d.ts +1 -0
- package/pages/content-builder/content-header-behaviour.spec.js +22 -0
- package/pages/content-builder/content-header.js +100 -53
- package/pages/content-builder/context/details-visibility-context.js +96 -18
- package/pages/forgotten-password-page/forgotten-password-page.js +29 -46
- package/pages/grid-page/grid-page.js +292 -76
- package/pages/grid-page/history-pathname.d.ts +6 -0
- package/pages/grid-page/history-pathname.js +11 -0
- package/pages/grid-page/history-pathname.test.d.ts +1 -0
- package/pages/grid-page/history-pathname.test.js +11 -0
- package/pages/grid-page/use-hidden-columns.js +29 -8
- package/pages/invite-user-page/invite-user-page.js +39 -16
- package/pages/login-page/login-page.js +44 -50
- package/pages/renew-password-page/renew-password-page.js +35 -43
- package/pages/translations.d.ts +3 -0
- package/pages/translations.js +3 -0
- package/security/restricted-page.js +88 -10
- package/security/use-logged-user.js +33 -8
- package/translations/cs.json +2 -1
- package/translations/translations.d.ts +3 -0
- package/ui/avatar/avatar.js +3 -2
- package/ui/copy-to-clipboard/copy-to-clipboard.js +57 -44
- package/ui/copy-to-clipboard-button/copy-to-clipboard-button.js +47 -46
- package/utils/remove-confirm-handler.js +80 -11
- package/utils/use-viewport-height.js +26 -20
- package/utils/use-viewport-height.test.d.ts +1 -0
- package/utils/use-viewport-height.test.js +37 -0
- package/utils/use-visual-viewport-height.d.ts +2 -0
- package/utils/use-visual-viewport-height.js +26 -0
|
@@ -1,58 +1,59 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
35
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
6
|
exports.CopyToClipboardButton = void 0;
|
|
7
|
+
const compiler_runtime_1 = require("react/compiler-runtime");
|
|
37
8
|
const copy_to_clipboard_1 = require("@uxf/core/utils/copy-to-clipboard");
|
|
38
9
|
const translations_1 = require("@uxf/core-react/translations");
|
|
39
10
|
const button_1 = require("@uxf/ui/button");
|
|
40
11
|
const flash_messages_service_1 = require("@uxf/ui/flash-messages/flash-messages-service");
|
|
41
12
|
const icon_1 = require("@uxf/ui/icon");
|
|
42
|
-
const react_1 =
|
|
13
|
+
const react_1 = __importDefault(require("react"));
|
|
43
14
|
// eslint-disable-next-line react/destructuring-assignment
|
|
44
|
-
const CopyToClipboardButton =
|
|
15
|
+
const CopyToClipboardButton = t0 => {
|
|
16
|
+
const $ = (0, compiler_runtime_1.c)(8);
|
|
17
|
+
const { color: t1, size: t2, textToCopy } = t0;
|
|
18
|
+
const color = t1 === undefined ? "default" : t1;
|
|
19
|
+
const size = t2 === undefined ? "sm" : t2;
|
|
45
20
|
const t = (0, translations_1.useUxfTranslation)();
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
(
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
: t("uxf-cms-copy-to-clipboard-button:copy-failed"),
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
21
|
+
let t3;
|
|
22
|
+
if ($[0] !== t || $[1] !== textToCopy) {
|
|
23
|
+
t3 = async () => {
|
|
24
|
+
const isCopied = await (0, copy_to_clipboard_1.copyToClipboard)(textToCopy);
|
|
25
|
+
(0, flash_messages_service_1.flashMessage)({
|
|
26
|
+
message: isCopied ? t("uxf-cms-copy-to-clipboard-button:text-copied") : t("uxf-cms-copy-to-clipboard-button:copy-failed"),
|
|
27
|
+
variant: isCopied ? "success" : "error"
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
$[0] = t;
|
|
31
|
+
$[1] = textToCopy;
|
|
32
|
+
$[2] = t3;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
t3 = $[2];
|
|
36
|
+
}
|
|
37
|
+
const onCopy = t3;
|
|
38
|
+
let t4;
|
|
39
|
+
if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
|
|
40
|
+
t4 = react_1.default.createElement(icon_1.Icon, { name: "copy" });
|
|
41
|
+
$[3] = t4;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
t4 = $[3];
|
|
45
|
+
}
|
|
46
|
+
let t5;
|
|
47
|
+
if ($[4] !== color || $[5] !== onCopy || $[6] !== size) {
|
|
48
|
+
t5 = react_1.default.createElement(button_1.Button, { color: color, onClick: onCopy, size: size }, t4);
|
|
49
|
+
$[4] = color;
|
|
50
|
+
$[5] = onCopy;
|
|
51
|
+
$[6] = size;
|
|
52
|
+
$[7] = t5;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
t5 = $[7];
|
|
56
|
+
}
|
|
57
|
+
return t5;
|
|
57
58
|
};
|
|
58
59
|
exports.CopyToClipboardButton = CopyToClipboardButton;
|
|
@@ -4,28 +4,97 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.removeConfirmHandler = removeConfirmHandler;
|
|
7
|
+
const compiler_runtime_1 = require("react/compiler-runtime");
|
|
7
8
|
const translations_1 = require("@uxf/core-react/translations");
|
|
8
9
|
const button_1 = require("@uxf/ui/button");
|
|
9
10
|
const modal_1 = require("@uxf/ui/modal");
|
|
10
11
|
const modal_dialog_1 = require("@uxf/ui/modal-dialog/modal-dialog");
|
|
11
12
|
const react_1 = __importDefault(require("react"));
|
|
12
13
|
function removeConfirmHandler() {
|
|
13
|
-
return new Promise(
|
|
14
|
+
return new Promise(resolve => {
|
|
14
15
|
const RemoveConfirmModal = () => {
|
|
16
|
+
const $ = (0, compiler_runtime_1.c)(16);
|
|
15
17
|
const t = (0, translations_1.useUxfTranslation)();
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
let t0;
|
|
19
|
+
if ($[0] !== t) {
|
|
20
|
+
t0 = t("uxf-cms-remove-confirm-handler:cancel");
|
|
21
|
+
$[0] = t;
|
|
22
|
+
$[1] = t0;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
t0 = $[1];
|
|
26
|
+
}
|
|
27
|
+
let t1;
|
|
28
|
+
if ($[2] !== t0) {
|
|
29
|
+
t1 = react_1.default.createElement(button_1.Button, { onClick: _temp }, t0);
|
|
30
|
+
$[2] = t0;
|
|
31
|
+
$[3] = t1;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
t1 = $[3];
|
|
35
|
+
}
|
|
36
|
+
let t2;
|
|
37
|
+
if ($[4] !== t) {
|
|
38
|
+
t2 = t("uxf-cms-remove-confirm-handler:confirm-delete");
|
|
39
|
+
$[4] = t;
|
|
40
|
+
$[5] = t2;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
t2 = $[5];
|
|
44
|
+
}
|
|
45
|
+
let t3;
|
|
46
|
+
if ($[6] !== t2) {
|
|
47
|
+
t3 = react_1.default.createElement(button_1.Button, { color: "negative", onClick: _temp2 }, t2);
|
|
48
|
+
$[6] = t2;
|
|
49
|
+
$[7] = t3;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
t3 = $[7];
|
|
53
|
+
}
|
|
54
|
+
let t4;
|
|
55
|
+
if ($[8] !== t1 || $[9] !== t3) {
|
|
56
|
+
t4 = react_1.default.createElement(react_1.default.Fragment, null,
|
|
57
|
+
t1,
|
|
58
|
+
t3);
|
|
59
|
+
$[8] = t1;
|
|
60
|
+
$[9] = t3;
|
|
61
|
+
$[10] = t4;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
t4 = $[10];
|
|
65
|
+
}
|
|
66
|
+
let t5;
|
|
67
|
+
if ($[11] !== t) {
|
|
68
|
+
t5 = t("uxf-cms-remove-confirm-handler:confirm-delete-message");
|
|
69
|
+
$[11] = t;
|
|
70
|
+
$[12] = t5;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
t5 = $[12];
|
|
74
|
+
}
|
|
75
|
+
let t6;
|
|
76
|
+
if ($[13] !== t4 || $[14] !== t5) {
|
|
77
|
+
t6 = react_1.default.createElement(modal_dialog_1.ModalDialog, { footer: t4, title: t5, width: "sm" });
|
|
78
|
+
$[13] = t4;
|
|
79
|
+
$[14] = t5;
|
|
80
|
+
$[15] = t6;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
t6 = $[15];
|
|
84
|
+
}
|
|
85
|
+
return t6;
|
|
25
86
|
};
|
|
26
87
|
(0, modal_1.openModal)({
|
|
27
88
|
isBackdropCloseDisabled: true,
|
|
28
|
-
children: react_1.default.createElement(RemoveConfirmModal, null)
|
|
89
|
+
children: react_1.default.createElement(RemoveConfirmModal, null)
|
|
29
90
|
});
|
|
30
91
|
});
|
|
31
92
|
}
|
|
93
|
+
function _temp() {
|
|
94
|
+
resolve(false);
|
|
95
|
+
(0, modal_1.closeModal)();
|
|
96
|
+
}
|
|
97
|
+
function _temp2() {
|
|
98
|
+
resolve(true);
|
|
99
|
+
(0, modal_1.closeModal)();
|
|
100
|
+
}
|
|
@@ -1,28 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useViewportHeight = useViewportHeight;
|
|
4
|
+
const compiler_runtime_1 = require("react/compiler-runtime");
|
|
4
5
|
const react_1 = require("react");
|
|
5
|
-
|
|
6
|
-
var _a, _b;
|
|
7
|
-
if (typeof window === "undefined") {
|
|
8
|
-
return "100vh";
|
|
9
|
-
}
|
|
10
|
-
return (_b = (_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.height) !== null && _b !== void 0 ? _b : "100vh";
|
|
11
|
-
}
|
|
6
|
+
const use_visual_viewport_height_1 = require("./use-visual-viewport-height");
|
|
12
7
|
function useViewportHeight(scrollLock) {
|
|
13
|
-
|
|
14
|
-
(0,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (scrollLock) {
|
|
22
|
-
document.body.classList.remove("xl:overflow-hidden");
|
|
8
|
+
var _a;
|
|
9
|
+
const $ = (0, compiler_runtime_1.c)(3);
|
|
10
|
+
let t0;
|
|
11
|
+
let t1;
|
|
12
|
+
if ($[0] !== scrollLock) {
|
|
13
|
+
t0 = () => {
|
|
14
|
+
if (!scrollLock) {
|
|
15
|
+
return;
|
|
23
16
|
}
|
|
24
|
-
|
|
17
|
+
document.body.classList.add("xl:overflow-hidden");
|
|
18
|
+
return _temp;
|
|
25
19
|
};
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
t1 = [scrollLock];
|
|
21
|
+
$[0] = scrollLock;
|
|
22
|
+
$[1] = t0;
|
|
23
|
+
$[2] = t1;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
t0 = $[1];
|
|
27
|
+
t1 = $[2];
|
|
28
|
+
}
|
|
29
|
+
(0, react_1.useEffect)(t0, t1);
|
|
30
|
+
return (_a = (0, use_visual_viewport_height_1.useVisualViewportHeight)()) !== null && _a !== void 0 ? _a : "100vh";
|
|
31
|
+
}
|
|
32
|
+
function _temp() {
|
|
33
|
+
return document.body.classList.remove("xl:overflow-hidden");
|
|
28
34
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const react_1 = require("@testing-library/react");
|
|
4
|
+
const use_viewport_height_1 = require("./use-viewport-height");
|
|
5
|
+
class FakeVisualViewport extends EventTarget {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.height = 700;
|
|
9
|
+
this.scale = 1;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
let visualViewport;
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
visualViewport = new FakeVisualViewport();
|
|
15
|
+
Object.defineProperty(window, "visualViewport", { configurable: true, value: visualViewport });
|
|
16
|
+
});
|
|
17
|
+
afterEach(() => {
|
|
18
|
+
Object.defineProperty(window, "visualViewport", { configurable: true, value: undefined });
|
|
19
|
+
});
|
|
20
|
+
test("follows the visual viewport, which shrinks when the on-screen keyboard opens", () => {
|
|
21
|
+
const { result } = (0, react_1.renderHook)(() => (0, use_viewport_height_1.useViewportHeight)());
|
|
22
|
+
(0, react_1.act)(() => {
|
|
23
|
+
visualViewport.height = 400;
|
|
24
|
+
// iOS fires this on the visual viewport only; window gets no resize event.
|
|
25
|
+
visualViewport.dispatchEvent(new Event("resize"));
|
|
26
|
+
});
|
|
27
|
+
expect(result.current).toBe(400);
|
|
28
|
+
});
|
|
29
|
+
test("ignores pinch zoom, which shrinks the visual viewport by the zoom scale", () => {
|
|
30
|
+
const { result } = (0, react_1.renderHook)(() => (0, use_viewport_height_1.useViewportHeight)());
|
|
31
|
+
(0, react_1.act)(() => {
|
|
32
|
+
visualViewport.scale = 2;
|
|
33
|
+
visualViewport.height = 350;
|
|
34
|
+
visualViewport.dispatchEvent(new Event("resize"));
|
|
35
|
+
});
|
|
36
|
+
expect(result.current).toBe(700);
|
|
37
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useVisualViewportHeight = useVisualViewportHeight;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
function subscribe(onStoreChange) {
|
|
6
|
+
var _a;
|
|
7
|
+
// The visual viewport has its own resize event: iOS fires it when the on-screen keyboard opens, and the window
|
|
8
|
+
// gets none.
|
|
9
|
+
const target = (_a = window.visualViewport) !== null && _a !== void 0 ? _a : window;
|
|
10
|
+
const controller = new AbortController();
|
|
11
|
+
target.addEventListener("resize", onStoreChange, {
|
|
12
|
+
signal: controller.signal
|
|
13
|
+
});
|
|
14
|
+
return () => controller.abort();
|
|
15
|
+
}
|
|
16
|
+
function getSnapshot() {
|
|
17
|
+
const viewport = window.visualViewport;
|
|
18
|
+
// Times the zoom scale: pinch zoom shrinks `height` by the scale, and the layout must not shrink with it. The
|
|
19
|
+
// on-screen keyboard shrinks it at scale 1, which is the change to follow.
|
|
20
|
+
return viewport ? viewport.height * viewport.scale : window.innerHeight;
|
|
21
|
+
}
|
|
22
|
+
/** Height of the visual viewport in px, not counting pinch zoom; `undefined` on the server and while hydrating. */
|
|
23
|
+
function useVisualViewportHeight() {
|
|
24
|
+
return (0, react_1.useSyncExternalStore)(subscribe, getSnapshot, _temp);
|
|
25
|
+
}
|
|
26
|
+
function _temp() { }
|