amis 1.4.2-beta.13 → 1.4.2-beta.18
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/Alert2.d.ts +26 -21
- package/lib/components/Alert2.js +11 -4
- package/lib/components/Alert2.js.map +2 -2
- package/lib/components/AssociatedSelection.js +2 -2
- package/lib/components/AssociatedSelection.js.map +2 -2
- package/lib/components/Button.js +1 -1
- package/lib/components/Button.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 +70 -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/ColorPicker.d.ts +5 -1
- package/lib/components/ColorPicker.js +17 -4
- package/lib/components/ColorPicker.js.map +2 -2
- 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/ListGroup.d.ts +21 -21
- package/lib/components/Overlay.js +5 -0
- package/lib/components/Overlay.js.map +2 -2
- package/lib/components/PopOver.d.ts +1 -0
- package/lib/components/PopOver.js +12 -1
- package/lib/components/PopOver.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 +90 -87
- package/lib/components/Toast.js +15 -5
- package/lib/components/Toast.js.map +2 -2
- package/lib/components/Transfer.d.ts +84 -84
- package/lib/components/TransferDropDown.d.ts +84 -84
- 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/condition-builder/Field.js +2 -3
- package/lib/components/condition-builder/Field.js.map +2 -2
- package/lib/components/icons.js +8 -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/alert-danger.js +7 -0
- package/lib/icons/alert-info.js +7 -0
- package/lib/icons/alert-success.js +7 -0
- package/lib/icons/alert-warning.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/renderers/Alert.d.ts +21 -1
- package/lib/renderers/Alert.js.map +2 -2
- package/lib/renderers/Card.d.ts +1 -0
- package/lib/renderers/Card.js +7 -2
- package/lib/renderers/Card.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/ConditionBuilder.js +2 -2
- package/lib/renderers/Form/ConditionBuilder.js.map +2 -2
- package/lib/renderers/Form/InputCity.d.ts +84 -84
- package/lib/renderers/Form/InputColor.d.ts +2 -1
- package/lib/renderers/Form/InputColor.js +1 -1
- package/lib/renderers/Form/InputColor.js.map +2 -2
- package/lib/renderers/Form/Item.js +2 -1
- package/lib/renderers/Form/Item.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/renderers/Page.d.ts +18 -0
- package/lib/renderers/Page.js +53 -9
- package/lib/renderers/Page.js.map +2 -2
- package/lib/store/formItem.js +44 -4
- package/lib/store/formItem.js.map +2 -2
- package/lib/themes/ang-ie11.css +324 -49
- package/lib/themes/ang.css +324 -49
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +324 -49
- package/lib/themes/antd.css +324 -49
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +331 -58
- package/lib/themes/cxd.css +331 -58
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +324 -49
- package/lib/themes/dark.css +324 -49
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default.css +331 -58
- 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 +8 -0
- package/lib/utils/helper.js +33 -2
- package/lib/utils/helper.js.map +2 -2
- package/lib/utils/tpl-builtin.js +5 -0
- package/lib/utils/tpl-builtin.js.map +2 -2
- package/package.json +1 -1
- package/schema.json +365 -49
- package/scss/_properties.scss +2 -1
- package/scss/components/_alert.scss +28 -5
- package/scss/components/_anchor-nav.scss +1 -0
- package/scss/components/_button.scss +5 -0
- package/scss/components/_card.scss +1 -1
- package/scss/components/_collapse-group.scss +15 -0
- package/scss/components/_collapse.scss +33 -23
- package/scss/components/_grid-nav.scss +128 -0
- package/scss/components/_nav.scss +2 -7
- package/scss/components/_page.scss +35 -2
- package/scss/components/_spinner.scss +5 -4
- package/scss/components/_table.scss +6 -0
- package/scss/components/_toast.scss +41 -11
- package/scss/components/form/_color.scss +32 -3
- package/scss/components/form/_combo.scss +4 -0
- package/scss/components/form/_fieldset.scss +1 -0
- package/scss/components/form/_transfer.scss +1 -0
- package/scss/components/form/_tree.scss +42 -0
- package/scss/themes/_common.scss +2 -0
- package/scss/themes/_cxd-variables.scss +9 -4
- package/scss/themes/cxd.scss +1 -7
- package/sdk/ang-ie11.css +375 -53
- package/sdk/ang.css +377 -53
- package/sdk/antd-ie11.css +375 -53
- package/sdk/antd.css +377 -53
- package/sdk/charts.js +13 -13
- package/sdk/color-picker.js +69 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +379 -60
- package/sdk/cxd.css +384 -62
- package/sdk/dark-ie11.css +375 -53
- package/sdk/dark.css +377 -53
- 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 +16 -20
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +379 -60
- package/sdk/sdk.css +384 -62
- package/sdk/sdk.js +1215 -1173
- 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/Alert2.tsx +32 -4
- package/src/components/AssociatedSelection.tsx +3 -1
- package/src/components/Button.tsx +1 -0
- package/src/components/Collapse.tsx +139 -20
- package/src/components/CollapseGroup.tsx +130 -0
- package/src/components/ColorPicker.tsx +32 -10
- package/src/components/GridNav.tsx +233 -0
- package/src/components/Overlay.tsx +6 -0
- package/src/components/PopOver.tsx +15 -1
- package/src/components/Toast.tsx +48 -21
- package/src/components/Tree.tsx +194 -8
- package/src/components/condition-builder/Field.tsx +3 -1
- package/src/components/icons.tsx +8 -0
- package/src/envOverwrite.ts +20 -7
- package/src/factory.tsx +52 -6
- package/src/icons/alert-danger.svg +1 -0
- package/src/icons/alert-info.svg +1 -0
- package/src/icons/alert-success.svg +1 -0
- package/src/icons/alert-warning.svg +1 -0
- package/src/icons/drag-bar.svg +12 -6
- package/src/index.tsx +2 -0
- package/src/renderers/Alert.tsx +31 -1
- package/src/renderers/Card.tsx +13 -2
- package/src/renderers/Collapse.tsx +70 -117
- package/src/renderers/CollapseGroup.tsx +80 -0
- package/src/renderers/Form/ConditionBuilder.tsx +2 -2
- package/src/renderers/Form/InputColor.tsx +4 -2
- package/src/renderers/GridNav.tsx +204 -0
- package/src/renderers/Page.tsx +62 -1
- package/src/store/formItem.ts +94 -2
- package/src/types.ts +1 -1
- package/src/utils/api.ts +93 -6
- package/src/utils/helper.ts +33 -0
- package/src/utils/tpl-builtin.ts +6 -0
- package/tsconfig-for-declaration.json +1 -1
@@ -0,0 +1,81 @@
|
|
1
|
+
"use strict";
|
2
|
+
/**
|
3
|
+
* @file CollapseGroup
|
4
|
+
* @description 折叠面板group
|
5
|
+
* @author hongyang03
|
6
|
+
*/
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
8
|
+
var tslib_1 = require("tslib");
|
9
|
+
var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
10
|
+
var theme_1 = require("../theme");
|
11
|
+
var CollapseGroup = /** @class */ (function (_super) {
|
12
|
+
(0, tslib_1.__extends)(CollapseGroup, _super);
|
13
|
+
function CollapseGroup(props) {
|
14
|
+
var _this = _super.call(this, props) || this;
|
15
|
+
_this.getItems = function (children) {
|
16
|
+
if (!Array.isArray(children)) {
|
17
|
+
return children;
|
18
|
+
}
|
19
|
+
return children.map(function (child, index) {
|
20
|
+
var props = child.props;
|
21
|
+
var id = props.schema.key || String(index);
|
22
|
+
var collapsed = _this.state.activeKey.indexOf(id) === -1;
|
23
|
+
return react_1.default.cloneElement(child, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, props), { key: id, id: id, collapsed: collapsed, expandIcon: _this.props.expandIcon, propsUpdate: true, onCollapse: function (item, collapsed) { return _this.collapseChange(item, collapsed); } }));
|
24
|
+
});
|
25
|
+
};
|
26
|
+
// 传入的activeKey会被自动转换为defaultActiveKey
|
27
|
+
var activeKey = props.defaultActiveKey;
|
28
|
+
if (!Array.isArray(activeKey)) {
|
29
|
+
activeKey = activeKey ? [activeKey] : [];
|
30
|
+
}
|
31
|
+
if (props.accordion) {
|
32
|
+
// 手风琴模式下只展开第一个元素
|
33
|
+
activeKey = activeKey.length ? [activeKey[0]] : [];
|
34
|
+
}
|
35
|
+
_this.state = {
|
36
|
+
activeKey: activeKey.map(function (key) { return String(key); })
|
37
|
+
};
|
38
|
+
return _this;
|
39
|
+
}
|
40
|
+
CollapseGroup.prototype.collapseChange = function (item, collapsed) {
|
41
|
+
var activeKey = this.state.activeKey;
|
42
|
+
if (collapsed) {
|
43
|
+
if (this.props.accordion) {
|
44
|
+
activeKey = [];
|
45
|
+
}
|
46
|
+
else {
|
47
|
+
for (var i = 0; i < activeKey.length; i++) {
|
48
|
+
if (activeKey[i] === item.id) {
|
49
|
+
activeKey.splice(i, 1);
|
50
|
+
break;
|
51
|
+
}
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
else {
|
56
|
+
if (this.props.accordion) {
|
57
|
+
activeKey = [item.id];
|
58
|
+
}
|
59
|
+
else {
|
60
|
+
activeKey.push(item.id);
|
61
|
+
}
|
62
|
+
}
|
63
|
+
this.setState({
|
64
|
+
activeKey: activeKey
|
65
|
+
});
|
66
|
+
};
|
67
|
+
CollapseGroup.prototype.render = function () {
|
68
|
+
var _a = this.props, cx = _a.classnames, className = _a.className, expandIconPosition = _a.expandIconPosition, children = _a.children;
|
69
|
+
return (react_1.default.createElement("div", { className: cx("CollapseGroup", {
|
70
|
+
'icon-position-right': expandIconPosition === 'right',
|
71
|
+
}, className) }, this.getItems(children)));
|
72
|
+
};
|
73
|
+
CollapseGroup.defaultProps = {
|
74
|
+
className: '',
|
75
|
+
accordion: false,
|
76
|
+
expandIconPosition: 'left'
|
77
|
+
};
|
78
|
+
return CollapseGroup;
|
79
|
+
}(react_1.default.Component));
|
80
|
+
exports.default = (0, theme_1.themeable)(CollapseGroup);
|
81
|
+
//# sourceMappingURL=./components/CollapseGroup.js.map
|
@@ -0,0 +1,13 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"file": "CollapseGroup.js",
|
4
|
+
"sourceRoot": "",
|
5
|
+
"sources": [
|
6
|
+
"/src/components/CollapseGroup.tsx"
|
7
|
+
],
|
8
|
+
"names": [],
|
9
|
+
"mappings": "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",
|
10
|
+
"sourcesContent": [
|
11
|
+
"/**\n * @file CollapseGroup\n * @description 折叠面板group\n * @author hongyang03\n */\n\nimport React from 'react';\nimport {CollapseProps} from '../renderers/Collapse';\nimport {SchemaNode} from '../types';\nimport {ClassNamesFn, themeable} from '../theme';\n\nexport interface CollapseGroupProps {\n defaultActiveKey?: Array<string | number | never> | string | number;\n accordion?: boolean;\n expandIcon?: SchemaNode;\n expandIconPosition?: 'left' | 'right';\n body?: Array<React.ReactElement>;\n className?: string;\n classnames: ClassNamesFn;\n classPrefix: string;\n}\n\nexport interface CollapseGroupState {\n activeKey: Array<string | number | never>;\n}\n\nclass CollapseGroup extends React.Component<\n CollapseGroupProps,\n CollapseGroupState\n> {\n\n static defaultProps: Partial<CollapseGroupProps> = {\n className: '',\n accordion: false,\n expandIconPosition: 'left'\n };\n\n constructor(props: CollapseGroupProps) {\n super(props);\n\n // 传入的activeKey会被自动转换为defaultActiveKey\n let activeKey = props.defaultActiveKey;\n if (!Array.isArray(activeKey)) {\n activeKey = activeKey ? [activeKey] : [];\n }\n if (props.accordion) {\n // 手风琴模式下只展开第一个元素\n activeKey = activeKey.length ? [activeKey[0]] : [];\n }\n\n this.state = {\n activeKey: activeKey.map((key: number | string) => String(key))\n };\n }\n\n collapseChange(item: CollapseProps, collapsed: boolean) {\n let activeKey = this.state.activeKey;\n if (collapsed) {\n if (this.props.accordion) {\n activeKey = [];\n }\n else {\n for(let i = 0; i < activeKey.length; i++) {\n if (activeKey[i] === item.id) {\n activeKey.splice(i, 1);\n break;\n }\n }\n }\n }\n else {\n if (this.props.accordion) {\n activeKey = [item.id];\n }\n else {\n activeKey.push(item.id);\n }\n }\n this.setState({\n activeKey\n });\n }\n\n getItems = (children: React.ReactNode) => {\n if (!Array.isArray(children)) {\n return children;\n }\n\n return children.map((child: React.ReactElement, index: number) => {\n let props = child.props;\n const id = props.schema.key || String(index);\n const collapsed = this.state.activeKey.indexOf(id) === -1;\n\n return React.cloneElement(child as any, {\n ...props,\n key: id,\n id,\n collapsed,\n expandIcon: this.props.expandIcon,\n propsUpdate: true,\n onCollapse: (item: CollapseProps, collapsed: boolean) => this.collapseChange(item, collapsed)\n });\n });\n };\n\n render() {\n const {\n classnames: cx,\n className,\n expandIconPosition,\n children\n } = this.props;\n\n return (\n <div\n className={cx(\n `CollapseGroup`,\n {\n 'icon-position-right': expandIconPosition === 'right',\n },\n className\n )}\n >\n {this.getItems(children)}\n </div>\n );\n }\n}\n\nexport default themeable(CollapseGroup);\n"
|
12
|
+
]
|
13
|
+
}
|
@@ -8,6 +8,10 @@ import React from 'react';
|
|
8
8
|
import { ColorResult } from 'react-color';
|
9
9
|
import { ThemeProps } from '../theme';
|
10
10
|
import { LocaleProps } from '../locale';
|
11
|
+
export declare type PresetColor = {
|
12
|
+
color: string;
|
13
|
+
title: string;
|
14
|
+
} | string;
|
11
15
|
export interface ColorProps extends LocaleProps, ThemeProps {
|
12
16
|
placeholder?: string;
|
13
17
|
format: string;
|
@@ -19,7 +23,7 @@ export interface ColorProps extends LocaleProps, ThemeProps {
|
|
19
23
|
placement?: string;
|
20
24
|
value?: any;
|
21
25
|
onChange: (value: any) => void;
|
22
|
-
presetColors?:
|
26
|
+
presetColors?: PresetColor[];
|
23
27
|
resetValue?: string;
|
24
28
|
allowCustomColor?: boolean;
|
25
29
|
}
|
@@ -146,15 +146,28 @@ var ColorControl = /** @class */ (function (_super) {
|
|
146
146
|
var isFocused = this.state.isFocused;
|
147
147
|
return (react_1.default.createElement("div", { className: cx("ColorPicker", {
|
148
148
|
'is-disabled': disabled,
|
149
|
-
'is-focused': isFocused
|
149
|
+
'is-focused': isFocused,
|
150
|
+
'is-opened': isOpened
|
150
151
|
}, className) },
|
152
|
+
react_1.default.createElement("span", { onClick: this.handleClick, className: cx('ColorPicker-preview') },
|
153
|
+
react_1.default.createElement("i", { ref: this.preview, className: ns + "ColorPicker-previewIcon", style: { background: this.state.inputValue || '#ccc' } })),
|
151
154
|
react_1.default.createElement("input", { ref: this.input, type: "text", autoComplete: "off", size: 10, className: cx('ColorPicker-input'), value: this.state.inputValue || '', placeholder: __(placeholder), disabled: disabled, onChange: this.handleInputChange, onFocus: this.handleFocus, onBlur: this.handleBlur, onClick: this.handleClick }),
|
152
155
|
clearable && !disabled && value ? (react_1.default.createElement("a", { onClick: this.clearValue, className: cx('ColorPicker-clear') },
|
153
156
|
react_1.default.createElement(icons_1.Icon, { icon: "close", className: "icon" }))) : null,
|
154
|
-
react_1.default.createElement("span", {
|
155
|
-
react_1.default.createElement(
|
157
|
+
react_1.default.createElement("span", { className: cx('ColorPicker-arrow') },
|
158
|
+
react_1.default.createElement(icons_1.Icon, { icon: "caret", className: "icon", onClick: this.handleClick })),
|
156
159
|
isOpened ? (react_1.default.createElement(Overlay_1.default, { placement: placement || 'auto', target: function () { return (0, react_dom_1.findDOMNode)(_this); }, onHide: this.close, container: popOverContainer || (function () { return (0, react_dom_1.findDOMNode)(_this); }), rootClose: false, show: true },
|
157
|
-
react_1.default.createElement(PopOver_1.default, { classPrefix: ns, className: cx('ColorPicker-popover', popoverClassName), onHide: this.close, overlay: true }, allowCustomColor ? (react_1.default.createElement(react_color_1.SketchPicker, { disableAlpha: !!~['rgb', 'hex'].indexOf(format), color: value, presetColors: presetColors, onChangeComplete: this.handleChange })) : (react_1.default.createElement(react_color_1.GithubPicker, { color: value, colors: presetColors
|
160
|
+
react_1.default.createElement(PopOver_1.default, { classPrefix: ns, className: cx('ColorPicker-popover', popoverClassName), onHide: this.close, overlay: true }, allowCustomColor ? (react_1.default.createElement(react_color_1.SketchPicker, { styles: {}, disableAlpha: !!~['rgb', 'hex'].indexOf(format), color: value, presetColors: presetColors, onChangeComplete: this.handleChange })) : (react_1.default.createElement(react_color_1.GithubPicker, { color: value, colors: Array.isArray(presetColors)
|
161
|
+
? presetColors
|
162
|
+
.filter(function (item) { return typeof item === 'string' || (0, helper_1.isObject)(item); })
|
163
|
+
.map(function (item) {
|
164
|
+
return typeof item === 'string'
|
165
|
+
? item
|
166
|
+
: (0, helper_1.isObject)(item)
|
167
|
+
? item === null || item === void 0 ? void 0 : item.color
|
168
|
+
: item;
|
169
|
+
})
|
170
|
+
: undefined, onChangeComplete: this.handleChange }))))) : null));
|
158
171
|
};
|
159
172
|
ColorControl.defaultProps = {
|
160
173
|
format: 'hex',
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/ColorPicker.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";AAAA;;;;GAIG;;;;AAEH,6DAA0B;AAC1B,uCAAsC;AACtC,2CAAoE;AACpE,iCAA6B;AAC7B,mEAAgC;AAChC,iDAA8C;AAC9C,mEAAgC;AAChC,kCAA6D;AAC7D,
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file ColorPicker\n * @description 颜色选择器组件\n * @author fex\n */\n\nimport React from 'react';\nimport {findDOMNode} from 'react-dom';\nimport {SketchPicker, GithubPicker, ColorResult} from 'react-color';\nimport {Icon} from './icons';\nimport Overlay from './Overlay';\nimport {uncontrollable} from 'uncontrollable';\nimport PopOver from './PopOver';\nimport {ClassNamesFn, themeable, ThemeProps} from '../theme';\nimport {autobind} from '../utils/helper';\nimport {localeable, LocaleProps} from '../locale';\n\nexport interface ColorProps extends LocaleProps, ThemeProps {\n placeholder?: string;\n format: string;\n // closeOnSelect:boolean;\n clearable: boolean;\n className?: string;\n popoverClassName?: string;\n disabled?: boolean;\n popOverContainer?: any;\n placement?: string;\n value?: any;\n onChange: (value: any) => void;\n presetColors?:
|
11
|
+
"/**\n * @file ColorPicker\n * @description 颜色选择器组件\n * @author fex\n */\n\nimport React from 'react';\nimport {findDOMNode} from 'react-dom';\nimport {SketchPicker, GithubPicker, ColorResult} from 'react-color';\nimport {Icon} from './icons';\nimport Overlay from './Overlay';\nimport {uncontrollable} from 'uncontrollable';\nimport PopOver from './PopOver';\nimport {ClassNamesFn, themeable, ThemeProps} from '../theme';\nimport {autobind, isObject} from '../utils/helper';\nimport {localeable, LocaleProps} from '../locale';\n\nexport type PresetColor = {color: string; title: string} | string;\n\nexport interface ColorProps extends LocaleProps, ThemeProps {\n placeholder?: string;\n format: string;\n // closeOnSelect:boolean;\n clearable: boolean;\n className?: string;\n popoverClassName?: string;\n disabled?: boolean;\n popOverContainer?: any;\n placement?: string;\n value?: any;\n onChange: (value: any) => void;\n presetColors?: PresetColor[];\n resetValue?: string;\n allowCustomColor?: boolean;\n}\n\nexport interface ColorControlState {\n isOpened: boolean;\n isFocused: boolean;\n inputValue: string;\n}\n\nexport class ColorControl extends React.PureComponent<\n ColorProps,\n ColorControlState\n> {\n static defaultProps = {\n format: 'hex',\n clearable: true,\n placeholder: 'ColorPicker.placeholder',\n allowCustomColor: true\n // closeOnSelect: true\n };\n state = {\n isOpened: false,\n isFocused: false,\n inputValue: this.props.value || ''\n };\n popover: any;\n closeTimer: number;\n preview: React.RefObject<HTMLElement>;\n input: React.RefObject<HTMLInputElement>;\n constructor(props: ColorProps) {\n super(props);\n\n this.open = this.open.bind(this);\n this.close = this.close.bind(this);\n this.focus = this.focus.bind(this);\n this.blur = this.blur.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.clearValue = this.clearValue.bind(this);\n this.handleInputChange = this.handleInputChange.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.preview = React.createRef();\n this.input = React.createRef();\n }\n\n componentDidUpdate(prevProps: ColorProps) {\n const props = this.props;\n\n if (prevProps.value !== props.value) {\n this.setState({\n inputValue: props.value || ''\n });\n }\n }\n\n handleFocus() {\n this.setState({\n isFocused: true\n });\n }\n\n handleBlur() {\n this.setState({\n isFocused: false,\n inputValue: this.props.value\n });\n }\n\n focus() {\n this.input.current && this.input.current.focus();\n }\n\n blur() {\n this.input.current && this.input.current.blur();\n }\n\n open(fn?: () => void) {\n if (this.props.disabled) {\n return;\n }\n this.setState(\n {\n isOpened: true\n },\n fn\n );\n }\n\n close() {\n this.setState({\n isOpened: false\n });\n }\n\n clearValue() {\n const {onChange, resetValue} = this.props;\n onChange(resetValue || '');\n }\n\n handleClick() {\n this.state.isOpened ? this.close() : this.open(this.focus);\n }\n\n handleInputChange(e: React.ChangeEvent<HTMLInputElement>) {\n if (!this.props.allowCustomColor) {\n return;\n }\n\n const onChange = this.props.onChange;\n\n this.setState(\n {\n inputValue: e.currentTarget.value\n },\n () => {\n let isValidated = this.validateColor(this.state.inputValue);\n if (isValidated) {\n onChange(this.state.inputValue);\n }\n }\n );\n }\n\n @autobind\n validateColor(value: string) {\n if (value === '') {\n return false;\n }\n if (value === 'inherit') {\n return false;\n }\n if (value === 'transparent') {\n return false;\n }\n\n let image = document.createElement('img');\n image.style.color = 'rgb(0, 0, 0)';\n image.style.color = value;\n if (image.style.color !== 'rgb(0, 0, 0)') {\n return true;\n }\n image.style.color = 'rgb(255, 255, 255)';\n image.style.color = value;\n return image.style.color !== 'rgb(255, 255, 255)';\n }\n\n handleChange(color: ColorResult) {\n const {\n onChange,\n format\n // closeOnSelect\n } = this.props;\n\n if (format === 'rgba') {\n onChange(\n `rgba(${color.rgb.r}, ${color.rgb.g}, ${color.rgb.b}, ${color.rgb.a})`\n );\n } else if (format === 'rgb') {\n onChange(`rgb(${color.rgb.r}, ${color.rgb.g}, ${color.rgb.b})`);\n } else if (format === 'hsl') {\n onChange(\n `hsl(${Math.round(color.hsl.h)}, ${Math.round(\n color.hsl.s * 100\n )}%, ${Math.round(color.hsl.l * 100)}%)`\n );\n } else {\n onChange(color.hex);\n }\n\n // closeOnSelect && this.close();\n }\n\n render() {\n const {\n classPrefix: ns,\n className,\n popoverClassName,\n value,\n placeholder,\n disabled,\n popOverContainer,\n format,\n clearable,\n placement,\n classnames: cx,\n presetColors,\n allowCustomColor\n } = this.props;\n\n const __ = this.props.translate;\n const isOpened = this.state.isOpened;\n const isFocused = this.state.isFocused;\n\n return (\n <div\n className={cx(\n `ColorPicker`,\n {\n 'is-disabled': disabled,\n 'is-focused': isFocused,\n 'is-opened': isOpened\n },\n className\n )}\n >\n <span onClick={this.handleClick} className={cx('ColorPicker-preview')}>\n <i\n ref={this.preview}\n className={`${ns}ColorPicker-previewIcon`}\n style={{background: this.state.inputValue || '#ccc'}}\n />\n </span>\n\n <input\n ref={this.input}\n type=\"text\"\n autoComplete=\"off\"\n size={10}\n className={cx('ColorPicker-input')}\n value={this.state.inputValue || ''}\n placeholder={__(placeholder)}\n disabled={disabled}\n onChange={this.handleInputChange}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onClick={this.handleClick}\n />\n\n {clearable && !disabled && value ? (\n <a onClick={this.clearValue} className={cx('ColorPicker-clear')}>\n <Icon icon=\"close\" className=\"icon\" />\n </a>\n ) : null}\n\n <span className={cx('ColorPicker-arrow')}>\n <Icon icon=\"caret\" className=\"icon\" onClick={this.handleClick} />\n </span>\n\n {isOpened ? (\n <Overlay\n placement={placement || 'auto'}\n target={() => findDOMNode(this)}\n onHide={this.close}\n container={popOverContainer || (() => findDOMNode(this))}\n rootClose={false}\n show\n >\n <PopOver\n classPrefix={ns}\n className={cx('ColorPicker-popover', popoverClassName)}\n onHide={this.close}\n overlay\n >\n {allowCustomColor ? (\n <SketchPicker\n styles={{}}\n disableAlpha={!!~['rgb', 'hex'].indexOf(format as string)}\n color={value}\n presetColors={presetColors}\n onChangeComplete={this.handleChange}\n />\n ) : (\n <GithubPicker\n color={value}\n colors={\n Array.isArray(presetColors)\n ? (presetColors\n .filter(\n item => typeof item === 'string' || isObject(item)\n )\n .map(item =>\n typeof item === 'string'\n ? item\n : isObject(item)\n ? item?.color\n : item\n ) as string[])\n : undefined\n }\n onChangeComplete={this.handleChange}\n />\n )}\n </PopOver>\n </Overlay>\n ) : null}\n </div>\n );\n }\n}\n\nexport default themeable(\n localeable(\n uncontrollable(ColorControl, {\n value: 'onChange'\n })\n )\n);\n"
|
12
12
|
]
|
13
13
|
}
|