amis 1.9.1-beta.28 → 1.9.1-beta.29
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/components/AnchorNav.d.ts +8 -2
- package/lib/components/AnchorNav.js +24 -5
- package/lib/components/AnchorNav.js.map +2 -2
- package/lib/components/DatePicker.d.ts +41 -40
- package/lib/components/DatePicker.js +2 -2
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/DateRangePicker.d.ts +44 -41
- package/lib/components/DateRangePicker.js +25 -8
- package/lib/components/DateRangePicker.js.map +2 -2
- package/lib/components/MonthRangePicker.d.ts +41 -40
- package/lib/components/MonthRangePicker.js +2 -2
- package/lib/components/MonthRangePicker.js.map +2 -2
- package/lib/components/SearchBox.d.ts +124 -42
- package/lib/components/SearchBox.js +181 -19
- package/lib/components/SearchBox.js.map +2 -2
- package/lib/components/Tag.d.ts +12 -10
- package/lib/components/Tag.js +18 -7
- package/lib/components/Tag.js.map +2 -2
- package/lib/locale/de-DE.js +1 -0
- package/lib/locale/de-DE.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/Card.d.ts +7 -2
- package/lib/renderers/Card.js +11 -7
- package/lib/renderers/Card.js.map +2 -2
- package/lib/renderers/Form/InputExcel.d.ts +1 -0
- package/lib/renderers/Form/InputExcel.js +5 -0
- package/lib/renderers/Form/InputExcel.js.map +2 -2
- package/lib/renderers/Form/InputFile.d.ts +2 -2
- package/lib/renderers/Form/InputFile.js +6 -5
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputText.d.ts +8 -0
- package/lib/renderers/Form/InputText.js +8 -8
- package/lib/renderers/Form/InputText.js.map +2 -2
- package/lib/renderers/Table/index.js +1 -1
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/renderers/Tag.js +2 -2
- package/lib/renderers/Tag.js.map +2 -2
- package/lib/renderers/Wizard.d.ts +1 -1
- package/lib/renderers/Wizard.js +72 -75
- package/lib/renderers/Wizard.js.map +2 -2
- package/lib/store/formItem.js +2 -1
- package/lib/store/formItem.js.map +2 -2
- package/lib/themes/ang-ie11.css +120 -15
- package/lib/themes/ang.css +124 -15
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +120 -15
- package/lib/themes/antd.css +124 -15
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +120 -15
- package/lib/themes/cxd.css +124 -15
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +120 -15
- package/lib/themes/dark.css +124 -15
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +120 -15
- package/lib/themes/default.css +124 -15
- package/lib/themes/default.css.map +1 -1
- package/package.json +3 -3
- package/schema.json +35 -14
- package/scss/_properties.scss +5 -0
- package/scss/components/_anchor-nav.scss +1 -0
- package/scss/components/_calendar.scss +32 -14
- package/scss/components/_search-box.scss +116 -10
- package/scss/components/_tag.scss +12 -3
- package/scss/components/form/_date-range.scss +1 -1
- package/sdk/ang-ie11.css +131 -14
- package/sdk/ang.css +135 -14
- package/sdk/antd-ie11.css +131 -14
- package/sdk/antd.css +135 -14
- package/sdk/cxd-ie11.css +131 -14
- package/sdk/cxd.css +135 -14
- package/sdk/dark-ie11.css +131 -14
- package/sdk/dark.css +135 -14
- package/sdk/locale/de-DE.js +1 -0
- package/sdk/sdk-ie11.css +131 -14
- package/sdk/sdk.css +135 -14
- package/sdk/sdk.js +17 -17
- package/src/components/AnchorNav.tsx +40 -7
- package/src/components/DatePicker.tsx +8 -4
- package/src/components/DateRangePicker.tsx +34 -8
- package/src/components/MonthRangePicker.tsx +4 -2
- package/src/components/SearchBox.tsx +262 -29
- package/src/components/Tag.tsx +14 -3
- package/src/locale/de-DE.ts +1 -0
- package/src/locale/en-US.ts +1 -0
- package/src/locale/zh-CN.ts +1 -0
- package/src/renderers/Card.tsx +24 -12
- package/src/renderers/Form/InputExcel.tsx +6 -0
- package/src/renderers/Form/InputFile.tsx +19 -18
- package/src/renderers/Form/InputText.tsx +20 -5
- package/src/renderers/Table/index.tsx +1 -1
- package/src/renderers/Tag.tsx +2 -0
- package/src/renderers/Wizard.tsx +2 -1
- package/src/store/formItem.ts +4 -1
package/src/components/Tag.tsx
CHANGED
@@ -18,6 +18,7 @@ export interface TagProps extends ThemeProps {
|
|
18
18
|
disabled?: boolean;
|
19
19
|
closeIcon?: string | React.ReactNode;
|
20
20
|
onClose?: (e: React.MouseEvent) => void;
|
21
|
+
onClick?: (e: React.MouseEvent) => void;
|
21
22
|
}
|
22
23
|
|
23
24
|
export interface CheckableTagProps extends TagProps {
|
@@ -82,6 +83,12 @@ export class Tag extends React.Component<TagProps> {
|
|
82
83
|
onClose?.(e);
|
83
84
|
}
|
84
85
|
|
86
|
+
@autobind
|
87
|
+
handleClick(e: React.MouseEvent<HTMLElement>) {
|
88
|
+
const {onClick} = this.props;
|
89
|
+
onClick?.(e);
|
90
|
+
}
|
91
|
+
|
85
92
|
render() {
|
86
93
|
const {
|
87
94
|
children,
|
@@ -92,7 +99,8 @@ export class Tag extends React.Component<TagProps> {
|
|
92
99
|
color,
|
93
100
|
icon,
|
94
101
|
style,
|
95
|
-
label
|
102
|
+
label,
|
103
|
+
closable
|
96
104
|
} = this.props;
|
97
105
|
|
98
106
|
const isPresetColor =
|
@@ -131,9 +139,12 @@ export class Tag extends React.Component<TagProps> {
|
|
131
139
|
[`Tag--disabled`]: disabled
|
132
140
|
})}
|
133
141
|
style={tagStyle}
|
142
|
+
onClick={this.handleClick}
|
134
143
|
>
|
135
|
-
{
|
136
|
-
|
144
|
+
<span className={cx('Tag-text')}>
|
145
|
+
{prevIcon}
|
146
|
+
{label || children}
|
147
|
+
</span>
|
137
148
|
{this.renderCloseIcon()}
|
138
149
|
</span>
|
139
150
|
);
|
package/src/locale/de-DE.ts
CHANGED
@@ -184,6 +184,7 @@ register('de-DE', {
|
|
184
184
|
'saveFailed': 'Fehler beim Speichern',
|
185
185
|
'saveSuccess': 'Erfolgreich gespeichert',
|
186
186
|
'search': 'Suchen',
|
187
|
+
'searchHistory': 'Suchverlauf',
|
187
188
|
'searchResult': 'Suchergebnis',
|
188
189
|
'Checkboxes.selectAll': 'Alle auswählen/abwählen',
|
189
190
|
'Select.checkAll': 'Alle markieren',
|
package/src/locale/en-US.ts
CHANGED
@@ -186,6 +186,7 @@ register('en-US', {
|
|
186
186
|
'saveFailed': 'Save failed',
|
187
187
|
'saveSuccess': 'Saved successfully',
|
188
188
|
'search': 'Search',
|
189
|
+
'searchHistory': 'Search History',
|
189
190
|
'searchResult': 'Search result',
|
190
191
|
'Checkboxes.selectAll': 'Select/Deselect All',
|
191
192
|
'Select.checkAll': 'Check all',
|
package/src/locale/zh-CN.ts
CHANGED
package/src/renderers/Card.tsx
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
import React from 'react';
|
2
|
+
import omit from 'lodash/omit';
|
3
|
+
import merge from 'lodash/merge';
|
2
4
|
import {Renderer, RendererProps} from '../factory';
|
3
5
|
import {SchemaNode, Schema, Action, PlainObject} from '../types';
|
4
6
|
import {filter, evalExpression} from '../utils/tpl';
|
@@ -9,7 +11,6 @@ import QuickEdit, {SchemaQuickEdit} from './QuickEdit';
|
|
9
11
|
import PopOver, {SchemaPopOver} from './PopOver';
|
10
12
|
import {TableCell} from './Table';
|
11
13
|
import Copyable, {SchemaCopyable} from './Copyable';
|
12
|
-
import omit = require('lodash/omit');
|
13
14
|
import {
|
14
15
|
BaseSchema,
|
15
16
|
SchemaClassName,
|
@@ -207,6 +208,11 @@ export interface CardSchema extends BaseSchema {
|
|
207
208
|
* 次要说明
|
208
209
|
*/
|
209
210
|
secondary?: SchemaTpl;
|
211
|
+
|
212
|
+
/**
|
213
|
+
* 卡片内容区的表单项label是否使用Card内部的样式,默认为true
|
214
|
+
*/
|
215
|
+
useCardLabel?: boolean;
|
210
216
|
}
|
211
217
|
export interface CardProps
|
212
218
|
extends RendererProps,
|
@@ -249,7 +255,8 @@ export class CardRenderer extends React.Component<CardProps> {
|
|
249
255
|
selectable: false,
|
250
256
|
checkable: true,
|
251
257
|
selected: false,
|
252
|
-
hideCheckToggler: false
|
258
|
+
hideCheckToggler: false,
|
259
|
+
useCardLabel: true
|
253
260
|
};
|
254
261
|
|
255
262
|
static propsList: Array<string> = [
|
@@ -490,10 +497,10 @@ export class CardRenderer extends React.Component<CardProps> {
|
|
490
497
|
return this.renderFeild(`column/${index}`, field, index, props);
|
491
498
|
}
|
492
499
|
|
493
|
-
renderFeild(region: string, field:
|
494
|
-
const {render, classnames: cx, itemIndex} = props;
|
500
|
+
renderFeild(region: string, field: Schema, key: any, props: any) {
|
501
|
+
const {render, classnames: cx, itemIndex, useCardLabel} = props;
|
495
502
|
const data = this.props.data;
|
496
|
-
if (!isVisible(field, data)) {
|
503
|
+
if (!field || !isVisible(field, data)) {
|
497
504
|
return;
|
498
505
|
}
|
499
506
|
|
@@ -501,7 +508,7 @@ export class CardRenderer extends React.Component<CardProps> {
|
|
501
508
|
|
502
509
|
return (
|
503
510
|
<div className={cx('Card-field')} key={key}>
|
504
|
-
{
|
511
|
+
{useCardLabel && field.label ? (
|
505
512
|
<label className={cx('Card-fieldLabel', field.labelClassName)}>
|
506
513
|
{field.label}
|
507
514
|
</label>
|
@@ -510,12 +517,17 @@ export class CardRenderer extends React.Component<CardProps> {
|
|
510
517
|
{
|
511
518
|
render(
|
512
519
|
region,
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
520
|
+
merge(
|
521
|
+
{
|
522
|
+
...field,
|
523
|
+
field: field,
|
524
|
+
$$id,
|
525
|
+
type: 'card-item-field'
|
526
|
+
},
|
527
|
+
useCardLabel
|
528
|
+
? {label: false, field: {...field, label: false}}
|
529
|
+
: {}
|
530
|
+
),
|
519
531
|
{
|
520
532
|
className: cx('Card-fieldValue', field.className),
|
521
533
|
rowIndex: itemIndex,
|
@@ -66,6 +66,12 @@ export default class ExcelControl extends React.PureComponent<
|
|
66
66
|
|
67
67
|
ExcelJS: any;
|
68
68
|
|
69
|
+
componentDidUpdate(prevProps: ExcelProps) {
|
70
|
+
if (prevProps.value !== this.props.value && !this.props.value) {
|
71
|
+
this.setState({filename: ''});
|
72
|
+
}
|
73
|
+
}
|
74
|
+
|
69
75
|
@autobind
|
70
76
|
handleDrop(files: File[]) {
|
71
77
|
const {allSheets, onChange, dispatchEvent, data} = this.props;
|
@@ -222,12 +222,12 @@ export interface FileControlSchema extends FormBaseControl {
|
|
222
222
|
/**
|
223
223
|
* 说明文档内容配置
|
224
224
|
*/
|
225
|
-
|
225
|
+
documentation?: string;
|
226
226
|
|
227
|
-
|
227
|
+
/**
|
228
228
|
* 说明文档链接配置
|
229
229
|
*/
|
230
|
-
|
230
|
+
documentLink?: string;
|
231
231
|
|
232
232
|
/**
|
233
233
|
* 是否为拖拽上传
|
@@ -580,14 +580,16 @@ export default class FileControl extends React.Component<FileProps, FileState> {
|
|
580
580
|
file[urlField as keyof typeof file] ||
|
581
581
|
file[valueField as keyof typeof file];
|
582
582
|
|
583
|
-
|
584
|
-
typeof downloadUrl === 'string' &&
|
583
|
+
const api =
|
584
|
+
typeof downloadUrl === 'string' &&
|
585
|
+
!~downloadUrl.indexOf('$') &&
|
586
|
+
typeof fileUrl === 'string'
|
585
587
|
? `${downloadUrl}${fileUrl}`
|
586
588
|
: downloadUrl
|
587
589
|
? downloadUrl
|
588
|
-
:
|
590
|
+
: undefined;
|
589
591
|
|
590
|
-
this.handleApi(api, file);
|
592
|
+
api && this.handleApi(api, file);
|
591
593
|
}
|
592
594
|
|
593
595
|
downloadTpl(e: React.MouseEvent) {
|
@@ -1283,7 +1285,7 @@ export default class FileControl extends React.Component<FileProps, FileState> {
|
|
1283
1285
|
templateUrl,
|
1284
1286
|
drag,
|
1285
1287
|
documentation,
|
1286
|
-
documentLink
|
1288
|
+
documentLink
|
1287
1289
|
} = this.props;
|
1288
1290
|
let {files, uploading, error} = this.state;
|
1289
1291
|
const nameField = this.props.nameField || 'name';
|
@@ -1348,17 +1350,16 @@ export default class FileControl extends React.Component<FileProps, FileState> {
|
|
1348
1350
|
<Icon icon="cloud-upload" className="icon" />
|
1349
1351
|
<span>
|
1350
1352
|
{__('File.dragDrop')}
|
1351
|
-
<span
|
1352
|
-
|
1353
|
-
|
1353
|
+
<span className={cx('FileControl-acceptTip-click')}>
|
1354
|
+
{__('File.clickUpload')}
|
1355
|
+
</span>
|
1354
1356
|
</span>
|
1355
|
-
<div
|
1356
|
-
|
1357
|
-
|
1358
|
-
|
1359
|
-
|
1360
|
-
|
1361
|
-
>{documentation ? documentation : __('File.helpText')}</a> : null}
|
1357
|
+
<div className={cx('FileControl-acceptTip-help', 'TplField')}>
|
1358
|
+
{documentLink ? (
|
1359
|
+
<a href={documentLink} onClick={e => e.stopPropagation()}>
|
1360
|
+
{documentation ? documentation : __('File.helpText')}
|
1361
|
+
</a>
|
1362
|
+
) : null}
|
1362
1363
|
</div>
|
1363
1364
|
{maxSize ? (
|
1364
1365
|
<div className={cx('FileControl-sizeTip')}>
|
@@ -96,6 +96,12 @@ export interface TextControlSchema extends FormOptionsControl {
|
|
96
96
|
/** 用户输入的字符自动转大写 */
|
97
97
|
upperCase?: boolean;
|
98
98
|
};
|
99
|
+
|
100
|
+
/** control节点的CSS类名 */
|
101
|
+
inputControlClassName?: string;
|
102
|
+
|
103
|
+
/** 原生input标签的CSS类名 */
|
104
|
+
nativeInputClassName: string;
|
99
105
|
}
|
100
106
|
|
101
107
|
export type InputTextRendererEvent =
|
@@ -124,6 +130,10 @@ export interface TextProps extends OptionsControlProps {
|
|
124
130
|
lowerCase?: boolean; // 用户输入的字符自动转小写
|
125
131
|
upperCase?: boolean; // 用户输入的字符自动转大写
|
126
132
|
};
|
133
|
+
/** control节点的CSS类名 */
|
134
|
+
inputControlClassName?: string;
|
135
|
+
/** 原生input标签的CSS类名 */
|
136
|
+
nativeInputClassName?: string;
|
127
137
|
}
|
128
138
|
|
129
139
|
export interface TextState {
|
@@ -580,6 +590,8 @@ export default class TextControl extends React.PureComponent<
|
|
580
590
|
renderSugestMode() {
|
581
591
|
const {
|
582
592
|
className,
|
593
|
+
inputControlClassName,
|
594
|
+
nativeInputClassName,
|
583
595
|
inputOnly,
|
584
596
|
value,
|
585
597
|
placeholder,
|
@@ -652,6 +664,7 @@ export default class TextControl extends React.PureComponent<
|
|
652
664
|
<div
|
653
665
|
className={cx(
|
654
666
|
`TextControl-input TextControl-input--withAC`,
|
667
|
+
inputControlClassName,
|
655
668
|
inputOnly ? className : '',
|
656
669
|
{
|
657
670
|
'is-opened': isOpen,
|
@@ -705,6 +718,7 @@ export default class TextControl extends React.PureComponent<
|
|
705
718
|
})}
|
706
719
|
autoComplete="off"
|
707
720
|
size={10}
|
721
|
+
className={cx(nativeInputClassName)}
|
708
722
|
/>
|
709
723
|
</>
|
710
724
|
|
@@ -786,6 +800,8 @@ export default class TextControl extends React.PureComponent<
|
|
786
800
|
classPrefix: ns,
|
787
801
|
classnames: cx,
|
788
802
|
className,
|
803
|
+
inputControlClassName,
|
804
|
+
nativeInputClassName,
|
789
805
|
inputOnly,
|
790
806
|
value,
|
791
807
|
placeholder,
|
@@ -815,6 +831,7 @@ export default class TextControl extends React.PureComponent<
|
|
815
831
|
{
|
816
832
|
[`TextControl-input--border${ucFirst(borderMode)}`]: borderMode
|
817
833
|
},
|
834
|
+
inputControlClassName,
|
818
835
|
inputOnly ? className : ''
|
819
836
|
)}
|
820
837
|
>
|
@@ -839,11 +856,9 @@ export default class TextControl extends React.PureComponent<
|
|
839
856
|
step={step}
|
840
857
|
onChange={this.handleNormalInputChange}
|
841
858
|
value={this.valueToString(value)}
|
842
|
-
className={cx(
|
843
|
-
type === 'password' &&
|
844
|
-
|
845
|
-
'TextControl-input-password'
|
846
|
-
)}
|
859
|
+
className={cx(nativeInputClassName, {
|
860
|
+
'TextControl-input-password': type === 'password' && revealPassword
|
861
|
+
})}
|
847
862
|
/>
|
848
863
|
{clearable && !disabled && !readOnly && value ? (
|
849
864
|
<a onClick={this.clearValue} className={`${ns}TextControl-clear`}>
|
@@ -1992,7 +1992,7 @@ export default class Table extends React.Component<TableProps, object> {
|
|
1992
1992
|
classPrefix={ns}
|
1993
1993
|
type={multiple ? 'checkbox' : 'radio'}
|
1994
1994
|
checked={item.checked}
|
1995
|
-
disabled={item.checkdisable}
|
1995
|
+
disabled={item.checkdisable || item.checkable}
|
1996
1996
|
onChange={
|
1997
1997
|
checkOnItemClick ? noop : this.handleCheck.bind(this, item)
|
1998
1998
|
}
|
package/src/renderers/Tag.tsx
CHANGED
@@ -88,6 +88,7 @@ export class TagField extends React.Component<TagProps, object> {
|
|
88
88
|
displayMode,
|
89
89
|
color,
|
90
90
|
className,
|
91
|
+
closable,
|
91
92
|
data,
|
92
93
|
style = {}
|
93
94
|
} = this.props;
|
@@ -114,6 +115,7 @@ export class TagField extends React.Component<TagProps, object> {
|
|
114
115
|
displayMode={displayMode}
|
115
116
|
color={color}
|
116
117
|
icon={icon}
|
118
|
+
closable={closable}
|
117
119
|
style={style}
|
118
120
|
>
|
119
121
|
{label}
|
package/src/renderers/Wizard.tsx
CHANGED
@@ -745,6 +745,7 @@ export default class Wizard extends React.Component<WizardProps, WizardState> {
|
|
745
745
|
};
|
746
746
|
},
|
747
747
|
onFailed: async (error: any) => {
|
748
|
+
store.markSaving(false);
|
748
749
|
const dispatcher = await this.dispatchEvent(
|
749
750
|
'submitFail',
|
750
751
|
createObject(this.props.data, {error})
|
@@ -805,7 +806,7 @@ export default class Wizard extends React.Component<WizardProps, WizardState> {
|
|
805
806
|
|
806
807
|
// 接管里面 form 的提交,不能直接让 form 提交,因为 wizard 自己需要知道进度。
|
807
808
|
@autobind
|
808
|
-
|
809
|
+
handleSubmit(values: object, action: Action) {
|
809
810
|
const {store, steps, finishedField} = this.props;
|
810
811
|
|
811
812
|
if (this.state.currentStep < steps.length) {
|
package/src/store/formItem.ts
CHANGED
@@ -457,7 +457,10 @@ export const FormItemStore = StoreNode.named('FormItemStore')
|
|
457
457
|
if (childFirst !== undefined) {
|
458
458
|
return childFirst;
|
459
459
|
}
|
460
|
-
} else if (
|
460
|
+
} else if (
|
461
|
+
option[self.valueField || 'value'] != null &&
|
462
|
+
!option.disabled
|
463
|
+
) {
|
461
464
|
return option;
|
462
465
|
}
|
463
466
|
}
|