amis 1.4.2-beta.12 → 1.4.2-beta.17
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/lib/Schema.d.ts +4 -3
- package/lib/Schema.js.map +1 -1
- package/lib/components/AssociatedSelection.js +2 -2
- package/lib/components/AssociatedSelection.js.map +2 -2
- package/lib/components/Checkbox.d.ts +20 -20
- package/lib/components/Collapse.d.ts +51 -23
- package/lib/components/Collapse.js +69 -11
- package/lib/components/Collapse.js.map +2 -2
- package/lib/components/CollapseGroup.d.ts +88 -0
- package/lib/components/CollapseGroup.js +81 -0
- package/lib/components/CollapseGroup.js.map +13 -0
- package/lib/components/Editor.d.ts +84 -84
- package/lib/components/GridNav.d.ts +52 -0
- package/lib/components/GridNav.js +123 -0
- package/lib/components/GridNav.js.map +13 -0
- package/lib/components/InputBox.d.ts +22 -21
- package/lib/components/InputBox.js +10 -2
- package/lib/components/InputBox.js.map +2 -2
- package/lib/components/ListGroup.d.ts +21 -21
- package/lib/components/ResultBox.d.ts +84 -84
- package/lib/components/ResultBox.js +10 -2
- package/lib/components/ResultBox.js.map +2 -2
- package/lib/components/Tabs.d.ts +20 -20
- package/lib/components/TabsTransfer.d.ts +84 -84
- package/lib/components/Toast.d.ts +86 -85
- package/lib/components/Toast.js +6 -3
- package/lib/components/Toast.js.map +2 -2
- package/lib/components/Transfer.d.ts +84 -84
- package/lib/components/TransferDropDown.d.ts +85 -84
- package/lib/components/TransferDropDown.js +2 -2
- package/lib/components/TransferDropDown.js.map +2 -2
- package/lib/components/TransferPicker.d.ts +4 -0
- package/lib/components/TransferPicker.js +2 -2
- package/lib/components/TransferPicker.js.map +2 -2
- package/lib/components/Tree.d.ts +115 -84
- package/lib/components/Tree.js +183 -30
- package/lib/components/Tree.js.map +2 -2
- package/lib/components/icons.js +2 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/envOverwrite.d.ts +1 -1
- package/lib/envOverwrite.js +24 -9
- package/lib/envOverwrite.js.map +2 -2
- package/lib/factory.d.ts +11 -1
- package/lib/factory.js +31 -4
- package/lib/factory.js.map +2 -2
- package/lib/icons/download.js +7 -0
- package/lib/icons/drag-bar.js +10 -3
- package/lib/index.d.ts +2 -0
- package/lib/index.js +3 -1
- package/lib/index.js.map +2 -2
- package/lib/locale/en-US.js +1 -0
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +1 -0
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Collapse.d.ts +25 -20
- package/lib/renderers/Collapse.js +10 -73
- package/lib/renderers/Collapse.js.map +2 -2
- package/lib/renderers/CollapseGroup.d.ts +42 -0
- package/lib/renderers/CollapseGroup.js +33 -0
- package/lib/renderers/CollapseGroup.js.map +13 -0
- package/lib/renderers/Form/InputCity.d.ts +84 -84
- package/lib/renderers/Form/InputFile.d.ts +6 -0
- package/lib/renderers/Form/InputFile.js +18 -4
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/Item.js +2 -1
- package/lib/renderers/Form/Item.js.map +2 -2
- package/lib/renderers/Form/Select.d.ts +1 -0
- package/lib/renderers/Form/Select.js +2 -2
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/TransferPicker.d.ts +4 -0
- package/lib/renderers/Form/TransferPicker.js +2 -2
- package/lib/renderers/Form/TransferPicker.js.map +2 -2
- package/lib/renderers/Form/index.js +1 -1
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/GridNav.d.ts +99 -0
- package/lib/renderers/GridNav.js +82 -0
- package/lib/renderers/GridNav.js.map +13 -0
- package/lib/store/formItem.js +60 -4
- package/lib/store/formItem.js.map +2 -2
- package/lib/store/table.js +5 -5
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +224 -31
- package/lib/themes/ang.css +224 -31
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +224 -31
- package/lib/themes/antd.css +224 -31
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +231 -38
- package/lib/themes/cxd.css +231 -38
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +224 -31
- package/lib/themes/dark.css +224 -31
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +231 -38
- package/lib/themes/default.css.map +1 -1
- package/lib/types.d.ts +1 -1
- package/lib/types.js.map +1 -1
- package/lib/utils/api.d.ts +1 -0
- package/lib/utils/api.js +77 -6
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/helper.d.ts +6 -0
- package/lib/utils/helper.js +18 -1
- package/lib/utils/helper.js.map +2 -2
- package/package.json +1 -1
- package/schema.json +278 -48
- package/scss/base/_common.scss +3 -0
- package/scss/components/_anchor-nav.scss +1 -0
- package/scss/components/_collapse-group.scss +11 -0
- package/scss/components/_collapse.scss +33 -22
- package/scss/components/_grid-nav.scss +128 -0
- package/scss/components/_input-box.scss +1 -0
- package/scss/components/_nav.scss +1 -1
- package/scss/components/_picker-columns.scss +1 -0
- package/scss/components/_popover.scss +0 -4
- package/scss/components/_result-box.scss +1 -0
- package/scss/components/_spinner.scss +5 -4
- package/scss/components/_table.scss +6 -0
- package/scss/components/form/_combo.scss +4 -0
- package/scss/components/form/_file.scss +11 -0
- package/scss/components/form/_tree.scss +42 -0
- package/scss/themes/_common.scss +3 -0
- package/scss/themes/_cxd-variables.scss +6 -7
- package/scss/themes/cxd.scss +1 -0
- package/sdk/ang-ie11.css +268 -32
- package/sdk/ang.css +263 -31
- package/sdk/antd-ie11.css +268 -32
- package/sdk/antd.css +263 -31
- package/sdk/charts.js +15 -15
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +274 -36
- package/sdk/cxd.css +270 -38
- package/sdk/dark-ie11.css +268 -32
- package/sdk/dark.css +263 -31
- package/sdk/exceljs.js +1 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +18 -18
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +274 -36
- package/sdk/sdk.css +270 -38
- package/sdk/sdk.js +1179 -1143
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +57 -57
- package/src/Schema.ts +5 -1
- package/src/components/AssociatedSelection.tsx +3 -1
- package/src/components/Collapse.tsx +144 -20
- package/src/components/CollapseGroup.tsx +130 -0
- package/src/components/GridNav.tsx +233 -0
- package/src/components/InputBox.tsx +10 -9
- package/src/components/ResultBox.tsx +9 -9
- package/src/components/Toast.tsx +23 -16
- package/src/components/TransferDropDown.tsx +4 -1
- package/src/components/TransferPicker.tsx +7 -0
- package/src/components/Tree.tsx +194 -8
- package/src/components/icons.tsx +2 -0
- package/src/envOverwrite.ts +20 -7
- package/src/factory.tsx +52 -6
- package/src/icons/download.svg +4 -0
- package/src/icons/drag-bar.svg +12 -6
- package/src/index.tsx +2 -0
- package/src/locale/en-US.ts +1 -0
- package/src/locale/zh-CN.ts +1 -0
- package/src/renderers/Collapse.tsx +70 -117
- package/src/renderers/CollapseGroup.tsx +80 -0
- package/src/renderers/Form/InputFile.tsx +36 -4
- package/src/renderers/Form/Item.tsx +2 -1
- package/src/renderers/Form/Select.tsx +6 -2
- package/src/renderers/Form/TransferPicker.tsx +7 -1
- package/src/renderers/Form/index.tsx +1 -2
- package/src/renderers/GridNav.tsx +204 -0
- package/src/store/formItem.ts +116 -3
- package/src/store/table.ts +9 -5
- package/src/types.ts +1 -1
- package/src/utils/api.ts +93 -6
- package/src/utils/helper.ts +19 -0
- package/tsconfig-for-declaration.json +1 -1
@@ -0,0 +1,52 @@
|
|
1
|
+
/**
|
2
|
+
* @file GridNav
|
3
|
+
* @description 金刚位宫格导航 参考react-vant
|
4
|
+
*/
|
5
|
+
import React from 'react';
|
6
|
+
import { ClassNamesFn } from '../theme';
|
7
|
+
import { BadgeProps } from './Badge';
|
8
|
+
export declare type GridNavDirection = 'horizontal' | 'vertical';
|
9
|
+
export interface GridNavProps {
|
10
|
+
/** 是否将格子固定为正方形 */
|
11
|
+
square?: boolean;
|
12
|
+
/** 是否将格子内容居中显示 */
|
13
|
+
center?: boolean;
|
14
|
+
/** 是否显示边框 */
|
15
|
+
border?: boolean;
|
16
|
+
/** 格子之间的间距,默认单位为`px` */
|
17
|
+
gutter?: number;
|
18
|
+
/** 是否调换图标和文本的位置 */
|
19
|
+
reverse?: boolean;
|
20
|
+
/** 图标占比,默认单位为`%` */
|
21
|
+
iconRatio?: number;
|
22
|
+
/** 格子内容排列的方向,可选值为 `horizontal` */
|
23
|
+
direction?: GridNavDirection;
|
24
|
+
/** 列数 */
|
25
|
+
columnNum?: number;
|
26
|
+
className?: string;
|
27
|
+
itemClassName?: string;
|
28
|
+
classnames: ClassNamesFn;
|
29
|
+
style?: React.CSSProperties;
|
30
|
+
}
|
31
|
+
export interface GridNavItemProps {
|
32
|
+
/** 图标右上角徽标 */
|
33
|
+
badge?: BadgeProps;
|
34
|
+
/** 文字 */
|
35
|
+
text?: string | React.ReactNode;
|
36
|
+
/** 图标名称或图片链接 */
|
37
|
+
icon?: string | React.ReactNode;
|
38
|
+
className?: string;
|
39
|
+
style?: React.CSSProperties;
|
40
|
+
contentClassName?: string;
|
41
|
+
contentStyle?: React.CSSProperties;
|
42
|
+
children?: React.ReactNode;
|
43
|
+
classnames: ClassNamesFn;
|
44
|
+
onClick?: (event: React.MouseEvent) => void;
|
45
|
+
}
|
46
|
+
declare type InternalProps = {
|
47
|
+
parent?: GridNavProps;
|
48
|
+
index?: number;
|
49
|
+
};
|
50
|
+
export declare const GridNavItem: React.FC<GridNavItemProps & InternalProps>;
|
51
|
+
declare const GridNav: React.FC<GridNavProps>;
|
52
|
+
export default GridNav;
|
@@ -0,0 +1,123 @@
|
|
1
|
+
"use strict";
|
2
|
+
/**
|
3
|
+
* @file GridNav
|
4
|
+
* @description 金刚位宫格导航 参考react-vant
|
5
|
+
*/
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
7
|
+
exports.GridNavItem = void 0;
|
8
|
+
var tslib_1 = require("tslib");
|
9
|
+
var react_1 = tslib_1.__importStar(require("react"));
|
10
|
+
var Badge_1 = require("./Badge");
|
11
|
+
function addUnit(value) {
|
12
|
+
if (value === undefined || value === null) {
|
13
|
+
return undefined;
|
14
|
+
}
|
15
|
+
value = String(value);
|
16
|
+
return /^\d+(\.\d+)?$/.test(value) ? value + "px" : value;
|
17
|
+
}
|
18
|
+
var GridNavItem = function (_a) {
|
19
|
+
var _b;
|
20
|
+
var children = _a.children, cx = _a.classnames, className = _a.className, style = _a.style, props = (0, tslib_1.__rest)(_a, ["children", "classnames", "className", "style"]);
|
21
|
+
var _c = props.index, index = _c === void 0 ? 0 : _c, parent = props.parent;
|
22
|
+
if (!parent) {
|
23
|
+
if (process.env.NODE_ENV !== 'production') {
|
24
|
+
// eslint-disable-next-line no-console
|
25
|
+
console.error('[React Vant] <GridNavItem> must be a child component of <GridNav>.');
|
26
|
+
}
|
27
|
+
return null;
|
28
|
+
}
|
29
|
+
var rootStyle = (0, react_1.useMemo)(function () {
|
30
|
+
var square = parent.square, gutter = parent.gutter, _a = parent.columnNum, columnNum = _a === void 0 ? 4 : _a;
|
31
|
+
var percent = 100 / +columnNum + "%";
|
32
|
+
var internalStyle = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, style), { flexBasis: percent });
|
33
|
+
if (square) {
|
34
|
+
internalStyle.paddingTop = percent;
|
35
|
+
}
|
36
|
+
else if (gutter) {
|
37
|
+
var gutterValue = addUnit(gutter);
|
38
|
+
internalStyle.paddingRight = gutterValue;
|
39
|
+
if (index >= columnNum) {
|
40
|
+
internalStyle.marginTop = gutterValue;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
return internalStyle;
|
44
|
+
}, [parent.style, parent.gutter, parent.columnNum]);
|
45
|
+
var contentStyle = (0, react_1.useMemo)(function () {
|
46
|
+
var square = parent.square, gutter = parent.gutter;
|
47
|
+
if (square && gutter) {
|
48
|
+
var gutterValue = addUnit(gutter);
|
49
|
+
return (0, tslib_1.__assign)((0, tslib_1.__assign)({}, props.contentStyle), { right: gutterValue, bottom: gutterValue, height: 'auto' });
|
50
|
+
}
|
51
|
+
return props.contentStyle;
|
52
|
+
}, [parent.gutter, parent.columnNum, props.contentStyle]);
|
53
|
+
var renderIcon = function () {
|
54
|
+
var ratio = parent.iconRatio || 60;
|
55
|
+
if (typeof props.icon === 'string') {
|
56
|
+
if (props.badge) {
|
57
|
+
return (react_1.default.createElement(Badge_1.Badge, (0, tslib_1.__assign)({}, props.badge),
|
58
|
+
react_1.default.createElement("div", { className: cx('GridNavItem-image') },
|
59
|
+
react_1.default.createElement("img", { src: props.icon, style: { width: ratio + '%' } }))));
|
60
|
+
}
|
61
|
+
return (react_1.default.createElement("div", { className: cx('GridNavItem-image') },
|
62
|
+
react_1.default.createElement("img", { src: props.icon, style: { width: ratio + '%' } })));
|
63
|
+
}
|
64
|
+
if (react_1.default.isValidElement(props.icon)) {
|
65
|
+
return react_1.default.createElement(Badge_1.Badge, (0, tslib_1.__assign)({}, props.badge), props.icon);
|
66
|
+
}
|
67
|
+
return null;
|
68
|
+
};
|
69
|
+
var renderText = function () {
|
70
|
+
if (react_1.default.isValidElement(props.text)) {
|
71
|
+
return props.text;
|
72
|
+
}
|
73
|
+
if (props.text) {
|
74
|
+
return react_1.default.createElement("span", { className: cx('GridNavItem-text') }, props.text);
|
75
|
+
}
|
76
|
+
return null;
|
77
|
+
};
|
78
|
+
var renderContent = function () {
|
79
|
+
if (children) {
|
80
|
+
return children;
|
81
|
+
}
|
82
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
83
|
+
renderIcon(),
|
84
|
+
renderText()));
|
85
|
+
};
|
86
|
+
var center = parent.center, border = parent.border, square = parent.square, gutter = parent.gutter, reverse = parent.reverse, direction = parent.direction;
|
87
|
+
var prefix = 'GridNavItem-content';
|
88
|
+
var classes = cx(prefix + " " + (props.contentClassName || ''), (_b = {},
|
89
|
+
_b[prefix + "--" + direction] = !!direction,
|
90
|
+
_b[prefix + "--center"] = center,
|
91
|
+
_b[prefix + "--square"] = square,
|
92
|
+
_b[prefix + "--reverse"] = reverse,
|
93
|
+
_b[prefix + "--clickable"] = !!props.onClick,
|
94
|
+
_b[prefix + "--surround"] = border && gutter,
|
95
|
+
_b[prefix + "--border u-hairline"] = border,
|
96
|
+
_b));
|
97
|
+
return (react_1.default.createElement("div", { className: cx(className, { 'GridNavItem--square': square }), style: rootStyle },
|
98
|
+
react_1.default.createElement("div", { role: props.onClick ? 'button' : undefined, className: classes, style: contentStyle, onClick: props.onClick }, renderContent())));
|
99
|
+
};
|
100
|
+
exports.GridNavItem = GridNavItem;
|
101
|
+
var GridNav = function (_a) {
|
102
|
+
var children = _a.children, className = _a.className, cx = _a.classnames, itemClassName = _a.itemClassName, style = _a.style, props = (0, tslib_1.__rest)(_a, ["children", "className", "classnames", "itemClassName", "style"]);
|
103
|
+
return (react_1.default.createElement("div", { style: (0, tslib_1.__assign)({ paddingLeft: addUnit(props.gutter) }, style), className: cx("GridNav " + (className || ''), {
|
104
|
+
'GridNav-top u-hairline': props.border && !props.gutter
|
105
|
+
}) }, react_1.default.Children.toArray(children)
|
106
|
+
.filter(Boolean)
|
107
|
+
.map(function (child, index) {
|
108
|
+
return react_1.default.cloneElement(child, {
|
109
|
+
index: index,
|
110
|
+
parent: props,
|
111
|
+
className: itemClassName,
|
112
|
+
classnames: cx
|
113
|
+
});
|
114
|
+
})));
|
115
|
+
};
|
116
|
+
GridNav.defaultProps = {
|
117
|
+
direction: 'vertical',
|
118
|
+
center: true,
|
119
|
+
border: true,
|
120
|
+
columnNum: 4
|
121
|
+
};
|
122
|
+
exports.default = GridNav;
|
123
|
+
//# sourceMappingURL=./components/GridNav.js.map
|
@@ -0,0 +1,13 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"file": "GridNav.js",
|
4
|
+
"sourceRoot": "",
|
5
|
+
"sources": [
|
6
|
+
"/src/components/GridNav.tsx"
|
7
|
+
],
|
8
|
+
"names": [],
|
9
|
+
"mappings": "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",
|
10
|
+
"sourcesContent": [
|
11
|
+
"/**\n * @file GridNav\n * @description 金刚位宫格导航 参考react-vant\n */\n\nimport React, {useMemo} from 'react';\nimport {ClassNamesFn} from '../theme';\nimport {Badge, BadgeProps} from './Badge';\n\nexport type GridNavDirection = 'horizontal' | 'vertical';\n\nexport interface GridNavProps {\n /** 是否将格子固定为正方形\t */\n square?: boolean;\n /** 是否将格子内容居中显示\t */\n center?: boolean;\n /** 是否显示边框\t */\n border?: boolean;\n /** 格子之间的间距,默认单位为`px` */\n gutter?: number;\n /** 是否调换图标和文本的位置\t */\n reverse?: boolean;\n /** 图标占比,默认单位为`%` */\n iconRatio?: number;\n /** 格子内容排列的方向,可选值为 `horizontal`\t */\n direction?: GridNavDirection;\n /** 列数\t */\n columnNum?: number;\n className?: string;\n itemClassName?: string;\n classnames: ClassNamesFn;\n style?: React.CSSProperties;\n}\n\nexport interface GridNavItemProps {\n /** 图标右上角徽标\t */\n badge?: BadgeProps;\n /** 文字 */\n text?: string | React.ReactNode;\n /** 图标名称或图片链接\t */\n icon?: string | React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n contentClassName?: string;\n contentStyle?: React.CSSProperties;\n children?: React.ReactNode;\n classnames: ClassNamesFn;\n onClick?: (event: React.MouseEvent) => void;\n}\n\ntype InternalProps = {\n parent?: GridNavProps;\n index?: number;\n};\n\nfunction addUnit(value?: string | number): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n value = String(value);\n return /^\\d+(\\.\\d+)?$/.test(value) ? `${value}px` : value;\n}\n\nexport const GridNavItem: React.FC<GridNavItemProps & InternalProps> = ({\n children,\n classnames: cx,\n className,\n style,\n ...props\n}) => {\n const {index = 0, parent} = props;\n if (!parent) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error(\n '[React Vant] <GridNavItem> must be a child component of <GridNav>.'\n );\n }\n return null;\n }\n\n const rootStyle = useMemo(() => {\n const {square, gutter, columnNum = 4} = parent;\n const percent = `${100 / +columnNum}%`;\n const internalStyle: React.CSSProperties = {\n ...style,\n flexBasis: percent\n };\n\n if (square) {\n internalStyle.paddingTop = percent;\n } else if (gutter) {\n const gutterValue = addUnit(gutter);\n internalStyle.paddingRight = gutterValue;\n\n if (index >= columnNum) {\n internalStyle.marginTop = gutterValue;\n }\n }\n\n return internalStyle;\n }, [parent.style, parent.gutter, parent.columnNum]);\n\n const contentStyle = useMemo(() => {\n const {square, gutter} = parent;\n\n if (square && gutter) {\n const gutterValue = addUnit(gutter);\n return {\n ...props.contentStyle,\n right: gutterValue,\n bottom: gutterValue,\n height: 'auto'\n };\n }\n return props.contentStyle;\n }, [parent.gutter, parent.columnNum, props.contentStyle]);\n\n const renderIcon = () => {\n const ratio = parent.iconRatio || 60;\n if (typeof props.icon === 'string') {\n if (props.badge) {\n return (\n <Badge {...props.badge}>\n <div className={cx('GridNavItem-image')}>\n <img src={props.icon} style={{width: ratio + '%'}} />\n </div>\n </Badge>\n );\n }\n return (\n <div className={cx('GridNavItem-image')}>\n <img src={props.icon} style={{width: ratio + '%'}} />\n </div>\n );\n }\n\n if (React.isValidElement(props.icon)) {\n return <Badge {...(props.badge as BadgeProps)}>{props.icon}</Badge>;\n }\n\n return null;\n };\n\n const renderText = () => {\n if (React.isValidElement(props.text)) {\n return props.text;\n }\n if (props.text) {\n return <span className={cx('GridNavItem-text')}>{props.text}</span>;\n }\n return null;\n };\n\n const renderContent = () => {\n if (children) {\n return children;\n }\n return (\n <>\n {renderIcon()}\n {renderText()}\n </>\n );\n };\n\n const {center, border, square, gutter, reverse, direction} = parent;\n\n const prefix = 'GridNavItem-content';\n const classes = cx(`${prefix} ${props.contentClassName || ''}`, {\n [`${prefix}--${direction}`]: !!direction,\n [`${prefix}--center`]: center,\n [`${prefix}--square`]: square,\n [`${prefix}--reverse`]: reverse,\n [`${prefix}--clickable`]: !!props.onClick,\n [`${prefix}--surround`]: border && gutter,\n [`${prefix}--border u-hairline`]: border\n });\n\n return (\n <div\n className={cx(className, {'GridNavItem--square': square})}\n style={rootStyle}\n >\n <div\n role={props.onClick ? 'button' : undefined}\n className={classes}\n style={contentStyle}\n onClick={props.onClick}\n >\n {renderContent()}\n </div>\n </div>\n );\n};\n\nconst GridNav: React.FC<GridNavProps> = ({\n children,\n className,\n classnames: cx,\n itemClassName,\n style,\n ...props\n}) => {\n return (\n <div\n style={{paddingLeft: addUnit(props.gutter), ...style}}\n className={cx(`GridNav ${className || ''}`, {\n 'GridNav-top u-hairline': props.border && !props.gutter\n })}\n >\n {React.Children.toArray(children)\n .filter(Boolean)\n .map((child: React.ReactElement, index: number) =>\n React.cloneElement(child, {\n index,\n parent: props,\n className: itemClassName,\n classnames: cx\n })\n )}\n </div>\n );\n};\n\nGridNav.defaultProps = {\n direction: 'vertical',\n center: true,\n border: true,\n columnNum: 4\n};\n\nexport default GridNav;\n"
|
12
|
+
]
|
13
|
+
}
|