amis-editor 5.4.0 → 5.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. package/esm/component/TableViewEditor.d.ts +2 -2
  2. package/esm/locale/en-US.js +57 -1
  3. package/esm/locale/zh-CN.js +57 -1
  4. package/esm/plugin/CRUD.d.ts +3 -2
  5. package/esm/plugin/CRUD.js +157 -1
  6. package/esm/plugin/Dialog.d.ts +1 -1
  7. package/esm/plugin/Dialog.js +4 -4
  8. package/esm/plugin/Form/Combo.d.ts +5 -2
  9. package/esm/plugin/Form/Combo.js +34 -11
  10. package/esm/plugin/Form/Form.js +6 -2
  11. package/esm/plugin/Form/InputDateRange.js +4 -24
  12. package/esm/plugin/Form/InputRichText.d.ts +0 -1
  13. package/esm/plugin/Form/InputRichText.js +0 -1
  14. package/esm/plugin/Form/InputTable.d.ts +4 -1
  15. package/esm/plugin/Form/InputTable.js +100 -77
  16. package/esm/plugin/TableView.d.ts +2 -1
  17. package/esm/plugin/Tabs.d.ts +2 -1
  18. package/esm/renderer/APIAdaptorControl.d.ts +1 -1
  19. package/esm/renderer/APIControl.d.ts +4 -4
  20. package/esm/renderer/ActionApiControl.d.ts +3 -3
  21. package/esm/renderer/BadgeControl.d.ts +1 -1
  22. package/esm/renderer/ButtonGroupControl.d.ts +1 -1
  23. package/esm/renderer/ColumnControl.d.ts +1 -1
  24. package/esm/renderer/DataBindingControl.d.ts +2 -2
  25. package/esm/renderer/DataPickerControl.d.ts +1 -1
  26. package/esm/renderer/DateShortCutControl.d.ts +53 -29
  27. package/esm/renderer/DateShortCutControl.js +182 -140
  28. package/esm/renderer/ExpressionFormulaControl.d.ts +1 -1
  29. package/esm/renderer/FeatureControl.d.ts +2 -2
  30. package/esm/renderer/FlexSettingControl.d.ts +1 -1
  31. package/esm/renderer/FormulaControl.d.ts +8 -3
  32. package/esm/renderer/FormulaControl.js +76 -8
  33. package/esm/renderer/GoConfigControl.d.ts +1 -1
  34. package/esm/renderer/MapSourceControl.d.ts +3 -3
  35. package/esm/renderer/NavBadgeControl.d.ts +1 -1
  36. package/esm/renderer/NavSourceControl.d.ts +4 -4
  37. package/esm/renderer/OptionControl.d.ts +3 -3
  38. package/esm/renderer/RangePartsControl.d.ts +5 -5
  39. package/esm/renderer/StatusControl.d.ts +2 -2
  40. package/esm/renderer/SwitchMoreControl.d.ts +4 -4
  41. package/esm/renderer/TimelineItemControl.d.ts +4 -4
  42. package/esm/renderer/TplFormulaControl.d.ts +1 -1
  43. package/esm/renderer/TransferTableControl.d.ts +3 -3
  44. package/esm/renderer/TreeOptionControl.d.ts +3 -3
  45. package/esm/renderer/ValidationControl.d.ts +4 -4
  46. package/esm/renderer/ValidationItem.d.ts +3 -3
  47. package/esm/renderer/event-control/comp-action-select.d.ts +1 -1
  48. package/esm/renderer/event-control/index.d.ts +2 -2
  49. package/esm/renderer/style-control/Background.d.ts +1 -1
  50. package/esm/renderer/style-control/Border.d.ts +2 -2
  51. package/esm/renderer/style-control/BoxModel.d.ts +2 -2
  52. package/esm/renderer/style-control/BoxShadow.d.ts +2 -2
  53. package/esm/renderer/style-control/Display.d.ts +1 -1
  54. package/esm/renderer/style-control/Font.d.ts +1 -1
  55. package/esm/renderer/style-control/InsetBoxModel.d.ts +2 -2
  56. package/esm/renderer/style-control/ThemeCssCode.d.ts +1 -1
  57. package/esm/renderer/textarea-formula/TextareaFormulaControl.d.ts +1 -1
  58. package/esm/tpl/common.js +2 -1
  59. package/lib/component/TableViewEditor.d.ts +2 -2
  60. package/lib/locale/en-US.js +57 -1
  61. package/lib/locale/zh-CN.js +57 -1
  62. package/lib/plugin/CRUD.d.ts +3 -2
  63. package/lib/plugin/CRUD.js +157 -1
  64. package/lib/plugin/Dialog.d.ts +1 -1
  65. package/lib/plugin/Dialog.js +4 -4
  66. package/lib/plugin/Form/Combo.d.ts +5 -2
  67. package/lib/plugin/Form/Combo.js +32 -9
  68. package/lib/plugin/Form/Form.js +6 -2
  69. package/lib/plugin/Form/InputDateRange.js +4 -24
  70. package/lib/plugin/Form/InputRichText.d.ts +0 -1
  71. package/lib/plugin/Form/InputRichText.js +0 -1
  72. package/lib/plugin/Form/InputTable.d.ts +4 -1
  73. package/lib/plugin/Form/InputTable.js +99 -76
  74. package/lib/plugin/TableView.d.ts +2 -1
  75. package/lib/plugin/Tabs.d.ts +2 -1
  76. package/lib/renderer/APIAdaptorControl.d.ts +1 -1
  77. package/lib/renderer/APIControl.d.ts +4 -4
  78. package/lib/renderer/ActionApiControl.d.ts +3 -3
  79. package/lib/renderer/BadgeControl.d.ts +7 -7
  80. package/lib/renderer/ButtonGroupControl.d.ts +1 -1
  81. package/lib/renderer/ColumnControl.d.ts +1 -1
  82. package/lib/renderer/DataBindingControl.d.ts +2 -2
  83. package/lib/renderer/DataPickerControl.d.ts +1 -1
  84. package/lib/renderer/DateShortCutControl.d.ts +53 -29
  85. package/lib/renderer/DateShortCutControl.js +181 -139
  86. package/lib/renderer/ExpressionFormulaControl.d.ts +1 -1
  87. package/lib/renderer/FeatureControl.d.ts +2 -2
  88. package/lib/renderer/FlexSettingControl.d.ts +1 -1
  89. package/lib/renderer/FormulaControl.d.ts +8 -3
  90. package/lib/renderer/FormulaControl.js +76 -8
  91. package/lib/renderer/GoConfigControl.d.ts +1 -1
  92. package/lib/renderer/MapSourceControl.d.ts +3 -3
  93. package/lib/renderer/NavBadgeControl.d.ts +7 -7
  94. package/lib/renderer/NavSourceControl.d.ts +4 -4
  95. package/lib/renderer/OptionControl.d.ts +3 -3
  96. package/lib/renderer/RangePartsControl.d.ts +5 -5
  97. package/lib/renderer/StatusControl.d.ts +2 -2
  98. package/lib/renderer/SwitchMoreControl.d.ts +4 -4
  99. package/lib/renderer/TimelineItemControl.d.ts +4 -4
  100. package/lib/renderer/TplFormulaControl.d.ts +1 -1
  101. package/lib/renderer/TransferTableControl.d.ts +3 -3
  102. package/lib/renderer/TreeOptionControl.d.ts +3 -3
  103. package/lib/renderer/ValidationControl.d.ts +4 -4
  104. package/lib/renderer/ValidationItem.d.ts +3 -3
  105. package/lib/renderer/event-control/comp-action-select.d.ts +1 -1
  106. package/lib/renderer/event-control/index.d.ts +2 -2
  107. package/lib/renderer/style-control/Background.d.ts +1 -1
  108. package/lib/renderer/style-control/Border.d.ts +2 -2
  109. package/lib/renderer/style-control/BoxModel.d.ts +2 -2
  110. package/lib/renderer/style-control/BoxShadow.d.ts +2 -2
  111. package/lib/renderer/style-control/Display.d.ts +1 -1
  112. package/lib/renderer/style-control/Font.d.ts +1 -1
  113. package/lib/renderer/style-control/InsetBoxModel.d.ts +2 -2
  114. package/lib/renderer/style-control/ThemeCssCode.d.ts +1 -1
  115. package/lib/renderer/textarea-formula/TextareaFormulaControl.d.ts +1 -1
  116. package/lib/tpl/common.js +2 -1
  117. package/package.json +2 -2
@@ -3,40 +3,68 @@
3
3
  */
4
4
  import React from 'react';
5
5
  import Sortable from 'sortablejs';
6
- import type { FormControlProps } from 'amis-core';
7
- import type { BaseEventContext } from 'amis-editor-core';
8
- import type { Option } from 'amis';
9
- type $Object = {
10
- [key: string]: string;
6
+ import { FormControlProps, Option } from 'amis-core';
7
+ import { BaseEventContext } from 'amis-editor-core';
8
+ declare const CertainPresetShorcut: {
9
+ today: string;
10
+ yesterday: string;
11
+ thisweek: string;
12
+ prevweek: string;
13
+ thismonth: string;
14
+ prevmonth: string;
15
+ thisquarter: string;
16
+ prevquarter: string;
17
+ thisyear: string;
18
+ };
19
+ declare const ModifyPresetShorcut: {
20
+ $daysago: string;
21
+ $dayslater: string;
22
+ $weeksago: string;
23
+ $weekslater: string;
24
+ $monthsago: string;
25
+ $monthslater: string;
26
+ $quartersago: string;
27
+ $quarterslater: string;
28
+ $yearsago: string;
29
+ $yearslater: string;
11
30
  };
12
- declare enum RangeType {
13
- Normal = "Normal",
14
- Custom = "Custom"
15
- }
16
31
  export interface DateShortCutControlProps extends FormControlProps {
17
32
  className?: string;
18
33
  /**
19
34
  * 编辑器上下文数据,用于获取字段所在Form的其他字段
20
35
  */
21
36
  context: BaseEventContext;
22
- normalDropDownOption: $Object;
23
- customDropDownOption: $Object;
37
+ certainOptions: Array<keyof typeof CertainPresetShorcut>;
38
+ modifyOptions: Array<keyof typeof ModifyPresetShorcut>;
24
39
  }
25
- interface OptionsType {
26
- label?: string;
40
+ type PresetShorCutType = string;
41
+ type CustomShortCutType = {
42
+ label: string;
43
+ startDate: string;
44
+ endDate: string;
45
+ };
46
+ type ModifyOptionType = {
47
+ key: keyof typeof ModifyPresetShorcut;
27
48
  value: string;
28
- type: RangeType;
29
- inputType?: string;
49
+ };
50
+ declare enum OptionType {
51
+ Custom = 1,
52
+ Certain = 2,
53
+ Modify = 3
54
+ }
55
+ interface OptionDataType {
56
+ data: PresetShorCutType | CustomShortCutType | ModifyOptionType;
57
+ type?: OptionType;
30
58
  }
31
59
  interface DateShortCutControlState {
32
- options: Array<OptionsType>;
60
+ options: Array<OptionDataType>;
33
61
  }
34
62
  export declare class DateShortCutControl extends React.PureComponent<DateShortCutControlProps, DateShortCutControlState> {
35
63
  sortable?: Sortable;
36
64
  drag?: HTMLElement | null;
37
65
  target: HTMLElement | null;
38
- normalDropDownOptionArr: Array<Option>;
39
- customDropDownOptionArr: Array<Option>;
66
+ certainDropDownOptions: Array<Option>;
67
+ modifyDropDownOptions: Array<Option>;
40
68
  static defaultProps: Partial<DateShortCutControlProps>;
41
69
  constructor(props: DateShortCutControlProps);
42
70
  dragRef(ref: any): void;
@@ -50,25 +78,21 @@ export declare class DateShortCutControl extends React.PureComponent<DateShortCu
50
78
  */
51
79
  destroyDragging(): void;
52
80
  /**
53
- * 生成内容体
54
- */
55
- renderContent(): JSX.Element;
56
- /**
57
- * 生成固定跨度选项
81
+ * 生成快捷键项的配置
58
82
  */
59
- renderNormalOption(option: OptionsType, index: number): JSX.Element;
83
+ renderOption(option: OptionDataType, index: number): any;
60
84
  /**
61
- * 生成自定义跨度选项
85
+ * 生成内容体
62
86
  */
63
- renderCustomOption(option: OptionsType, index: number): JSX.Element;
87
+ renderContent(): React.JSX.Element;
64
88
  /**
65
89
  * 自定义跨度变化
66
90
  */
67
- handleCustomItemChange(value: string, index: number): void;
91
+ handleOptionChange(data: string | CustomShortCutType | ModifyOptionType, index: number): void;
68
92
  /**
69
93
  * option添加
70
94
  */
71
- addItem(item: Option, type: RangeType): void;
95
+ addItem(item: Option, type: OptionType): void;
72
96
  /**
73
97
  * 删除选项
74
98
  */
@@ -77,7 +101,7 @@ export declare class DateShortCutControl extends React.PureComponent<DateShortCu
77
101
  * 更新options字段的统一出口
78
102
  */
79
103
  onChangeOptions(): void;
80
- render(): JSX.Element;
104
+ render(): React.JSX.Element;
81
105
  }
82
106
  export declare class DateShortCutControlRender extends DateShortCutControl {
83
107
  }
@@ -9,14 +9,40 @@ import cx from 'classnames';
9
9
  import Sortable from 'sortablejs';
10
10
  import { findDOMNode } from 'react-dom';
11
11
  import { FormItem, Icon } from 'amis';
12
- import { autobind } from 'amis-editor-core';
12
+ import { getSchemaTpl, autobind } from 'amis-editor-core';
13
+ import { FormulaDateType } from './FormulaControl.js';
13
14
  import { i18n } from 'i18n-runtime';
14
15
 
15
- var RangeType;
16
- (function (RangeType) {
17
- RangeType["Normal"] = "Normal";
18
- RangeType["Custom"] = "Custom";
19
- })(RangeType || (RangeType = {}));
16
+ var DefaultValue = ['yesterday', '7daysago', 'thismonth', 'prevmonth', 'prevquarter'];
17
+ var CertainPresetShorcut = {
18
+ today: i18n("800dfdd90200bd47bb4bb83def4fea56"),
19
+ yesterday: i18n("2f8d6f1584b73bfc6dada44526abb502"),
20
+ thisweek: i18n("0dc86a275145ad5a7774e594f0d94a06"),
21
+ prevweek: i18n("79abd4ee3661ff70c7d79716c8aaed83"),
22
+ thismonth: i18n("8f2a5a5f6e3777c7a0e1ce9484a2f7d7"),
23
+ prevmonth: i18n("d5578d93388a5b2552316418cd1124da"),
24
+ thisquarter: i18n("ffb2b7fbf227d9d21e03d0f160fb2a34"),
25
+ prevquarter: i18n("dd657784cc0d5511d2f25459e49ead1a"),
26
+ thisyear: i18n("d3dbc7a7fd9fc5ccd168084c8579c1ec")
27
+ };
28
+ var ModifyPresetShorcut = {
29
+ $daysago: i18n("fd312ae2f1c24b8a14d9412bb3c6bb76"),
30
+ $dayslater: i18n("68cba5f27ab003cfada5eb4c1f29eb21"),
31
+ $weeksago: i18n("34b06708894a178c440e6f6539e95e9e"),
32
+ $weekslater: i18n("f0e1b8d8a6e731360d7348bc8301d44a"),
33
+ $monthsago: i18n("5cad2778bb8f01d1a1b1226082eb2117"),
34
+ $monthslater: i18n("ff76f60b3da86a0d2c6663b170a7955a"),
35
+ $quartersago: i18n("9ff9b56c9ed633ee09396830e93113ad"),
36
+ $quarterslater: i18n("2b80b20008b3ae81136217ae10a1fbaf"),
37
+ $yearsago: i18n("84752114d27119dc50d8a7b9ac0b788b"),
38
+ $yearslater: i18n("5df2352afebd73d1f568ebaa81e2db28")
39
+ };
40
+ var OptionType;
41
+ (function (OptionType) {
42
+ OptionType[OptionType["Custom"] = 1] = "Custom";
43
+ OptionType[OptionType["Certain"] = 2] = "Certain";
44
+ OptionType[OptionType["Modify"] = 3] = "Modify";
45
+ })(OptionType || (OptionType = {}));
20
46
  var ShortCutItemWrap = function (props) {
21
47
  return React__default.createElement(React__default.Fragment, null, React__default.createElement("a", {
22
48
  className: klass + 'Item-dragBar'
@@ -42,40 +68,55 @@ var DateShortCutControl = /** @class */function (_super) {
42
68
  var _this = this;
43
69
  var _a, _b;
44
70
  _this = _super.call(this, props) || this;
45
- var normalDropDownOption = props.normalDropDownOption,
46
- customDropDownOption = props.customDropDownOption,
71
+ // 初始化下拉选项
72
+ var certainOptions = props.certainOptions,
73
+ modifyOptions = props.modifyOptions,
47
74
  data = props.data;
48
- _this.normalDropDownOptionArr = Object.keys(normalDropDownOption).map(function (key) {
75
+ _this.certainDropDownOptions = certainOptions.map(function (key) {
49
76
  return {
50
- label: normalDropDownOption[key],
77
+ label: CertainPresetShorcut[key],
51
78
  value: key
52
79
  };
53
80
  });
54
- _this.customDropDownOptionArr = Object.keys(customDropDownOption).map(function (key) {
81
+ _this.modifyDropDownOptions = modifyOptions.map(function (key) {
55
82
  return {
56
- label: customDropDownOption[key],
83
+ label: ModifyPresetShorcut[key],
57
84
  value: key
58
85
  };
59
86
  });
60
- var defaultShortcuts = ['yesterday', '7daysago', 'prevweek', 'thismonth', 'prevmonth', 'prevquarter'];
87
+ // 初始化原始组件配置的快捷键
88
+ /** amis 3.1.0之后ranges属性废弃,此处兼容 */
89
+ var initData = (_b = (_a = data === null || data === void 0 ? void 0 : data.ranges) !== null && _a !== void 0 ? _a : data === null || data === void 0 ? void 0 : data.shortcuts) !== null && _b !== void 0 ? _b : DefaultValue;
90
+ initData = Array.isArray(initData) ? initData : initData.split(',');
61
91
  _this.state = {
62
- /** amis 3.1.0之后ranges属性废弃,此处兼容 */
63
- options: ((_b = (_a = data === null || data === void 0 ? void 0 : data.ranges) !== null && _a !== void 0 ? _a : data === null || data === void 0 ? void 0 : data.shortcuts) !== null && _b !== void 0 ? _b : defaultShortcuts).map(function (item, index) {
64
- var _a;
65
- var arr = item.match(/^(\d+)[a-zA-Z]+/);
92
+ options: initData.map(function (item) {
93
+ if (!item) {
94
+ return null;
95
+ }
96
+ // 完全自定义的快捷键
97
+ if (typeof item != 'string' && item.label && item.startDate && item.endDate) {
98
+ return {
99
+ type: OptionType.Custom,
100
+ data: item
101
+ };
102
+ }
103
+ // amis中提供的可灵活配置数字的自定义快捷键
104
+ var arr = item.match(/^([a-zA-Z]*)(\d+)([a-zA-Z]*)$/);
66
105
  if (arr) {
67
106
  return {
68
- value: arr[1],
69
- type: RangeType.Custom,
70
- inputType: (_a = item.match(/[a-zA-Z]+/)) === null || _a === void 0 ? void 0 : _a[0]
107
+ data: {
108
+ value: arr[2],
109
+ key: "".concat(arr[1], "$").concat(arr[3])
110
+ },
111
+ type: OptionType.Modify
71
112
  };
72
113
  }
114
+ // 固定值的快捷键
73
115
  return {
74
- label: normalDropDownOption[item],
75
- value: item,
76
- type: RangeType.Normal
116
+ data: item,
117
+ type: OptionType.Certain
77
118
  };
78
- })
119
+ }).filter(Boolean)
79
120
  };
80
121
  return _this;
81
122
  }
@@ -139,6 +180,77 @@ var DateShortCutControl = /** @class */function (_super) {
139
180
  DateShortCutControl.prototype.destroyDragging = function () {
140
181
  this.sortable && this.sortable.destroy();
141
182
  };
183
+ /**
184
+ * 生成快捷键项的配置
185
+ */
186
+ DateShortCutControl.prototype.renderOption = function (option, index) {
187
+ var _this = this;
188
+ var _a = this.props,
189
+ render = _a.render,
190
+ schema = _a.data;
191
+ if (option.type === OptionType.Certain) {
192
+ return React__default.createElement("span", {
193
+ className: klass + 'Item-content-label'
194
+ }, CertainPresetShorcut[option.data]);
195
+ }
196
+ if (option.type === OptionType.Custom) {
197
+ var data = option === null || option === void 0 ? void 0 : option.data;
198
+ return render('inner', {
199
+ type: 'form',
200
+ wrapWithPanel: false,
201
+ body: [{
202
+ type: 'input-text',
203
+ mode: 'normal',
204
+ placeholder: i18n("a6a93b404bc039cded728683af5d625d"),
205
+ name: 'label'
206
+ }, getSchemaTpl('valueFormula', {
207
+ name: 'startDate',
208
+ header: i18n("98229308e2e9484583fde4ae363a979f"),
209
+ DateTimeType: FormulaDateType.IsDate,
210
+ rendererSchema: __assign(__assign({}, schema), {
211
+ type: 'input-date'
212
+ }),
213
+ placeholder: i18n("592c59589144ddc68d05d528da17dcdc"),
214
+ needDeleteProps: ['ranges', 'shortcuts', 'maxDate', 'id', 'minDuration'],
215
+ label: false
216
+ }), getSchemaTpl('valueFormula', {
217
+ name: 'endDate',
218
+ header: i18n("98229308e2e9484583fde4ae363a979f"),
219
+ DateTimeType: FormulaDateType.IsDate,
220
+ rendererSchema: __assign(__assign({}, schema), {
221
+ type: 'input-date'
222
+ }),
223
+ placeholder: i18n("f782779e8b5d709462c8e71e0d9019f2"),
224
+ needDeleteProps: ['ranges', 'shortcuts', 'maxDate', 'id', 'minDuration'],
225
+ label: false
226
+ })],
227
+ onChange: function (value) {
228
+ _this.handleOptionChange(value, index);
229
+ }
230
+ }, {
231
+ data: data
232
+ });
233
+ }
234
+ var key = option.data.key;
235
+ var label = ModifyPresetShorcut[key].split('n');
236
+ return render('inner', {
237
+ type: 'form',
238
+ wrapWithPanel: false,
239
+ body: [{
240
+ name: 'value',
241
+ type: 'input-text',
242
+ prefix: label[0] || undefined,
243
+ suffix: label[1] || undefined,
244
+ mode: 'normal',
245
+ placeholder: 'n'
246
+ }],
247
+ onChange: function (value) {
248
+ return _this.handleOptionChange(value, index);
249
+ }
250
+ }, {
251
+ data: option.data
252
+ });
253
+ };
142
254
  /**
143
255
  * 生成内容体
144
256
  */
@@ -154,112 +266,21 @@ var DateShortCutControl = /** @class */function (_super) {
154
266
  return React__default.createElement("li", {
155
267
  className: klass + 'Item',
156
268
  key: index
157
- }, option.type === RangeType.Normal ? _this.renderNormalOption(option, index) : _this.renderCustomOption(option, index));
269
+ }, React__default.createElement(ShortCutItemWrap, {
270
+ index: index,
271
+ handleDelete: _this.handleDelete
272
+ }, _this.renderOption(option, index)));
158
273
  })) : React__default.createElement("div", {
159
274
  className: klass + '-content ' + klass + '-empty'
160
275
  }, "\u672A\u914D\u7F6E"));
161
276
  };
162
- /**
163
- * 生成固定跨度选项
164
- */
165
- DateShortCutControl.prototype.renderNormalOption = function (option, index) {
166
- return React__default.createElement(ShortCutItemWrap, {
167
- index: index,
168
- handleDelete: this.handleDelete
169
- }, React__default.createElement("span", null, option.label));
170
- };
171
- /**
172
- * 生成自定义跨度选项
173
- */
174
- DateShortCutControl.prototype.renderCustomOption = function (option, index) {
175
- var _this = this;
176
- var render = this.props.render;
177
- var renderInput = function (option) {
178
- if (option.type === 'middle') {
179
- return render('inner', {
180
- type: 'input-text',
181
- prefix: option === null || option === void 0 ? void 0 : option.prefix,
182
- suffix: option.suffix,
183
- mode: 'normal',
184
- placeholder: 'n',
185
- value: option === null || option === void 0 ? void 0 : option.value,
186
- onChange: function (value) {
187
- return _this.handleCustomItemChange(value, index);
188
- }
189
- });
190
- }
191
- return render('inner', {
192
- type: 'input-text',
193
- placeholder: 'n',
194
- mode: 'normal',
195
- suffix: option.suffix,
196
- value: option === null || option === void 0 ? void 0 : option.value,
197
- onChange: function (value) {
198
- return _this.handleCustomItemChange(value, index);
199
- }
200
- });
201
- };
202
- var dateMap = {
203
- daysago: {
204
- prefix: i18n("046c6233e03af774df7b90b4504fa96c"),
205
- suffix: i18n("249aba763258bbe488af3e79a381d265"),
206
- type: 'middle'
207
- },
208
- dayslater: {
209
- suffix: i18n("2f8ab07bea442bc6ce8a9e99ff88e5c1"),
210
- type: 'suffix'
211
- },
212
- weeksago: {
213
- prefix: i18n("046c6233e03af774df7b90b4504fa96c"),
214
- suffix: i18n("a657f46f5bb00961adfae80d12e41b3d"),
215
- type: 'middle'
216
- },
217
- weekslater: {
218
- suffix: i18n("b1599eaa05dc9b3d90be5aebc5c84338"),
219
- type: 'suffix'
220
- },
221
- monthsago: {
222
- prefix: i18n("046c6233e03af774df7b90b4504fa96c"),
223
- suffix: i18n("e42b99d59954ce6437e66f416850425a"),
224
- type: 'middle'
225
- },
226
- monthslater: {
227
- suffix: i18n("3c690347976de82df1909750cbc82b80"),
228
- type: 'suffix'
229
- },
230
- quartersago: {
231
- prefix: i18n("046c6233e03af774df7b90b4504fa96c"),
232
- suffix: i18n("a483bccf85587055ab31314ad1d2f82a"),
233
- type: 'middle'
234
- },
235
- quarterslater: {
236
- suffix: i18n("b62ba98a627851e911bef8fbb005bd4a"),
237
- type: 'suffix'
238
- },
239
- yearsago: {
240
- prefix: i18n("046c6233e03af774df7b90b4504fa96c"),
241
- suffix: i18n("465260fe80b0c3338d06194bb7a94446"),
242
- type: 'middle'
243
- },
244
- yearslater: {
245
- suffix: i18n("137bcb84f52bbd48623c37d8dfdebdff"),
246
- type: 'suffix'
247
- }
248
- };
249
- return React__default.createElement(ShortCutItemWrap, {
250
- index: index,
251
- handleDelete: this.handleDelete
252
- }, option.inputType ? renderInput(__assign(__assign({}, dateMap[option.inputType]), {
253
- value: option.value
254
- })) : null);
255
- };
256
277
  /**
257
278
  * 自定义跨度变化
258
279
  */
259
- DateShortCutControl.prototype.handleCustomItemChange = function (value, index) {
280
+ DateShortCutControl.prototype.handleOptionChange = function (data, index) {
260
281
  var _this = this;
261
282
  var options = __spreadArray([], __read(this.state.options), false);
262
- options[index].value = value;
283
+ options[index].data = data;
263
284
  this.setState({
264
285
  options: options
265
286
  }, function () {
@@ -271,15 +292,18 @@ var DateShortCutControl = /** @class */function (_super) {
271
292
  */
272
293
  DateShortCutControl.prototype.addItem = function (item, type) {
273
294
  var _this = this;
274
- var _a;
275
295
  this.setState({
276
- options: __spreadArray(__spreadArray([], __read(this.state.options), false), [__assign({
277
- label: (_a = item === null || item === void 0 ? void 0 : item.label) !== null && _a !== void 0 ? _a : '',
296
+ options: this.state.options.concat({
278
297
  type: type,
279
- value: type === RangeType.Normal ? item.value : ''
280
- }, type === RangeType.Normal ? {} : {
281
- inputType: item.value
282
- })], false)
298
+ data: type === OptionType.Certain ? item.value : type === OptionType.Modify ? {
299
+ key: item.value,
300
+ value: undefined
301
+ } : {
302
+ label: undefined,
303
+ startDate: undefined,
304
+ endDate: undefined
305
+ }
306
+ })
283
307
  }, function () {
284
308
  _this.onChangeOptions();
285
309
  _this.scrollToBottom();
@@ -307,17 +331,23 @@ var DateShortCutControl = /** @class */function (_super) {
307
331
  var _b = this.props,
308
332
  onBulkChange = _b.onBulkChange,
309
333
  name = _b.name;
310
- var newOptions = [];
311
- options.forEach(function (item, index) {
312
- if (item.type === RangeType.Normal) {
313
- newOptions[index] = item.value;
334
+ var newRanges = [];
335
+ options.forEach(function (item) {
336
+ if (item.type === OptionType.Certain) {
337
+ newRanges.push(item.data);
314
338
  }
315
- if (item.type === RangeType.Custom && item.value) {
316
- newOptions[index] = "".concat(item.value).concat(item.inputType);
339
+ if (item.type === OptionType.Modify) {
340
+ var data = item.data;
341
+ var value = data.value;
342
+ /^\d+$/.test(value) && newRanges.push(data.key.replace('$', value));
343
+ }
344
+ if (item.type === OptionType.Custom) {
345
+ var data = item.data;
346
+ data.label && data.startDate && data.endDate && newRanges.push(__assign({}, data));
317
347
  }
318
348
  });
319
349
  /** amis 3.1.0之后ranges属性废弃 */
320
- onBulkChange && onBulkChange((_a = {}, _a[name !== null && name !== void 0 ? name : 'shortcuts'] = newOptions, _a.ranges = undefined, _a));
350
+ onBulkChange && onBulkChange((_a = {}, _a[name !== null && name !== void 0 ? name : 'shortcuts'] = newRanges, _a.ranges = undefined, _a));
321
351
  };
322
352
  DateShortCutControl.prototype.render = function () {
323
353
  var _this = this;
@@ -339,11 +369,11 @@ var DateShortCutControl = /** @class */function (_super) {
339
369
  closeOnClick: true,
340
370
  closeOnOutside: true,
341
371
  level: 'enhance',
342
- buttons: this.normalDropDownOptionArr.map(function (item) {
372
+ buttons: this.certainDropDownOptions.map(function (item) {
343
373
  return __assign(__assign({}, item), {
344
374
  type: 'button',
345
375
  onAction: function (e, action) {
346
- return _this.addItem(item, RangeType.Normal);
376
+ return _this.addItem(item, OptionType.Certain);
347
377
  }
348
378
  });
349
379
  })
@@ -356,14 +386,26 @@ var DateShortCutControl = /** @class */function (_super) {
356
386
  label: i18n("7a1e5f93e362d371519bcb2bfdb0fc9a"),
357
387
  closeOnClick: true,
358
388
  closeOnOutside: true,
359
- buttons: this.customDropDownOptionArr.map(function (item) {
389
+ buttons: this.modifyDropDownOptions.map(function (item) {
360
390
  return __assign(__assign({}, item), {
361
391
  type: 'button',
362
392
  onAction: function (e, action) {
363
- return _this.addItem(item, RangeType.Custom);
393
+ return _this.addItem(item, OptionType.Modify);
364
394
  }
365
395
  });
366
- })
396
+ }).concat([{
397
+ type: 'button',
398
+ label: i18n("0d98c74797e49d00bcc4c17c9d557a2b"),
399
+ onAction: function (e, action) {
400
+ return _this.addItem({
401
+ value: {
402
+ label: undefined,
403
+ startDate: undefined,
404
+ endData: undefined
405
+ }
406
+ }, OptionType.Custom);
407
+ }
408
+ }])
367
409
  }, {
368
410
  popOverContainer: null
369
411
  }))));
@@ -40,7 +40,7 @@ export default class ExpressionFormulaControl extends React.Component<Expression
40
40
  initFormulaPickerValue(value: string): void;
41
41
  handleConfirm(value?: string): void;
42
42
  handleClearExpression(e: React.MouseEvent<HTMLElement>): void;
43
- render(): JSX.Element;
43
+ render(): React.JSX.Element;
44
44
  }
45
45
  export declare class ExpressionFormulaControlRenderer extends ExpressionFormulaControl {
46
46
  }
@@ -55,9 +55,9 @@ export default class FeatureControl extends React.Component<FeatureControlProps,
55
55
  * 拖动的销毁
56
56
  */
57
57
  destroyDragging(): void;
58
- renderItem(item: FeatureOption, index: number): JSX.Element;
58
+ renderItem(item: FeatureOption, index: number): React.JSX.Element;
59
59
  renderAction(): any;
60
- render(): JSX.Element;
60
+ render(): React.JSX.Element;
61
61
  }
62
62
  export declare class FeatureControlRenderer extends FeatureControl {
63
63
  }
@@ -13,7 +13,7 @@ interface FlexSettingControlProps extends FormControlProps {
13
13
  export default class FlexSettingControl extends React.Component<FlexSettingControlProps> {
14
14
  constructor(props: any);
15
15
  setField(field: string): (val: string) => void;
16
- render(): JSX.Element;
16
+ render(): React.JSX.Element;
17
17
  }
18
18
  export declare class FlexSettingControlRenderer extends FlexSettingControl {
19
19
  }
@@ -12,7 +12,7 @@ export declare enum FormulaDateType {
12
12
  IsDate = 1,
13
13
  IsRange = 2
14
14
  }
15
- export declare function renderFormulaValue(item: any): JSX.Element;
15
+ export declare function renderFormulaValue(item: any): React.JSX.Element;
16
16
  export interface FormulaControlProps extends FormControlProps {
17
17
  manager?: EditorManager;
18
18
  /**
@@ -94,6 +94,7 @@ interface FormulaControlState {
94
94
  variables: any;
95
95
  variableMode?: 'tree' | 'tabs';
96
96
  formulaPickerOpen: boolean;
97
+ loading: boolean;
97
98
  }
98
99
  export default class FormulaControl extends React.Component<FormulaControlProps, FormulaControlState> {
99
100
  static defaultProps: Partial<FormulaControlProps>;
@@ -118,13 +119,17 @@ export default class FormulaControl extends React.Component<FormulaControlProps,
118
119
  hasDateShortcutkey(str: string): boolean;
119
120
  transExpr(str: string): string;
120
121
  handleConfirm(value: any): void;
121
- handleFormulaClick(): void;
122
+ /**
123
+ * 公式编辑器打开完成一些异步任务的加载
124
+ */
125
+ beforeFormulaEditorOpen(): Promise<void>;
126
+ handleFormulaClick(): Promise<void>;
122
127
  closeFormulaPicker(): void;
123
128
  handleSimpleInputChange: (value: any) => void;
124
129
  handleInputChange: (value: any) => void;
125
130
  filterCustomRendererProps(rendererSchema: any): any;
126
131
  getContextData(): any;
127
- render(): JSX.Element;
132
+ render(): React.JSX.Element;
128
133
  }
129
134
  export declare class FormulaControlRenderer extends FormulaControl {
130
135
  }