@manuscripts/style-guide 1.13.7 → 1.13.8
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/Menus/Menus.js +56 -13
- package/dist/cjs/components/Menus/Submenu.js +8 -2
- package/dist/es/components/Menus/Menus.js +31 -12
- package/dist/es/components/Menus/Submenu.js +8 -2
- package/dist/types/components/Menus/Menus.d.ts +5 -0
- package/dist/types/components/Menus/Submenu.d.ts +1 -0
- package/package.json +1 -1
|
@@ -14,13 +14,37 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
+
}
|
|
23
|
+
Object.defineProperty(o, k2, desc);
|
|
24
|
+
}) : (function(o, m, k, k2) {
|
|
25
|
+
if (k2 === undefined) k2 = k;
|
|
26
|
+
o[k2] = m[k];
|
|
27
|
+
}));
|
|
28
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
29
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
30
|
+
}) : function(o, v) {
|
|
31
|
+
o["default"] = v;
|
|
32
|
+
});
|
|
33
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
17
40
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
41
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
42
|
};
|
|
20
43
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.Label = exports.Block = exports.BlockItem = exports.StyleBlock = exports.ListContainer = exports.bulletListContextMenu = exports.orderedListContextMenu = exports.Menus = void 0;
|
|
22
|
-
const react_1 =
|
|
44
|
+
exports.ColumnChangeWarningDialog = exports.Label = exports.Block = exports.BlockItem = exports.StyleBlock = exports.ListContainer = exports.bulletListContextMenu = exports.orderedListContextMenu = exports.Menus = void 0;
|
|
45
|
+
const react_1 = __importStar(require("react"));
|
|
23
46
|
const styled_components_1 = __importDefault(require("styled-components"));
|
|
47
|
+
const Dialog_1 = require("../Dialog");
|
|
24
48
|
const Submenu_1 = require("./Submenu");
|
|
25
49
|
const MenusContainer = styled_components_1.default.div `
|
|
26
50
|
display: flex;
|
|
@@ -44,17 +68,25 @@ const MenuContainer = styled_components_1.default.div `
|
|
|
44
68
|
}
|
|
45
69
|
`;
|
|
46
70
|
const Menus = ({ menus, innerRef, handleClick, }) => {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
71
|
+
const [columnMenu, setColumnMenu] = (0, react_1.useState)(undefined);
|
|
72
|
+
return (react_1.default.createElement(MenusContainer, { ref: innerRef },
|
|
73
|
+
menus.map((menu, index) => {
|
|
74
|
+
return (react_1.default.createElement(MenuContainer, { key: `menu-${index}`, isEnabled: menu.isEnabled },
|
|
75
|
+
react_1.default.createElement(MenuHeading, { onMouseDown: (e) => {
|
|
76
|
+
e.preventDefault();
|
|
77
|
+
handleClick([index]);
|
|
78
|
+
}, isOpen: menu.isOpen },
|
|
79
|
+
react_1.default.createElement(Submenu_1.Text, null, menu.label)),
|
|
80
|
+
menu.isEnabled && menu.isOpen && menu.submenu && (react_1.default.createElement(Submenu_1.SubmenusContainer, null, menu.submenu.map((submenu, sindex) => {
|
|
81
|
+
return (react_1.default.createElement(Submenu_1.Submenu, { key: `${index}-${sindex}`, menu: submenu, handleClick: (i) => handleClick([index, sindex, ...i]), setColumnMenu: setColumnMenu }));
|
|
82
|
+
})))));
|
|
83
|
+
}),
|
|
84
|
+
react_1.default.createElement(exports.ColumnChangeWarningDialog, { isOpen: !!columnMenu, primaryAction: () => {
|
|
85
|
+
if (columnMenu === null || columnMenu === void 0 ? void 0 : columnMenu.run) {
|
|
86
|
+
columnMenu.run();
|
|
87
|
+
setColumnMenu(undefined);
|
|
88
|
+
}
|
|
89
|
+
}, secondaryAction: () => setColumnMenu(undefined) })));
|
|
58
90
|
};
|
|
59
91
|
exports.Menus = Menus;
|
|
60
92
|
exports.orderedListContextMenu = [
|
|
@@ -110,3 +142,14 @@ exports.Label = styled_components_1.default.div `
|
|
|
110
142
|
font-style: normal;
|
|
111
143
|
color: ${(props) => (props.hide && 'white') || 'initial'};
|
|
112
144
|
`;
|
|
145
|
+
const ColumnChangeWarningDialog = ({ isOpen, primaryAction, secondaryAction }) => (react_1.default.createElement(Dialog_1.Dialog, { isOpen: isOpen, category: Dialog_1.Category.confirmation, header: "This change can't be tracked", message: "This column action won't be marked as chnage. Do you want to continue?", actions: {
|
|
146
|
+
primary: {
|
|
147
|
+
action: primaryAction,
|
|
148
|
+
title: 'Ok',
|
|
149
|
+
},
|
|
150
|
+
secondary: {
|
|
151
|
+
action: secondaryAction,
|
|
152
|
+
title: 'Cancel',
|
|
153
|
+
},
|
|
154
|
+
} }));
|
|
155
|
+
exports.ColumnChangeWarningDialog = ColumnChangeWarningDialog;
|
|
@@ -91,7 +91,11 @@ const Container = styled_components_1.default.div `
|
|
|
91
91
|
}
|
|
92
92
|
`;
|
|
93
93
|
const activeContent = (menu) => (menu.isActive ? '✓' : '');
|
|
94
|
-
const
|
|
94
|
+
const isColumnMenu = (menu) => (menu.role !== 'separator' &&
|
|
95
|
+
menu.id === 'format-table-add-column-before') ||
|
|
96
|
+
menu.id === 'format-table-add-column-after' ||
|
|
97
|
+
menu.id === 'format-table-delete-column';
|
|
98
|
+
const Submenu = ({ menu, handleClick, setColumnMenu, }) => {
|
|
95
99
|
if ((0, menus_1.isMenuSeparator)(menu)) {
|
|
96
100
|
return react_1.default.createElement(Separator, null);
|
|
97
101
|
}
|
|
@@ -124,6 +128,8 @@ const Submenu = ({ menu, handleClick }) => {
|
|
|
124
128
|
react_1.default.createElement(exports.Text, null, menu.label),
|
|
125
129
|
menu.submenu && react_1.default.createElement(Arrow, null),
|
|
126
130
|
menu.shortcut && react_1.default.createElement(Shortcut_1.Shortcut, { shortcut: menu.shortcut })),
|
|
127
|
-
menu.submenu && menu.isOpen && (react_1.default.createElement(NestedSubmenusContainer, null, menu.submenu.map((submenu, index) => (react_1.default.createElement(exports.Submenu, { key: `menu-${index}`, menu: submenu, handleClick: (i) =>
|
|
131
|
+
menu.submenu && menu.isOpen && (react_1.default.createElement(NestedSubmenusContainer, null, menu.submenu.map((submenu, index) => (react_1.default.createElement(exports.Submenu, { key: `menu-${index}`, menu: submenu, handleClick: (i) => isColumnMenu(submenu) && setColumnMenu
|
|
132
|
+
? setColumnMenu(submenu)
|
|
133
|
+
: handleClick([index, ...i]) })))))));
|
|
128
134
|
};
|
|
129
135
|
exports.Submenu = Submenu;
|
|
@@ -13,8 +13,9 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import React from 'react';
|
|
16
|
+
import React, { useState } from 'react';
|
|
17
17
|
import styled from 'styled-components';
|
|
18
|
+
import { Category, Dialog } from '../Dialog';
|
|
18
19
|
import { Submenu, SubmenusContainer, Text } from './Submenu';
|
|
19
20
|
const MenusContainer = styled.div `
|
|
20
21
|
display: flex;
|
|
@@ -38,17 +39,25 @@ const MenuContainer = styled.div `
|
|
|
38
39
|
}
|
|
39
40
|
`;
|
|
40
41
|
export const Menus = ({ menus, innerRef, handleClick, }) => {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
42
|
+
const [columnMenu, setColumnMenu] = useState(undefined);
|
|
43
|
+
return (React.createElement(MenusContainer, { ref: innerRef },
|
|
44
|
+
menus.map((menu, index) => {
|
|
45
|
+
return (React.createElement(MenuContainer, { key: `menu-${index}`, isEnabled: menu.isEnabled },
|
|
46
|
+
React.createElement(MenuHeading, { onMouseDown: (e) => {
|
|
47
|
+
e.preventDefault();
|
|
48
|
+
handleClick([index]);
|
|
49
|
+
}, isOpen: menu.isOpen },
|
|
50
|
+
React.createElement(Text, null, menu.label)),
|
|
51
|
+
menu.isEnabled && menu.isOpen && menu.submenu && (React.createElement(SubmenusContainer, null, menu.submenu.map((submenu, sindex) => {
|
|
52
|
+
return (React.createElement(Submenu, { key: `${index}-${sindex}`, menu: submenu, handleClick: (i) => handleClick([index, sindex, ...i]), setColumnMenu: setColumnMenu }));
|
|
53
|
+
})))));
|
|
54
|
+
}),
|
|
55
|
+
React.createElement(ColumnChangeWarningDialog, { isOpen: !!columnMenu, primaryAction: () => {
|
|
56
|
+
if (columnMenu === null || columnMenu === void 0 ? void 0 : columnMenu.run) {
|
|
57
|
+
columnMenu.run();
|
|
58
|
+
setColumnMenu(undefined);
|
|
59
|
+
}
|
|
60
|
+
}, secondaryAction: () => setColumnMenu(undefined) })));
|
|
52
61
|
};
|
|
53
62
|
export const orderedListContextMenu = [
|
|
54
63
|
{ items: ['1.', '2.', '3.'], type: 'order' },
|
|
@@ -103,3 +112,13 @@ export const Label = styled.div `
|
|
|
103
112
|
font-style: normal;
|
|
104
113
|
color: ${(props) => (props.hide && 'white') || 'initial'};
|
|
105
114
|
`;
|
|
115
|
+
export const ColumnChangeWarningDialog = ({ isOpen, primaryAction, secondaryAction }) => (React.createElement(Dialog, { isOpen: isOpen, category: Category.confirmation, header: "This change can't be tracked", message: "This column action won't be marked as chnage. Do you want to continue?", actions: {
|
|
116
|
+
primary: {
|
|
117
|
+
action: primaryAction,
|
|
118
|
+
title: 'Ok',
|
|
119
|
+
},
|
|
120
|
+
secondary: {
|
|
121
|
+
action: secondaryAction,
|
|
122
|
+
title: 'Cancel',
|
|
123
|
+
},
|
|
124
|
+
} }));
|
|
@@ -85,7 +85,11 @@ const Container = styled.div `
|
|
|
85
85
|
}
|
|
86
86
|
`;
|
|
87
87
|
const activeContent = (menu) => (menu.isActive ? '✓' : '');
|
|
88
|
-
|
|
88
|
+
const isColumnMenu = (menu) => (menu.role !== 'separator' &&
|
|
89
|
+
menu.id === 'format-table-add-column-before') ||
|
|
90
|
+
menu.id === 'format-table-add-column-after' ||
|
|
91
|
+
menu.id === 'format-table-delete-column';
|
|
92
|
+
export const Submenu = ({ menu, handleClick, setColumnMenu, }) => {
|
|
89
93
|
if (isMenuSeparator(menu)) {
|
|
90
94
|
return React.createElement(Separator, null);
|
|
91
95
|
}
|
|
@@ -118,5 +122,7 @@ export const Submenu = ({ menu, handleClick }) => {
|
|
|
118
122
|
React.createElement(Text, null, menu.label),
|
|
119
123
|
menu.submenu && React.createElement(Arrow, null),
|
|
120
124
|
menu.shortcut && React.createElement(Shortcut, { shortcut: menu.shortcut })),
|
|
121
|
-
menu.submenu && menu.isOpen && (React.createElement(NestedSubmenusContainer, null, menu.submenu.map((submenu, index) => (React.createElement(Submenu, { key: `menu-${index}`, menu: submenu, handleClick: (i) =>
|
|
125
|
+
menu.submenu && menu.isOpen && (React.createElement(NestedSubmenusContainer, null, menu.submenu.map((submenu, index) => (React.createElement(Submenu, { key: `menu-${index}`, menu: submenu, handleClick: (i) => isColumnMenu(submenu) && setColumnMenu
|
|
126
|
+
? setColumnMenu(submenu)
|
|
127
|
+
: handleClick([index, ...i]) })))))));
|
|
122
128
|
};
|
|
@@ -36,4 +36,9 @@ export declare const Block: import("styled-components").StyledComponent<"div", i
|
|
|
36
36
|
export declare const Label: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {
|
|
37
37
|
hide?: boolean | undefined;
|
|
38
38
|
}, never>;
|
|
39
|
+
export declare const ColumnChangeWarningDialog: React.FC<{
|
|
40
|
+
isOpen: boolean;
|
|
41
|
+
primaryAction: () => void;
|
|
42
|
+
secondaryAction: () => void;
|
|
43
|
+
}>;
|
|
39
44
|
export {};
|
|
@@ -20,6 +20,7 @@ export declare const SubmenusContainer: import("styled-components").StyledCompon
|
|
|
20
20
|
interface SubmenuProps {
|
|
21
21
|
menu: Menu | MenuSeparator;
|
|
22
22
|
handleClick: (position: number[]) => void;
|
|
23
|
+
setColumnMenu?: React.Dispatch<React.SetStateAction<undefined | Menu>>;
|
|
23
24
|
}
|
|
24
25
|
export declare const Submenu: React.FC<SubmenuProps>;
|
|
25
26
|
export {};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@manuscripts/style-guide",
|
|
3
3
|
"description": "Shared components for Manuscripts applications",
|
|
4
|
-
"version": "1.13.
|
|
4
|
+
"version": "1.13.8",
|
|
5
5
|
"repository": "github:Atypon-OpenSource/manuscripts-style-guide",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"main": "dist/cjs",
|