amis 1.9.1-beta.0 → 1.9.1-beta.1
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/components/Alert2.d.ts +10 -10
- package/lib/components/SearchBox.d.ts +40 -40
- package/lib/components/calendar/DaysView.js +13 -6
- package/lib/components/calendar/DaysView.js.map +2 -2
- package/lib/components/calendar/TimeView.js +2 -1
- package/lib/components/calendar/TimeView.js.map +2 -2
- package/lib/components/formula/Picker.js +4 -4
- package/lib/components/formula/Picker.js.map +2 -2
- package/lib/helper.css +125 -124
- package/lib/helper.css.map +1 -1
- package/lib/index.js +1 -1
- package/lib/renderers/Log.d.ts +16 -0
- package/lib/renderers/Log.js +35 -11
- package/lib/renderers/Log.js.map +2 -2
- package/lib/themes/ang-ie11.css +15 -3
- package/lib/themes/ang.css +15 -3
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +15 -3
- package/lib/themes/antd.css +15 -3
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +15 -3
- package/lib/themes/cxd.css +15 -3
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +15 -3
- package/lib/themes/dark.css +15 -3
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +15 -3
- package/lib/themes/default.css +15 -3
- package/lib/themes/default.css.map +1 -1
- package/package.json +1 -1
- package/scss/components/form/_transfer.scss +19 -3
- package/scss/helper/background/_background-color.scss +125 -124
- package/sdk/ang-ie11.css +19 -3
- package/sdk/ang.css +19 -3
- package/sdk/antd-ie11.css +19 -3
- package/sdk/antd.css +19 -3
- package/sdk/barcode.js +51 -51
- package/sdk/charts.js +14 -14
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +19 -3
- package/sdk/cxd.css +19 -3
- package/sdk/dark-ie11.css +19 -3
- package/sdk/dark.css +19 -3
- package/sdk/exceljs.js +1 -1
- package/sdk/helper.css +125 -124
- package/sdk/helper.css.map +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 -16
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +19 -3
- package/sdk/sdk.css +19 -3
- package/sdk/sdk.js +1307 -1305
- 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/components/calendar/DaysView.tsx +68 -37
- package/src/components/calendar/TimeView.tsx +1 -1
- package/src/components/formula/Picker.tsx +2 -1
- package/src/renderers/Log.tsx +71 -12
@@ -31,7 +31,12 @@ interface CustomDaysViewProps extends LocaleProps {
|
|
31
31
|
setDateTimeState: (state: any) => void;
|
32
32
|
showTime: () => void;
|
33
33
|
setTime: (type: string, amount: number) => void;
|
34
|
-
scrollToTop: (
|
34
|
+
scrollToTop: (
|
35
|
+
type: string,
|
36
|
+
amount: number,
|
37
|
+
i: number,
|
38
|
+
lable?: string
|
39
|
+
) => void;
|
35
40
|
subtractTime: (
|
36
41
|
amount: number,
|
37
42
|
type: string,
|
@@ -177,21 +182,16 @@ export class CustomDaysView extends React.Component<CustomDaysViewProps> {
|
|
177
182
|
columns,
|
178
183
|
types,
|
179
184
|
pickerValue: currentDate.toArray(),
|
180
|
-
uniqueTag: 0
|
181
|
-
}
|
185
|
+
uniqueTag: 0
|
186
|
+
};
|
182
187
|
}
|
183
188
|
|
184
189
|
componentWillMount() {
|
185
|
-
this.setState({uniqueTag:
|
190
|
+
this.setState({uniqueTag: new Date().valueOf()});
|
186
191
|
}
|
187
192
|
|
188
193
|
componentDidMount() {
|
189
|
-
const {
|
190
|
-
timeFormat,
|
191
|
-
selectedDate,
|
192
|
-
viewDate,
|
193
|
-
isEndDate,
|
194
|
-
} = this.props;
|
194
|
+
const {timeFormat, selectedDate, viewDate, isEndDate} = this.props;
|
195
195
|
const formatMap = {
|
196
196
|
hours: 'HH',
|
197
197
|
minutes: 'mm',
|
@@ -207,9 +207,14 @@ export class CustomDaysView extends React.Component<CustomDaysViewProps> {
|
|
207
207
|
? 'seconds'
|
208
208
|
: '';
|
209
209
|
if (type) {
|
210
|
-
this.scrollToTop(
|
210
|
+
this.scrollToTop(
|
211
|
+
type,
|
212
|
+
parseInt(date.format(formatMap[type]), 10),
|
213
|
+
i,
|
214
|
+
'init'
|
215
|
+
);
|
211
216
|
}
|
212
|
-
})
|
217
|
+
});
|
213
218
|
}
|
214
219
|
|
215
220
|
updateSelectedDate = (event: React.MouseEvent<any>) => {
|
@@ -246,17 +251,14 @@ export class CustomDaysView extends React.Component<CustomDaysViewProps> {
|
|
246
251
|
this.props.updateSelectedDate(event, true);
|
247
252
|
};
|
248
253
|
|
249
|
-
showTime = () =>{
|
250
|
-
const {selectedDate, viewDate, timeFormat} = this.props
|
254
|
+
showTime = () => {
|
255
|
+
const {selectedDate, viewDate, timeFormat} = this.props;
|
251
256
|
return (
|
252
|
-
<div
|
253
|
-
key="stb"
|
254
|
-
className="rdtShowTime"
|
255
|
-
>
|
257
|
+
<div key="stb" className="rdtShowTime">
|
256
258
|
{(selectedDate || viewDate || moment()).format(timeFormat)}
|
257
259
|
</div>
|
258
|
-
)
|
259
|
-
}
|
260
|
+
);
|
261
|
+
};
|
260
262
|
|
261
263
|
setTime = (
|
262
264
|
type: 'hours' | 'minutes' | 'seconds' | 'milliseconds',
|
@@ -279,13 +281,15 @@ export class CustomDaysView extends React.Component<CustomDaysViewProps> {
|
|
279
281
|
type: 'hours' | 'minutes' | 'seconds' | 'milliseconds',
|
280
282
|
value: number,
|
281
283
|
i: number,
|
282
|
-
label?: string
|
284
|
+
label?: string
|
283
285
|
) => {
|
284
|
-
let elf: any = document.getElementById(
|
285
|
-
|
286
|
+
let elf: any = document.getElementById(
|
287
|
+
`${this.state.uniqueTag}-${i}-input`
|
288
|
+
);
|
289
|
+
elf?.parentNode?.scrollTo({
|
286
290
|
top: value * 28,
|
287
291
|
behavior: label === 'init' ? 'auto' : 'smooth'
|
288
|
-
})
|
292
|
+
});
|
289
293
|
};
|
290
294
|
|
291
295
|
confirm = () => {
|
@@ -479,7 +483,7 @@ export class CustomDaysView extends React.Component<CustomDaysViewProps> {
|
|
479
483
|
const date = selectedDate || (isEndDate ? viewDate.endOf('day') : viewDate);
|
480
484
|
const inputs: Array<React.ReactNode> = [];
|
481
485
|
|
482
|
-
inputs.push(this.showTime())
|
486
|
+
inputs.push(this.showTime());
|
483
487
|
|
484
488
|
timeFormat.split(':').forEach((format, i) => {
|
485
489
|
const type = /h/i.test(format)
|
@@ -525,7 +529,12 @@ export class CustomDaysView extends React.Component<CustomDaysViewProps> {
|
|
525
529
|
)
|
526
530
|
});
|
527
531
|
return (
|
528
|
-
<div
|
532
|
+
<div
|
533
|
+
className={cx(
|
534
|
+
'CalendarInputWrapper',
|
535
|
+
'CalendarInputWrapperMT'
|
536
|
+
)}
|
537
|
+
>
|
529
538
|
{/* <input
|
530
539
|
type="text"
|
531
540
|
value={date.format(formatMap[type])}
|
@@ -534,24 +543,30 @@ export class CustomDaysView extends React.Component<CustomDaysViewProps> {
|
|
534
543
|
max={max}
|
535
544
|
{...inputProps}
|
536
545
|
/> */}
|
537
|
-
<div
|
546
|
+
<div
|
538
547
|
className={cx(
|
539
548
|
'CalendarInput-sugs',
|
540
|
-
type === 'hours'
|
541
|
-
|
549
|
+
type === 'hours'
|
550
|
+
? 'CalendarInput-sugsHours'
|
551
|
+
: 'CalendarInput-sugsTimes'
|
552
|
+
)}
|
542
553
|
id={`${this.state.uniqueTag}-${i}-input`}
|
543
554
|
>
|
544
555
|
{options.map(option => {
|
545
556
|
return (
|
546
557
|
<div
|
547
558
|
key={option.value}
|
548
|
-
className={cx(
|
549
|
-
'
|
550
|
-
|
551
|
-
)}
|
559
|
+
className={cx('CalendarInput-sugsItem', {
|
560
|
+
'is-highlight':
|
561
|
+
option.value === date.format(formatMap[type])
|
562
|
+
})}
|
552
563
|
onClick={() => {
|
553
564
|
this.setTime(type, parseInt(option.value, 10));
|
554
|
-
this.scrollToTop(
|
565
|
+
this.scrollToTop(
|
566
|
+
type,
|
567
|
+
parseInt(option.value, 10),
|
568
|
+
i
|
569
|
+
);
|
555
570
|
closeMenu();
|
556
571
|
}}
|
557
572
|
>
|
@@ -649,7 +664,13 @@ export class CustomDaysView extends React.Component<CustomDaysViewProps> {
|
|
649
664
|
};
|
650
665
|
|
651
666
|
render() {
|
652
|
-
const {
|
667
|
+
const {
|
668
|
+
viewDate: date,
|
669
|
+
useMobileUI,
|
670
|
+
embed,
|
671
|
+
timeFormat,
|
672
|
+
classnames: cx
|
673
|
+
} = this.props;
|
653
674
|
const locale = date.localeData();
|
654
675
|
const __ = this.props.translate;
|
655
676
|
if (isMobile() && useMobileUI && !embed) {
|
@@ -718,9 +739,19 @@ export class CustomDaysView extends React.Component<CustomDaysViewProps> {
|
|
718
739
|
return (
|
719
740
|
<>
|
720
741
|
<div className={timeFormat ? 'rdtDays' : ''}>
|
721
|
-
<table className={timeFormat ? 'rdtDaysPart' : ''}>
|
742
|
+
<table className={timeFormat ? 'rdtDaysPart' : ''}>
|
743
|
+
{tableChildren}
|
744
|
+
</table>
|
722
745
|
{timeFormat ? (
|
723
|
-
<div
|
746
|
+
<div
|
747
|
+
className={
|
748
|
+
timeFormat.toLowerCase().indexOf('s') > 0
|
749
|
+
? 'rdtTimePartWithS'
|
750
|
+
: 'rdtTimePart'
|
751
|
+
}
|
752
|
+
>
|
753
|
+
{this.renderTimes()}
|
754
|
+
</div>
|
724
755
|
) : null}
|
725
756
|
</div>
|
726
757
|
<table>{this.renderFooter()}</table>
|
@@ -550,7 +550,7 @@ export class CustomTimeView extends React.Component<
|
|
550
550
|
let elf: any = document.getElementById(
|
551
551
|
`${this.state.uniqueTag}-${i}-input`
|
552
552
|
);
|
553
|
-
elf
|
553
|
+
elf?.parentNode?.scrollTo({
|
554
554
|
top: value * 28,
|
555
555
|
behavior: label === 'init' ? 'auto' : 'smooth'
|
556
556
|
});
|
@@ -275,6 +275,7 @@ export class FormulaPicker extends React.Component<
|
|
275
275
|
variables,
|
276
276
|
functions,
|
277
277
|
children,
|
278
|
+
variableMode,
|
278
279
|
...rest
|
279
280
|
} = this.props;
|
280
281
|
const {isOpened, value, editorValue, isError} = this.state;
|
@@ -377,7 +378,7 @@ export class FormulaPicker extends React.Component<
|
|
377
378
|
{...rest}
|
378
379
|
variables={this.state.variables ?? variables}
|
379
380
|
functions={this.state.functions ?? functions}
|
380
|
-
variableMode={this.state.variableMode}
|
381
|
+
variableMode={this.state.variableMode ?? variableMode}
|
381
382
|
value={editorValue}
|
382
383
|
onChange={this.handleEditorChange}
|
383
384
|
/>
|
package/src/renderers/Log.tsx
CHANGED
@@ -7,6 +7,7 @@ import {BaseSchema, SchemaTpl} from '../Schema';
|
|
7
7
|
import Ansi from 'ansi-to-react';
|
8
8
|
import {filter} from '../utils/tpl';
|
9
9
|
import {buildApi, isApiOutdated} from '../utils/api';
|
10
|
+
import VirtualList from '../components/virtual-list';
|
10
11
|
|
11
12
|
/**
|
12
13
|
* 日志展示组件
|
@@ -42,6 +43,21 @@ export interface LogSchema extends BaseSchema {
|
|
42
43
|
* 返回内容字符编码
|
43
44
|
*/
|
44
45
|
encoding?: string;
|
46
|
+
|
47
|
+
/**
|
48
|
+
* 限制最大日志数量
|
49
|
+
*/
|
50
|
+
maxLength?: number;
|
51
|
+
|
52
|
+
/**
|
53
|
+
* 每行高度
|
54
|
+
*/
|
55
|
+
rowHeight?: number;
|
56
|
+
|
57
|
+
/**
|
58
|
+
* 关闭 ANSI 颜色支持
|
59
|
+
*/
|
60
|
+
disableColor?: boolean;
|
45
61
|
}
|
46
62
|
|
47
63
|
export interface LogProps
|
@@ -125,7 +141,7 @@ export class Log extends React.Component<LogProps, LogState> {
|
|
125
141
|
}
|
126
142
|
|
127
143
|
async loadLogs() {
|
128
|
-
const {source, data, env, translate: __, encoding} = this.props;
|
144
|
+
const {source, data, env, translate: __, encoding, maxLength} = this.props;
|
129
145
|
// 因为这里返回结果是流式的,和普通 api 请求不一样,如果直接用 fetcher 经过 responseAdaptor 可能会导致出错,所以就直接 fetch 了
|
130
146
|
const api = buildApi(source, data);
|
131
147
|
if (!api.url) {
|
@@ -162,6 +178,11 @@ export class Log extends React.Component<LogProps, LogState> {
|
|
162
178
|
lines[0] = lastline + lines[0];
|
163
179
|
// 最后一个要么是空,要么是下一行的数据
|
164
180
|
lastline = lines.pop() || '';
|
181
|
+
if (maxLength) {
|
182
|
+
if (logs.length + lines.length > maxLength) {
|
183
|
+
logs.splice(0, lines.length);
|
184
|
+
}
|
185
|
+
}
|
165
186
|
logs = logs.concat(lines);
|
166
187
|
this.setState({
|
167
188
|
logs: logs,
|
@@ -180,6 +201,18 @@ export class Log extends React.Component<LogProps, LogState> {
|
|
180
201
|
}
|
181
202
|
}
|
182
203
|
|
204
|
+
/**
|
205
|
+
* 渲染某一行
|
206
|
+
*/
|
207
|
+
renderLine(index: number, line: string) {
|
208
|
+
const {classnames: cx, disableColor} = this.props;
|
209
|
+
return (
|
210
|
+
<div className={cx('Log-line')} key={index}>
|
211
|
+
{disableColor ? line : <Ansi useClasses>{line}</Ansi>}
|
212
|
+
</div>
|
213
|
+
);
|
214
|
+
}
|
215
|
+
|
183
216
|
render() {
|
184
217
|
const {
|
185
218
|
source,
|
@@ -187,6 +220,8 @@ export class Log extends React.Component<LogProps, LogState> {
|
|
187
220
|
classnames: cx,
|
188
221
|
placeholder,
|
189
222
|
height,
|
223
|
+
rowHeight,
|
224
|
+
disableColor,
|
190
225
|
translate: __
|
191
226
|
} = this.props;
|
192
227
|
|
@@ -195,25 +230,49 @@ export class Log extends React.Component<LogProps, LogState> {
|
|
195
230
|
if (!source) {
|
196
231
|
loading = __('Log.mustHaveSource');
|
197
232
|
}
|
233
|
+
let lines: any;
|
198
234
|
|
199
|
-
const
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
235
|
+
const logs = this.state.lastLine
|
236
|
+
? this.state.logs.concat([this.state.lastLine])
|
237
|
+
: this.state.logs;
|
238
|
+
|
239
|
+
// 如果设置 rowHeight 就开启延迟渲染
|
240
|
+
const useVirtualRender = rowHeight;
|
241
|
+
|
242
|
+
if (useVirtualRender) {
|
243
|
+
lines = (
|
244
|
+
<VirtualList
|
245
|
+
height={height as number}
|
246
|
+
itemCount={logs.length}
|
247
|
+
itemSize={rowHeight}
|
248
|
+
renderItem={({index, style}) => (
|
249
|
+
<div
|
250
|
+
className={cx('Log-line')}
|
251
|
+
key={index}
|
252
|
+
style={{...style, whiteSpace: 'nowrap'}}
|
253
|
+
>
|
254
|
+
{disableColor ? (
|
255
|
+
logs[index]
|
256
|
+
) : (
|
257
|
+
<Ansi useClasses>{logs[index]}</Ansi>
|
258
|
+
)}
|
259
|
+
</div>
|
260
|
+
)}
|
261
|
+
/>
|
204
262
|
);
|
205
|
-
}
|
263
|
+
} else {
|
264
|
+
lines = logs.map((line, index) => {
|
265
|
+
return this.renderLine(index, line);
|
266
|
+
});
|
267
|
+
}
|
206
268
|
|
207
269
|
return (
|
208
270
|
<div
|
209
271
|
ref={this.logRef}
|
210
272
|
className={cx('Log', className)}
|
211
|
-
style={{height: height}}
|
273
|
+
style={{height: useVirtualRender ? 'auto' : height}}
|
212
274
|
>
|
213
|
-
{lines.length ? lines : loading}
|
214
|
-
<div className={cx('Log-line')} key="last">
|
215
|
-
<code>{this.state.lastLine}</code>
|
216
|
-
</div>
|
275
|
+
{useVirtualRender ? lines : lines.length ? lines : loading}
|
217
276
|
</div>
|
218
277
|
);
|
219
278
|
}
|