amis 1.9.1-beta.12 → 1.9.1-beta.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. package/README.md +1 -1
  2. package/lib/components/formula/Picker.js +1 -2
  3. package/lib/components/formula/Picker.js.map +2 -2
  4. package/lib/components/table/HeadCellFilter.js +4 -1
  5. package/lib/components/table/HeadCellFilter.js.map +2 -2
  6. package/lib/components/table/HeadCellSort.js +30 -24
  7. package/lib/components/table/HeadCellSort.js.map +2 -2
  8. package/lib/components/table/index.d.ts +6 -3
  9. package/lib/components/table/index.js +72 -86
  10. package/lib/components/table/index.js.map +2 -2
  11. package/lib/index.js +1 -1
  12. package/lib/renderers/Action.d.ts +21 -4
  13. package/lib/renderers/Action.js +42 -19
  14. package/lib/renderers/Action.js.map +2 -2
  15. package/lib/renderers/Breadcrumb.js +2 -2
  16. package/lib/renderers/Breadcrumb.js.map +2 -2
  17. package/lib/renderers/Form/Picker.d.ts +1 -1
  18. package/lib/renderers/Form/Picker.js +38 -23
  19. package/lib/renderers/Form/Picker.js.map +2 -2
  20. package/lib/renderers/Form/wrapControl.js +10 -10
  21. package/lib/renderers/Form/wrapControl.js.map +2 -2
  22. package/lib/renderers/Service.js +0 -1
  23. package/lib/renderers/Service.js.map +2 -2
  24. package/lib/renderers/Steps.d.ts +2 -2
  25. package/lib/renderers/Steps.js +1 -1
  26. package/lib/renderers/Steps.js.map +2 -2
  27. package/lib/renderers/Table-v2/HeadCellSearchDropdown.d.ts +1 -1
  28. package/lib/renderers/Table-v2/HeadCellSearchDropdown.js +38 -24
  29. package/lib/renderers/Table-v2/HeadCellSearchDropdown.js.map +2 -2
  30. package/lib/renderers/Table-v2/index.d.ts +10 -4
  31. package/lib/renderers/Table-v2/index.js +109 -58
  32. package/lib/renderers/Table-v2/index.js.map +2 -2
  33. package/lib/store/table-v2.d.ts +210 -4
  34. package/lib/store/table-v2.js +82 -5
  35. package/lib/store/table-v2.js.map +2 -2
  36. package/lib/themes/ang-ie11.css +14 -11
  37. package/lib/themes/ang.css +14 -6
  38. package/lib/themes/ang.css.map +1 -1
  39. package/lib/themes/antd-ie11.css +14 -11
  40. package/lib/themes/antd.css +14 -6
  41. package/lib/themes/antd.css.map +1 -1
  42. package/lib/themes/cxd-ie11.css +165 -162
  43. package/lib/themes/cxd.css +15 -7
  44. package/lib/themes/cxd.css.map +1 -1
  45. package/lib/themes/dark-ie11.css +14 -11
  46. package/lib/themes/dark.css +14 -6
  47. package/lib/themes/dark.css.map +1 -1
  48. package/lib/themes/default-ie11.css +165 -162
  49. package/lib/themes/default.css +15 -7
  50. package/lib/themes/default.css.map +1 -1
  51. package/lib/types.d.ts +1 -1
  52. package/lib/types.js.map +1 -1
  53. package/package.json +1 -1
  54. package/scss/components/_modal.scss +1 -1
  55. package/scss/components/form/_icon-picker.scss +10 -6
  56. package/scss/components/form/_switch.scss +1 -0
  57. package/scss/components/form/_text.scss +2 -0
  58. package/scss/themes/_cxd-variables.scss +1 -1
  59. package/sdk/ang-ie11.css +14 -11
  60. package/sdk/ang.css +14 -6
  61. package/sdk/antd-ie11.css +14 -11
  62. package/sdk/antd.css +14 -6
  63. package/sdk/barcode.js +51 -51
  64. package/sdk/charts.js +14 -14
  65. package/sdk/codemirror.js +7 -7
  66. package/sdk/color-picker.js +65 -65
  67. package/sdk/cropperjs.js +2 -2
  68. package/sdk/cxd-ie11.css +165 -162
  69. package/sdk/cxd.css +15 -7
  70. package/sdk/dark-ie11.css +14 -11
  71. package/sdk/dark.css +14 -6
  72. package/sdk/exceljs.js +1 -1
  73. package/sdk/markdown.js +69 -69
  74. package/sdk/papaparse.js +1 -1
  75. package/sdk/renderers/Form/CityDB.js +1 -1
  76. package/sdk/rest.js +16 -16
  77. package/sdk/rich-text.js +62 -62
  78. package/sdk/sdk-ie11.css +165 -162
  79. package/sdk/sdk.css +15 -7
  80. package/sdk/sdk.js +1336 -1336
  81. package/sdk/thirds/hls.js/hls.js +1 -1
  82. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  83. package/sdk/tinymce.js +57 -57
  84. package/src/components/formula/Picker.tsx +1 -3
  85. package/src/components/table/HeadCellFilter.tsx +4 -1
  86. package/src/components/table/HeadCellSort.tsx +1 -1
  87. package/src/components/table/index.tsx +66 -90
  88. package/src/renderers/Action.tsx +62 -18
  89. package/src/renderers/Breadcrumb.tsx +11 -12
  90. package/src/renderers/Form/Picker.tsx +11 -1
  91. package/src/renderers/Form/wrapControl.tsx +10 -10
  92. package/src/renderers/Service.tsx +0 -1
  93. package/src/renderers/Steps.tsx +5 -5
  94. package/src/renderers/Table-v2/HeadCellSearchDropdown.tsx +14 -9
  95. package/src/renderers/Table-v2/index.tsx +130 -58
  96. package/src/store/table-v2.ts +104 -7
  97. package/src/types.ts +2 -1
@@ -1,6 +1,8 @@
1
1
  /// <reference types="hoist-non-react-statics" />
2
2
  import React from 'react';
3
3
  import { RendererProps } from '../factory';
4
+ import type { IScopedContext } from '../Scoped';
5
+ import type { Action as ICmptAction } from '../types';
4
6
  export interface ButtonSchema extends BaseSchema {
5
7
  /**
6
8
  * 主要用于用户行为跟踪里区分是哪个按钮
@@ -341,6 +343,9 @@ declare const _default: {
341
343
  componentWillUpdate?(nextProps: Readonly<Omit<ActionProps, keyof ThemeProps> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
342
344
  UNSAFE_componentWillUpdate?(nextProps: Readonly<Omit<ActionProps, keyof ThemeProps> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
343
345
  };
346
+ /**
347
+ * 打开的目标地址
348
+ */
344
349
  displayName: string;
345
350
  contextType: React.Context<string>;
346
351
  ComposedComponent: React.ComponentType<typeof Action>;
@@ -348,11 +353,23 @@ declare const _default: {
348
353
  ComposedComponent: typeof Action;
349
354
  };
350
355
  export default _default;
351
- export declare class ActionRenderer extends React.Component<RendererProps & Omit<ActionProps, 'onAction' | 'isCurrentUrl' | 'tooltipContainer'> & {
352
- onAction: (e: React.MouseEvent<any> | void | null, action: object, data: any) => void;
356
+ export declare type ActionRendererProps = RendererProps & Omit<ActionProps, 'onAction' | 'isCurrentUrl' | 'tooltipContainer'> & {
357
+ onAction: (e: React.MouseEvent<any> | string | void | null, action: object, data: any) => void;
353
358
  btnDisabled?: boolean;
354
- }> {
355
- handleAction(e: React.MouseEvent<any> | void | null, action: any): Promise<void>;
359
+ };
360
+ export declare class ActionRenderer extends React.Component<ActionRendererProps> {
361
+ static contextType: React.Context<IScopedContext>;
362
+ constructor(props: ActionRendererProps, scoped: IScopedContext);
363
+ componentWillUnmount(): void;
364
+ /**
365
+ * 动作处理
366
+ */
367
+ doAction(action: ICmptAction, args: {
368
+ value?: string | {
369
+ [key: string]: string;
370
+ };
371
+ }): void;
372
+ handleAction(e: React.MouseEvent<any> | string | void | null, action: any): Promise<void>;
356
373
  handleMouseEnter(e: React.MouseEvent<any>): void;
357
374
  handleMouseLeave(e: React.MouseEvent<any>): void;
358
375
  isCurrentAction(link: string): boolean | {
@@ -4,11 +4,13 @@ exports.ResetRenderer = exports.SubmitRenderer = exports.ButtonRenderer = export
4
4
  var tslib_1 = require("tslib");
5
5
  var react_1 = (0, tslib_1.__importDefault)(require("react"));
6
6
  var hotkeys_js_1 = (0, tslib_1.__importDefault)(require("hotkeys-js"));
7
+ var omit_1 = (0, tslib_1.__importDefault)(require("lodash/omit"));
8
+ var pick_1 = (0, tslib_1.__importDefault)(require("lodash/pick"));
7
9
  var factory_1 = require("../factory");
8
10
  var tpl_1 = require("../utils/tpl");
9
11
  var Button_1 = (0, tslib_1.__importDefault)(require("../components/Button"));
10
- var pick_1 = (0, tslib_1.__importDefault)(require("lodash/pick"));
11
- var omit_1 = (0, tslib_1.__importDefault)(require("lodash/omit"));
12
+ var Scoped_1 = require("../Scoped");
13
+ var helper_1 = require("../utils/helper");
12
14
  var ActionProps = [
13
15
  'id',
14
16
  'dialog',
@@ -55,7 +57,7 @@ var ActionProps = [
55
57
  ];
56
58
  var Remark_1 = require("./Remark");
57
59
  var theme_1 = require("../theme");
58
- var helper_1 = require("../utils/helper");
60
+ var helper_2 = require("../utils/helper");
59
61
  var icon_1 = require("../utils/icon");
60
62
  var Badge_1 = require("../components/Badge");
61
63
  var api_1 = require("../utils/api");
@@ -263,25 +265,25 @@ var Action = /** @class */ (function (_super) {
263
265
  countDown: 0
264
266
  };
265
267
  (0, tslib_1.__decorate)([
266
- helper_1.autobind,
268
+ helper_2.autobind,
267
269
  (0, tslib_1.__metadata)("design:type", Function),
268
270
  (0, tslib_1.__metadata)("design:paramtypes", [typeof (_a = typeof react_1.default !== "undefined" && react_1.default.MouseEvent) === "function" ? _a : Object]),
269
271
  (0, tslib_1.__metadata)("design:returntype", Promise)
270
272
  ], Action.prototype, "handleAction", null);
271
273
  (0, tslib_1.__decorate)([
272
- helper_1.autobind,
274
+ helper_2.autobind,
273
275
  (0, tslib_1.__metadata)("design:type", Function),
274
276
  (0, tslib_1.__metadata)("design:paramtypes", []),
275
277
  (0, tslib_1.__metadata)("design:returntype", void 0)
276
278
  ], Action.prototype, "handleCountDown", null);
277
279
  (0, tslib_1.__decorate)([
278
- helper_1.autobind,
280
+ helper_2.autobind,
279
281
  (0, tslib_1.__metadata)("design:type", Function),
280
282
  (0, tslib_1.__metadata)("design:paramtypes", []),
281
283
  (0, tslib_1.__metadata)("design:returntype", void 0)
282
284
  ], Action.prototype, "componentDidMount", null);
283
285
  (0, tslib_1.__decorate)([
284
- helper_1.autobind,
286
+ helper_2.autobind,
285
287
  (0, tslib_1.__metadata)("design:type", Function),
286
288
  (0, tslib_1.__metadata)("design:paramtypes", []),
287
289
  (0, tslib_1.__metadata)("design:returntype", void 0)
@@ -292,17 +294,36 @@ exports.Action = Action;
292
294
  exports.default = (0, theme_1.themeable)(Action);
293
295
  var ActionRenderer = /** @class */ (function (_super) {
294
296
  (0, tslib_1.__extends)(ActionRenderer, _super);
295
- function ActionRenderer() {
296
- return _super !== null && _super.apply(this, arguments) || this;
297
+ function ActionRenderer(props, scoped) {
298
+ var _this = _super.call(this, props) || this;
299
+ scoped.registerComponent(_this);
300
+ return _this;
297
301
  }
302
+ ActionRenderer.prototype.componentWillUnmount = function () {
303
+ var scoped = this.context;
304
+ scoped.unRegisterComponent(this);
305
+ };
306
+ /**
307
+ * 动作处理
308
+ */
309
+ ActionRenderer.prototype.doAction = function (action, args) {
310
+ var actionType = action === null || action === void 0 ? void 0 : action.actionType;
311
+ if (actionType === 'click') {
312
+ this.handleAction(actionType, action);
313
+ }
314
+ };
298
315
  ActionRenderer.prototype.handleAction = function (e, action) {
299
316
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
300
- var _a, env, onAction, data, ignoreConfirm, dispatchEvent, rendererEvent, confirmed;
317
+ var _a, env, onAction, data, ignoreConfirm, dispatchEvent, mergedData, rendererEvent, confirmed;
301
318
  return (0, tslib_1.__generator)(this, function (_b) {
302
319
  switch (_b.label) {
303
320
  case 0:
304
321
  _a = this.props, env = _a.env, onAction = _a.onAction, data = _a.data, ignoreConfirm = _a.ignoreConfirm, dispatchEvent = _a.dispatchEvent;
305
- return [4 /*yield*/, dispatchEvent(e, data)];
322
+ mergedData = data;
323
+ if ((action === null || action === void 0 ? void 0 : action.actionType) === 'click' && (0, helper_1.isObject)(action === null || action === void 0 ? void 0 : action.args)) {
324
+ mergedData = (0, helper_2.createObject)(data, action.args);
325
+ }
326
+ return [4 /*yield*/, dispatchEvent(e, mergedData)];
306
327
  case 1:
307
328
  rendererEvent = _b.sent();
308
329
  // 阻止原有动作执行
@@ -310,11 +331,11 @@ var ActionRenderer = /** @class */ (function (_super) {
310
331
  return [2 /*return*/];
311
332
  }
312
333
  if (!(!ignoreConfirm && action.confirmText && env.confirm)) return [3 /*break*/, 6];
313
- return [4 /*yield*/, env.confirm((0, tpl_1.filter)(action.confirmText, data))];
334
+ return [4 /*yield*/, env.confirm((0, tpl_1.filter)(action.confirmText, mergedData))];
314
335
  case 2:
315
336
  confirmed = _b.sent();
316
337
  if (!confirmed) return [3 /*break*/, 4];
317
- return [4 /*yield*/, onAction(e, action, data)];
338
+ return [4 /*yield*/, onAction(e, action, mergedData)];
318
339
  case 3:
319
340
  _b.sent();
320
341
  return [3 /*break*/, 5];
@@ -324,7 +345,7 @@ var ActionRenderer = /** @class */ (function (_super) {
324
345
  }
325
346
  _b.label = 5;
326
347
  case 5: return [3 /*break*/, 8];
327
- case 6: return [4 /*yield*/, onAction(e, action, data)];
348
+ case 6: return [4 /*yield*/, onAction(e, action, mergedData)];
328
349
  case 7:
329
350
  _b.sent();
330
351
  _b.label = 8;
@@ -348,26 +369,27 @@ var ActionRenderer = /** @class */ (function (_super) {
348
369
  return (react_1.default.createElement(Action, (0, tslib_1.__assign)({}, rest, { env: env, disabled: disabled || btnDisabled, onAction: this.handleAction, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, loading: loading, isCurrentUrl: this.isCurrentAction, tooltipContainer: env.getModalContainer ? env.getModalContainer : undefined })));
349
370
  };
350
371
  var _b, _c, _d;
372
+ ActionRenderer.contextType = Scoped_1.ScopedContext;
351
373
  (0, tslib_1.__decorate)([
352
- helper_1.autobind,
374
+ helper_2.autobind,
353
375
  (0, tslib_1.__metadata)("design:type", Function),
354
376
  (0, tslib_1.__metadata)("design:paramtypes", [Object, Object]),
355
377
  (0, tslib_1.__metadata)("design:returntype", Promise)
356
378
  ], ActionRenderer.prototype, "handleAction", null);
357
379
  (0, tslib_1.__decorate)([
358
- helper_1.autobind,
380
+ helper_2.autobind,
359
381
  (0, tslib_1.__metadata)("design:type", Function),
360
382
  (0, tslib_1.__metadata)("design:paramtypes", [typeof (_c = typeof react_1.default !== "undefined" && react_1.default.MouseEvent) === "function" ? _c : Object]),
361
383
  (0, tslib_1.__metadata)("design:returntype", void 0)
362
384
  ], ActionRenderer.prototype, "handleMouseEnter", null);
363
385
  (0, tslib_1.__decorate)([
364
- helper_1.autobind,
386
+ helper_2.autobind,
365
387
  (0, tslib_1.__metadata)("design:type", Function),
366
388
  (0, tslib_1.__metadata)("design:paramtypes", [typeof (_d = typeof react_1.default !== "undefined" && react_1.default.MouseEvent) === "function" ? _d : Object]),
367
389
  (0, tslib_1.__metadata)("design:returntype", void 0)
368
390
  ], ActionRenderer.prototype, "handleMouseLeave", null);
369
391
  (0, tslib_1.__decorate)([
370
- helper_1.autobind,
392
+ helper_2.autobind,
371
393
  (0, tslib_1.__metadata)("design:type", Function),
372
394
  (0, tslib_1.__metadata)("design:paramtypes", [String]),
373
395
  (0, tslib_1.__metadata)("design:returntype", void 0)
@@ -378,7 +400,8 @@ var ActionRenderer = /** @class */ (function (_super) {
378
400
  })
379
401
  // @ts-ignore 类型没搞定
380
402
  ,
381
- Badge_1.withBadge
403
+ Badge_1.withBadge,
404
+ (0, tslib_1.__metadata)("design:paramtypes", [Object, Object])
382
405
  ], ActionRenderer);
383
406
  return ActionRenderer;
384
407
  }(react_1.default.Component));
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/Action.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import React from 'react';\nimport hotkeys from 'hotkeys-js';\nimport {Renderer, RendererProps} from '../factory';\nimport {filter} from '../utils/tpl';\nimport Button from '../components/Button';\nimport pick from 'lodash/pick';\nimport omit from 'lodash/omit';\n\nexport interface ButtonSchema extends BaseSchema {\n /**\n * 主要用于用户行为跟踪里区分是哪个按钮\n */\n id?: string;\n\n /**\n * 是否为块状展示,默认为内联。\n */\n block?: boolean;\n\n /**\n * 禁用时的文案提示。\n */\n disabledTip?: string;\n\n /**\n * 按钮图标, iconfont 的类名\n */\n icon?: SchemaIcon;\n\n /**\n * icon 上的css 类名\n */\n iconClassName?: SchemaClassName;\n\n /**\n * 右侧按钮图标, iconfont 的类名\n */\n rightIcon?: SchemaIcon;\n\n /**\n * 右侧 icon 上的 css 类名\n */\n rightIconClassName?: SchemaClassName;\n /**\n * loading 上的css 类名\n */\n loadingClassName?: SchemaClassName;\n\n /**\n * 按钮文字\n */\n label?: string;\n\n /**\n * 按钮样式\n */\n level?:\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'link'\n | 'primary'\n | 'dark'\n | 'light'\n | 'secondary';\n\n /**\n * @deprecated 通过 level 来配置\n */\n primary?: boolean;\n\n /**\n * 按钮大小\n */\n size?: 'xs' | 'sm' | 'md' | 'lg';\n\n tooltip?: SchemaTooltip;\n tooltipPlacement?: 'top' | 'right' | 'bottom' | 'left';\n\n /**\n * 指定按钮类型,支持 button、submit或者reset三种类型。\n */\n type: 'button' | 'submit' | 'reset';\n\n /**\n * 提示文字,配置了操作前会要求用户确认。\n */\n confirmText?: string;\n\n /**\n * 如果按钮在form中,配置此属性会要求用户把指定的字段通过验证后才会触发行为。\n */\n required?: Array<string>;\n\n /**\n * 激活状态时的样式\n */\n activeLevel?: string;\n\n /**\n * 激活状态时的类名\n */\n activeClassName?: string;\n\n /**\n * 如果按钮在弹框中,可以配置这个动作完成后是否关闭弹窗,或者指定关闭目标弹框。\n */\n close?: boolean | string;\n\n /**\n * 当按钮时批量操作按钮时,默认必须有勾选元素才能可点击,如果此属性配置成 false,则没有点选成员也能点击。\n */\n requireSelected?: boolean;\n\n /**\n * 是否将弹框中数据 merge 到父级作用域。\n */\n mergeData?: boolean;\n\n /**\n * 可以指定让谁来触发这个动作。\n */\n target?: string;\n\n /**\n * 点击后的禁止倒计时(秒)\n */\n countDown?: number;\n\n /**\n * 倒计时文字自定义\n */\n countDownTpl?: string;\n\n /**\n * 角标\n */\n badge?: BadgeSchema;\n\n /**\n * 键盘快捷键\n */\n hotKey?: string;\n /**\n * 是否显示loading效果\n */\n loadingOn?: string;\n\n /**\n * 自定义事件处理函数\n */\n onClick?: string | any;\n\n /**\n * 子内容\n */\n body?: SchemaCollection;\n}\n\nexport interface AjaxActionSchema extends ButtonSchema {\n /**\n * 指定为发送 ajax 的行为。\n */\n actionType: 'ajax';\n\n /**\n * 配置 ajax 发送地址\n */\n api: SchemaApi;\n\n feedback?: FeedbackDialog;\n\n reload?: SchemaReload;\n redirect?: string;\n ignoreConfirm?: boolean;\n}\n\nexport interface DownloadActionSchema\n extends Omit<AjaxActionSchema, 'actionType'> {\n /**\n * 指定为下载行为\n */\n actionType: 'download';\n}\n\nexport interface SaveAsActionSchema\n extends Omit<AjaxActionSchema, 'actionType'> {\n /**\n * 指定为保存到本地\n */\n actionType: 'saveAs';\n}\n\nexport interface UrlActionSchema extends ButtonSchema {\n /**\n * 指定为打开链接\n */\n actionType: 'url';\n\n /**\n * 是否新窗口打开\n */\n blank?: boolean;\n\n /**\n * 打开的目标地址\n */\n url: string;\n}\n\nexport interface DialogActionSchema extends ButtonSchema {\n /**\n * 指定为打开弹窗\n */\n actionType: 'dialog';\n\n /**\n * 弹框详情\n * 文档:https://baidu.gitee.io/amis/docs/components/dialog\n */\n dialog: DialogSchemaBase;\n\n /**\n * 是否有下一个的表达式,正常可以不用配置,如果想要刷掉某些数据可以配置这个。\n */\n nextCondition?: SchemaExpression;\n reload?: SchemaReload;\n redirect?: string;\n}\n\nexport interface DrawerActionSchema extends ButtonSchema {\n /**\n * 指定为打开弹窗,抽出式弹窗\n */\n actionType: 'drawer';\n\n /**\n * 抽出式弹框详情\n * 文档:https://baidu.gitee.io/amis/docs/components/drawer\n */\n drawer: DrawerSchemaBase;\n\n /**\n * 是否有下一个的表达式,正常可以不用配置,如果想要刷掉某些数据可以配置这个。\n */\n nextCondition?: SchemaExpression;\n reload?: SchemaReload;\n redirect?: string;\n}\n\nexport interface ToastActionSchema extends ButtonSchema {\n /**\n * 指定为打开弹窗,抽出式弹窗\n */\n actionType: 'toast';\n\n /**\n * 轻提示详情\n * 文档:https://baidu.gitee.io/amis/docs/components/toast\n */\n toast: ToastSchemaBase;\n}\n\nexport interface CopyActionSchema extends ButtonSchema {\n /**\n * 指定为复制内容行为\n */\n actionType: 'copy';\n\n /**\n * 复制啥内容由此配置,支持模板语法。\n */\n copy: SchemaTpl;\n}\n\nexport interface LinkActionSchema extends ButtonSchema {\n /**\n * 指定为打开链接行为,跟 url 不同的时这个行为为单页模式。\n */\n actionType: 'link';\n\n /**\n * 跳转到哪?支持配置相对路径。\n */\n link: string;\n}\n\nexport interface ReloadActionSchema extends ButtonSchema {\n /**\n * 指定为刷新目标组件。\n */\n actionType: 'reload';\n\n /**\n * 指定目标组件。\n */\n target?: SchemaReload;\n}\n\nexport interface EmailActionSchema extends ButtonSchema {\n /**\n * 指定为打开邮箱行为\n */\n actionType: 'email';\n\n /**\n * 收件人邮箱\n */\n to: string;\n\n /**\n * 抄送邮箱\n */\n cc?: string;\n\n /**\n * 匿名抄送邮箱\n */\n bcc?: string;\n\n /**\n * 邮件主题\n */\n subject?: string;\n\n /**\n * 邮件正文\n */\n body?: string;\n}\n\nexport interface OtherActionSchema extends ButtonSchema {\n actionType:\n | 'prev'\n | 'next'\n | 'cancel'\n | 'close'\n | 'submit'\n | 'confirm'\n | 'add'\n | 'reset'\n | 'reset-and-submit';\n [propName: string]: any;\n}\n\nexport interface VanillaAction extends ButtonSchema {\n actionType?: string;\n}\n\n/**\n * 按钮动作渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/action\n */\nexport type ActionSchema =\n | AjaxActionSchema\n | UrlActionSchema\n | LinkActionSchema\n | DialogActionSchema\n | DrawerActionSchema\n | ToastActionSchema\n | CopyActionSchema\n | ReloadActionSchema\n | EmailActionSchema\n | OtherActionSchema\n | VanillaAction;\n\nconst ActionProps = [\n 'id',\n 'dialog',\n 'drawer',\n 'toast',\n 'url',\n 'link',\n 'confirmText',\n 'tooltip',\n 'disabledTip',\n 'className',\n 'asyncApi',\n 'redirect',\n 'size',\n 'level',\n 'primary',\n 'feedback',\n 'api',\n 'blank',\n 'tooltipPlacement',\n 'to',\n 'cc',\n 'bcc',\n 'subject',\n 'body',\n 'content',\n 'required',\n 'type',\n 'actionType',\n 'label',\n 'icon',\n 'rightIcon',\n 'reload',\n 'target',\n 'close',\n 'messages',\n 'mergeData',\n 'index',\n 'copy',\n 'copyFormat',\n 'payload',\n 'requireSelected',\n 'countDown'\n];\nimport {filterContents} from './Remark';\nimport {ClassNamesFn, themeable, ThemeProps} from '../theme';\nimport {autobind, createObject} from '../utils/helper';\nimport {\n BaseSchema,\n FeedbackDialog,\n SchemaApi,\n SchemaClassName,\n SchemaCollection,\n SchemaExpression,\n SchemaIcon,\n SchemaReload,\n SchemaTooltip,\n SchemaTpl\n} from '../Schema';\nimport {DialogSchema, DialogSchemaBase} from './Dialog';\nimport {DrawerSchema, DrawerSchemaBase} from './Drawer';\nimport {ToastSchemaBase} from '../Schema';\nimport {generateIcon} from '../utils/icon';\nimport {BadgeSchema, withBadge} from '../components/Badge';\nimport {normalizeApi, str2AsyncFunction} from '../utils/api';\nimport {TooltipWrapper} from '../components/TooltipWrapper';\nimport handleAction from '../utils/handleAction';\n\n// 构造一个假的 React 事件避免可能的报错,主要用于快捷键功能\n// 来自 https://stackoverflow.com/questions/27062455/reactjs-can-i-create-my-own-syntheticevent\nexport const createSyntheticEvent = <T extends Element, E extends Event>(\n event: E\n): React.SyntheticEvent<T, E> => {\n let isDefaultPrevented = false;\n let isPropagationStopped = false;\n const preventDefault = () => {\n isDefaultPrevented = true;\n event.preventDefault();\n };\n const stopPropagation = () => {\n isPropagationStopped = true;\n event.stopPropagation();\n };\n return {\n nativeEvent: event,\n currentTarget: event.currentTarget as EventTarget & T,\n target: event.target as EventTarget & T,\n bubbles: event.bubbles,\n cancelable: event.cancelable,\n defaultPrevented: event.defaultPrevented,\n eventPhase: event.eventPhase,\n isTrusted: event.isTrusted,\n preventDefault,\n isDefaultPrevented: () => isDefaultPrevented,\n stopPropagation,\n isPropagationStopped: () => isPropagationStopped,\n persist: () => {},\n timeStamp: event.timeStamp,\n type: event.type\n };\n};\n\nexport interface ActionProps\n extends Omit<\n ButtonSchema,\n 'className' | 'iconClassName' | 'rightIconClassName' | 'loadingClassName'\n >,\n ThemeProps,\n Omit<\n AjaxActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n UrlActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n LinkActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n DialogActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n DrawerActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n ToastSchemaBase,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n CopyActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n ReloadActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n EmailActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n | 'body'\n >,\n Omit<\n OtherActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n > {\n actionType: any;\n onAction?: (\n e: React.MouseEvent<any> | void | null,\n action: ActionSchema\n ) => void;\n isCurrentUrl?: (link: string) => boolean;\n onClick?:\n | ((e: React.MouseEvent<any>, props: any) => void)\n | string\n | Function\n | null;\n componentClass: React.ReactType;\n tooltipContainer?: any;\n data?: any;\n isMenuItem?: boolean;\n active?: boolean;\n}\n\nconst allowedType = ['button', 'submit', 'reset'];\n\ninterface ActionState {\n inCountDown: boolean; // 是否在倒计时\n countDownEnd: number; // 倒计时结束的精确时间\n timeLeft: number; // 倒计时剩余时间\n}\n\nexport class Action extends React.Component<ActionProps, ActionState> {\n static defaultProps = {\n type: 'button' as 'button',\n componentClass: 'button' as React.ReactType,\n tooltipPlacement: 'bottom' as 'bottom',\n activeClassName: 'is-active',\n countDownTpl: 'Action.countDown',\n countDown: 0\n };\n\n state: ActionState = {\n inCountDown: false,\n countDownEnd: 0,\n timeLeft: 0\n };\n\n localStorageKey: string;\n\n dom: any;\n\n constructor(props: ActionProps) {\n super(props);\n this.localStorageKey = 'amis-countdownend-' + (this.props.name || '');\n const countDownEnd = parseInt(\n localStorage.getItem(this.localStorageKey) || '0'\n );\n if (countDownEnd && this.props.countDown) {\n if (Date.now() < countDownEnd) {\n this.state = {\n inCountDown: true,\n countDownEnd,\n timeLeft: Math.floor((countDownEnd - Date.now()) / 1000)\n };\n this.handleCountDown();\n }\n }\n }\n\n @autobind\n async handleAction(e: React.MouseEvent<any>) {\n const {onAction, disabled, countDown, env} = this.props;\n // https://reactjs.org/docs/legacy-event-pooling.html\n e.persist(); // 等 react 17之后去掉 event pooling 了,这个应该就没用了\n let onClick = this.props.onClick;\n\n if (typeof onClick === 'string') {\n onClick = str2AsyncFunction(onClick, 'event', 'props');\n }\n const result: any = onClick && (await onClick(e, this.props));\n\n if (\n disabled ||\n e.isDefaultPrevented() ||\n result === false ||\n !onAction ||\n this.state.inCountDown\n ) {\n return;\n }\n\n e.preventDefault();\n const action = pick(this.props, ActionProps) as ActionSchema;\n const actionType = action.actionType;\n\n // ajax 会在 wrapFetcher 里记录,这里再处理就重复了,因此去掉\n // add 一般是 input-table 之类的,会触发 formItemChange,为了避免重复也去掉\n if (\n actionType !== 'ajax' &&\n actionType !== 'download' &&\n actionType !== 'add'\n ) {\n env?.tracker(\n {\n eventType: actionType || this.props.type || 'click',\n eventData: omit(action, ['type', 'actionType', 'tooltipPlacement'])\n },\n this.props\n );\n }\n\n // download 是一种 ajax 的简写\n if (actionType === 'download') {\n action.actionType = 'ajax';\n const api = normalizeApi((action as AjaxActionSchema).api);\n api.responseType = 'blob';\n (action as AjaxActionSchema).api = api;\n }\n\n await onAction(e, action);\n if (countDown) {\n const countDownEnd = Date.now() + countDown * 1000;\n this.setState({\n countDownEnd: countDownEnd,\n inCountDown: true,\n timeLeft: countDown\n });\n localStorage.setItem(this.localStorageKey, String(countDownEnd));\n setTimeout(() => {\n this.handleCountDown();\n }, 1000);\n }\n }\n\n @autobind\n handleCountDown() {\n // setTimeout 一般会晚于 1s,经过几十次后就不准了,所以使用真实时间进行 diff\n const timeLeft = Math.floor((this.state.countDownEnd - Date.now()) / 1000);\n if (timeLeft <= 0) {\n this.setState({\n inCountDown: false,\n timeLeft: timeLeft\n });\n } else {\n this.setState({\n timeLeft: timeLeft\n });\n setTimeout(() => {\n this.handleCountDown();\n }, 1000);\n }\n }\n\n @autobind\n componentDidMount() {\n const {hotKey} = this.props;\n if (hotKey) {\n hotkeys(hotKey, event => {\n event.preventDefault();\n const click = new MouseEvent('click', {\n bubbles: true,\n cancelable: true\n });\n this.handleAction(createSyntheticEvent(click) as any);\n });\n }\n }\n\n @autobind\n componentWillUnmount() {\n const {hotKey} = this.props;\n if (hotKey) {\n hotkeys.unbind(hotKey);\n }\n }\n\n render() {\n const {\n type,\n icon,\n iconClassName,\n rightIcon,\n rightIconClassName,\n loadingClassName,\n primary,\n size,\n level,\n countDownTpl,\n block,\n className,\n componentClass,\n tooltip,\n disabledTip,\n tooltipPlacement,\n actionType,\n link,\n data,\n translate: __,\n activeClassName,\n isCurrentUrl,\n isMenuItem,\n active,\n activeLevel,\n tooltipTrigger,\n tooltipContainer,\n tooltipRootClose,\n loading,\n body,\n render,\n onMouseEnter,\n onMouseLeave,\n classnames: cx,\n classPrefix: ns\n } = this.props;\n\n if (actionType !== 'email' && body) {\n return (\n <TooltipWrapper\n classPrefix={ns}\n classnames={cx}\n placement={tooltipPlacement}\n tooltip={tooltip}\n container={tooltipContainer}\n trigger={tooltipTrigger}\n rootClose={tooltipRootClose}\n >\n <div\n className={cx('Action', className)}\n onClick={this.handleAction}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n {render('body', body) as JSX.Element}\n </div>\n </TooltipWrapper>\n );\n }\n\n let label = this.props.label;\n let disabled = this.props.disabled;\n let isActive = !!active;\n\n if (actionType === 'link' && !isActive && link && isCurrentUrl) {\n isActive = isCurrentUrl(link);\n }\n\n // 倒计时\n if (this.state.inCountDown) {\n label = filterContents(__(countDownTpl), {\n ...data,\n timeLeft: this.state.timeLeft\n }) as string;\n disabled = true;\n }\n\n const iconElement = generateIcon(cx, icon, 'Button-icon', iconClassName);\n const rightIconElement = generateIcon(\n cx,\n rightIcon,\n 'Button-icon',\n rightIconClassName\n );\n\n return (\n <Button\n className={cx(className, {\n [activeClassName || 'is-active']: isActive\n })}\n size={size}\n level={\n activeLevel && isActive\n ? activeLevel\n : level || (primary ? 'primary' : undefined)\n }\n loadingClassName={loadingClassName}\n loading={loading}\n onClick={this.handleAction}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n type={type && ~allowedType.indexOf(type) ? type : 'button'}\n disabled={disabled}\n componentClass={isMenuItem ? 'a' : componentClass}\n overrideClassName={isMenuItem}\n tooltip={tooltip}\n disabledTip={disabledTip}\n tooltipPlacement={tooltipPlacement}\n tooltipContainer={tooltipContainer}\n tooltipTrigger={tooltipTrigger}\n tooltipRootClose={tooltipRootClose}\n block={block}\n iconOnly={!!(icon && !label && level !== 'link')}\n >\n {!loading ? iconElement : ''}\n {label ? <span>{filter(String(label), data)}</span> : null}\n {rightIconElement}\n </Button>\n );\n }\n}\n\nexport default themeable(Action);\n\n@Renderer({\n type: 'action'\n})\n// @ts-ignore 类型没搞定\n@withBadge\nexport class ActionRenderer extends React.Component<\n RendererProps &\n Omit<ActionProps, 'onAction' | 'isCurrentUrl' | 'tooltipContainer'> & {\n onAction: (\n e: React.MouseEvent<any> | void | null,\n action: object,\n data: any\n ) => void;\n btnDisabled?: boolean;\n }\n> {\n @autobind\n async handleAction(e: React.MouseEvent<any> | void | null, action: any) {\n const {env, onAction, data, ignoreConfirm, dispatchEvent} = this.props;\n\n // 触发渲染器事件\n const rendererEvent = await dispatchEvent(e as React.MouseEvent<any>, data);\n\n // 阻止原有动作执行\n if (rendererEvent?.prevented) {\n return;\n }\n\n if (!ignoreConfirm && action.confirmText && env.confirm) {\n let confirmed = await env.confirm(filter(action.confirmText, data));\n if (confirmed) {\n await onAction(e, action, data);\n } else if (action.countDown) {\n throw new Error('cancel');\n }\n } else {\n await onAction(e, action, data);\n }\n }\n\n @autobind\n handleMouseEnter(e: React.MouseEvent<any>) {\n this.props.dispatchEvent(e, this.props.data);\n }\n\n @autobind\n handleMouseLeave(e: React.MouseEvent<any>) {\n this.props.dispatchEvent(e, this.props.data);\n }\n\n @autobind\n isCurrentAction(link: string) {\n const {env, data} = this.props;\n return env.isCurrentUrl(filter(link, data));\n }\n\n render() {\n const {env, disabled, btnDisabled, loading, ...rest} = this.props;\n\n return (\n <Action\n {...(rest as any)}\n env={env}\n disabled={disabled || btnDisabled}\n onAction={this.handleAction}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n loading={loading}\n isCurrentUrl={this.isCurrentAction}\n tooltipContainer={\n env.getModalContainer ? env.getModalContainer : undefined\n }\n />\n );\n }\n}\n\n@Renderer({\n type: 'button'\n})\nexport class ButtonRenderer extends ActionRenderer {}\n\n@Renderer({\n type: 'submit'\n})\nexport class SubmitRenderer extends ActionRenderer {}\n\n@Renderer({\n type: 'reset'\n})\nexport class ResetRenderer extends ActionRenderer {}\n"
11
+ "import React from 'react';\nimport hotkeys from 'hotkeys-js';\nimport omit from 'lodash/omit';\nimport pick from 'lodash/pick';\nimport {Renderer, RendererProps} from '../factory';\nimport {filter} from '../utils/tpl';\nimport Button from '../components/Button';\nimport {ScopedContext} from '../Scoped';\nimport {isObject} from '../utils/helper';\n\nimport type {IScopedContext} from '../Scoped';\nimport type {Action as ICmptAction} from '../types';\n\nexport interface ButtonSchema extends BaseSchema {\n /**\n * 主要用于用户行为跟踪里区分是哪个按钮\n */\n id?: string;\n\n /**\n * 是否为块状展示,默认为内联。\n */\n block?: boolean;\n\n /**\n * 禁用时的文案提示。\n */\n disabledTip?: string;\n\n /**\n * 按钮图标, iconfont 的类名\n */\n icon?: SchemaIcon;\n\n /**\n * icon 上的css 类名\n */\n iconClassName?: SchemaClassName;\n\n /**\n * 右侧按钮图标, iconfont 的类名\n */\n rightIcon?: SchemaIcon;\n\n /**\n * 右侧 icon 上的 css 类名\n */\n rightIconClassName?: SchemaClassName;\n /**\n * loading 上的css 类名\n */\n loadingClassName?: SchemaClassName;\n\n /**\n * 按钮文字\n */\n label?: string;\n\n /**\n * 按钮样式\n */\n level?:\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'link'\n | 'primary'\n | 'dark'\n | 'light'\n | 'secondary';\n\n /**\n * @deprecated 通过 level 来配置\n */\n primary?: boolean;\n\n /**\n * 按钮大小\n */\n size?: 'xs' | 'sm' | 'md' | 'lg';\n\n tooltip?: SchemaTooltip;\n tooltipPlacement?: 'top' | 'right' | 'bottom' | 'left';\n\n /**\n * 指定按钮类型,支持 button、submit或者reset三种类型。\n */\n type: 'button' | 'submit' | 'reset';\n\n /**\n * 提示文字,配置了操作前会要求用户确认。\n */\n confirmText?: string;\n\n /**\n * 如果按钮在form中,配置此属性会要求用户把指定的字段通过验证后才会触发行为。\n */\n required?: Array<string>;\n\n /**\n * 激活状态时的样式\n */\n activeLevel?: string;\n\n /**\n * 激活状态时的类名\n */\n activeClassName?: string;\n\n /**\n * 如果按钮在弹框中,可以配置这个动作完成后是否关闭弹窗,或者指定关闭目标弹框。\n */\n close?: boolean | string;\n\n /**\n * 当按钮时批量操作按钮时,默认必须有勾选元素才能可点击,如果此属性配置成 false,则没有点选成员也能点击。\n */\n requireSelected?: boolean;\n\n /**\n * 是否将弹框中数据 merge 到父级作用域。\n */\n mergeData?: boolean;\n\n /**\n * 可以指定让谁来触发这个动作。\n */\n target?: string;\n\n /**\n * 点击后的禁止倒计时(秒)\n */\n countDown?: number;\n\n /**\n * 倒计时文字自定义\n */\n countDownTpl?: string;\n\n /**\n * 角标\n */\n badge?: BadgeSchema;\n\n /**\n * 键盘快捷键\n */\n hotKey?: string;\n /**\n * 是否显示loading效果\n */\n loadingOn?: string;\n\n /**\n * 自定义事件处理函数\n */\n onClick?: string | any;\n\n /**\n * 子内容\n */\n body?: SchemaCollection;\n}\n\nexport interface AjaxActionSchema extends ButtonSchema {\n /**\n * 指定为发送 ajax 的行为。\n */\n actionType: 'ajax';\n\n /**\n * 配置 ajax 发送地址\n */\n api: SchemaApi;\n\n feedback?: FeedbackDialog;\n\n reload?: SchemaReload;\n redirect?: string;\n ignoreConfirm?: boolean;\n}\n\nexport interface DownloadActionSchema\n extends Omit<AjaxActionSchema, 'actionType'> {\n /**\n * 指定为下载行为\n */\n actionType: 'download';\n}\n\nexport interface SaveAsActionSchema\n extends Omit<AjaxActionSchema, 'actionType'> {\n /**\n * 指定为保存到本地\n */\n actionType: 'saveAs';\n}\n\nexport interface UrlActionSchema extends ButtonSchema {\n /**\n * 指定为打开链接\n */\n actionType: 'url';\n\n /**\n * 是否新窗口打开\n */\n blank?: boolean;\n\n /**\n * 打开的目标地址\n */\n url: string;\n}\n\nexport interface DialogActionSchema extends ButtonSchema {\n /**\n * 指定为打开弹窗\n */\n actionType: 'dialog';\n\n /**\n * 弹框详情\n * 文档:https://baidu.gitee.io/amis/docs/components/dialog\n */\n dialog: DialogSchemaBase;\n\n /**\n * 是否有下一个的表达式,正常可以不用配置,如果想要刷掉某些数据可以配置这个。\n */\n nextCondition?: SchemaExpression;\n reload?: SchemaReload;\n redirect?: string;\n}\n\nexport interface DrawerActionSchema extends ButtonSchema {\n /**\n * 指定为打开弹窗,抽出式弹窗\n */\n actionType: 'drawer';\n\n /**\n * 抽出式弹框详情\n * 文档:https://baidu.gitee.io/amis/docs/components/drawer\n */\n drawer: DrawerSchemaBase;\n\n /**\n * 是否有下一个的表达式,正常可以不用配置,如果想要刷掉某些数据可以配置这个。\n */\n nextCondition?: SchemaExpression;\n reload?: SchemaReload;\n redirect?: string;\n}\n\nexport interface ToastActionSchema extends ButtonSchema {\n /**\n * 指定为打开弹窗,抽出式弹窗\n */\n actionType: 'toast';\n\n /**\n * 轻提示详情\n * 文档:https://baidu.gitee.io/amis/docs/components/toast\n */\n toast: ToastSchemaBase;\n}\n\nexport interface CopyActionSchema extends ButtonSchema {\n /**\n * 指定为复制内容行为\n */\n actionType: 'copy';\n\n /**\n * 复制啥内容由此配置,支持模板语法。\n */\n copy: SchemaTpl;\n}\n\nexport interface LinkActionSchema extends ButtonSchema {\n /**\n * 指定为打开链接行为,跟 url 不同的时这个行为为单页模式。\n */\n actionType: 'link';\n\n /**\n * 跳转到哪?支持配置相对路径。\n */\n link: string;\n}\n\nexport interface ReloadActionSchema extends ButtonSchema {\n /**\n * 指定为刷新目标组件。\n */\n actionType: 'reload';\n\n /**\n * 指定目标组件。\n */\n target?: SchemaReload;\n}\n\nexport interface EmailActionSchema extends ButtonSchema {\n /**\n * 指定为打开邮箱行为\n */\n actionType: 'email';\n\n /**\n * 收件人邮箱\n */\n to: string;\n\n /**\n * 抄送邮箱\n */\n cc?: string;\n\n /**\n * 匿名抄送邮箱\n */\n bcc?: string;\n\n /**\n * 邮件主题\n */\n subject?: string;\n\n /**\n * 邮件正文\n */\n body?: string;\n}\n\nexport interface OtherActionSchema extends ButtonSchema {\n actionType:\n | 'prev'\n | 'next'\n | 'cancel'\n | 'close'\n | 'submit'\n | 'confirm'\n | 'add'\n | 'reset'\n | 'reset-and-submit';\n [propName: string]: any;\n}\n\nexport interface VanillaAction extends ButtonSchema {\n actionType?: string;\n}\n\n/**\n * 按钮动作渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/action\n */\nexport type ActionSchema =\n | AjaxActionSchema\n | UrlActionSchema\n | LinkActionSchema\n | DialogActionSchema\n | DrawerActionSchema\n | ToastActionSchema\n | CopyActionSchema\n | ReloadActionSchema\n | EmailActionSchema\n | OtherActionSchema\n | VanillaAction;\n\nconst ActionProps = [\n 'id',\n 'dialog',\n 'drawer',\n 'toast',\n 'url',\n 'link',\n 'confirmText',\n 'tooltip',\n 'disabledTip',\n 'className',\n 'asyncApi',\n 'redirect',\n 'size',\n 'level',\n 'primary',\n 'feedback',\n 'api',\n 'blank',\n 'tooltipPlacement',\n 'to',\n 'cc',\n 'bcc',\n 'subject',\n 'body',\n 'content',\n 'required',\n 'type',\n 'actionType',\n 'label',\n 'icon',\n 'rightIcon',\n 'reload',\n 'target',\n 'close',\n 'messages',\n 'mergeData',\n 'index',\n 'copy',\n 'copyFormat',\n 'payload',\n 'requireSelected',\n 'countDown'\n];\nimport {filterContents} from './Remark';\nimport {ClassNamesFn, themeable, ThemeProps} from '../theme';\nimport {autobind, createObject} from '../utils/helper';\nimport {\n BaseSchema,\n FeedbackDialog,\n SchemaApi,\n SchemaClassName,\n SchemaCollection,\n SchemaExpression,\n SchemaIcon,\n SchemaReload,\n SchemaTooltip,\n SchemaTpl\n} from '../Schema';\nimport {DialogSchema, DialogSchemaBase} from './Dialog';\nimport {DrawerSchema, DrawerSchemaBase} from './Drawer';\nimport {ToastSchemaBase} from '../Schema';\nimport {generateIcon} from '../utils/icon';\nimport {BadgeSchema, withBadge} from '../components/Badge';\nimport {normalizeApi, str2AsyncFunction} from '../utils/api';\nimport {TooltipWrapper} from '../components/TooltipWrapper';\n\n// 构造一个假的 React 事件避免可能的报错,主要用于快捷键功能\n// 来自 https://stackoverflow.com/questions/27062455/reactjs-can-i-create-my-own-syntheticevent\nexport const createSyntheticEvent = <T extends Element, E extends Event>(\n event: E\n): React.SyntheticEvent<T, E> => {\n let isDefaultPrevented = false;\n let isPropagationStopped = false;\n const preventDefault = () => {\n isDefaultPrevented = true;\n event.preventDefault();\n };\n const stopPropagation = () => {\n isPropagationStopped = true;\n event.stopPropagation();\n };\n return {\n nativeEvent: event,\n currentTarget: event.currentTarget as EventTarget & T,\n target: event.target as EventTarget & T,\n bubbles: event.bubbles,\n cancelable: event.cancelable,\n defaultPrevented: event.defaultPrevented,\n eventPhase: event.eventPhase,\n isTrusted: event.isTrusted,\n preventDefault,\n isDefaultPrevented: () => isDefaultPrevented,\n stopPropagation,\n isPropagationStopped: () => isPropagationStopped,\n persist: () => {},\n timeStamp: event.timeStamp,\n type: event.type\n };\n};\n\nexport interface ActionProps\n extends Omit<\n ButtonSchema,\n 'className' | 'iconClassName' | 'rightIconClassName' | 'loadingClassName'\n >,\n ThemeProps,\n Omit<\n AjaxActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n UrlActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n LinkActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n DialogActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n DrawerActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n ToastSchemaBase,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n CopyActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n ReloadActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n >,\n Omit<\n EmailActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n | 'body'\n >,\n Omit<\n OtherActionSchema,\n | 'type'\n | 'className'\n | 'iconClassName'\n | 'rightIconClassName'\n | 'loadingClassName'\n > {\n actionType: any;\n onAction?: (\n e: React.MouseEvent<any> | void | null,\n action: ActionSchema\n ) => void;\n isCurrentUrl?: (link: string) => boolean;\n onClick?:\n | ((e: React.MouseEvent<any>, props: any) => void)\n | string\n | Function\n | null;\n componentClass: React.ReactType;\n tooltipContainer?: any;\n data?: any;\n isMenuItem?: boolean;\n active?: boolean;\n}\n\nconst allowedType = ['button', 'submit', 'reset'];\n\ninterface ActionState {\n inCountDown: boolean; // 是否在倒计时\n countDownEnd: number; // 倒计时结束的精确时间\n timeLeft: number; // 倒计时剩余时间\n}\n\nexport class Action extends React.Component<ActionProps, ActionState> {\n static defaultProps = {\n type: 'button' as 'button',\n componentClass: 'button' as React.ReactType,\n tooltipPlacement: 'bottom' as 'bottom',\n activeClassName: 'is-active',\n countDownTpl: 'Action.countDown',\n countDown: 0\n };\n\n state: ActionState = {\n inCountDown: false,\n countDownEnd: 0,\n timeLeft: 0\n };\n\n localStorageKey: string;\n\n dom: any;\n\n constructor(props: ActionProps) {\n super(props);\n this.localStorageKey = 'amis-countdownend-' + (this.props.name || '');\n const countDownEnd = parseInt(\n localStorage.getItem(this.localStorageKey) || '0'\n );\n if (countDownEnd && this.props.countDown) {\n if (Date.now() < countDownEnd) {\n this.state = {\n inCountDown: true,\n countDownEnd,\n timeLeft: Math.floor((countDownEnd - Date.now()) / 1000)\n };\n this.handleCountDown();\n }\n }\n }\n\n @autobind\n async handleAction(e: React.MouseEvent<any>) {\n const {onAction, disabled, countDown, env} = this.props;\n // https://reactjs.org/docs/legacy-event-pooling.html\n e.persist(); // 等 react 17之后去掉 event pooling 了,这个应该就没用了\n let onClick = this.props.onClick;\n\n if (typeof onClick === 'string') {\n onClick = str2AsyncFunction(onClick, 'event', 'props');\n }\n const result: any = onClick && (await onClick(e, this.props));\n\n if (\n disabled ||\n e.isDefaultPrevented() ||\n result === false ||\n !onAction ||\n this.state.inCountDown\n ) {\n return;\n }\n\n e.preventDefault();\n const action = pick(this.props, ActionProps) as ActionSchema;\n const actionType = action.actionType;\n\n // ajax 会在 wrapFetcher 里记录,这里再处理就重复了,因此去掉\n // add 一般是 input-table 之类的,会触发 formItemChange,为了避免重复也去掉\n if (\n actionType !== 'ajax' &&\n actionType !== 'download' &&\n actionType !== 'add'\n ) {\n env?.tracker(\n {\n eventType: actionType || this.props.type || 'click',\n eventData: omit(action, ['type', 'actionType', 'tooltipPlacement'])\n },\n this.props\n );\n }\n\n // download 是一种 ajax 的简写\n if (actionType === 'download') {\n action.actionType = 'ajax';\n const api = normalizeApi((action as AjaxActionSchema).api);\n api.responseType = 'blob';\n (action as AjaxActionSchema).api = api;\n }\n\n await onAction(e, action);\n if (countDown) {\n const countDownEnd = Date.now() + countDown * 1000;\n this.setState({\n countDownEnd: countDownEnd,\n inCountDown: true,\n timeLeft: countDown\n });\n localStorage.setItem(this.localStorageKey, String(countDownEnd));\n setTimeout(() => {\n this.handleCountDown();\n }, 1000);\n }\n }\n\n @autobind\n handleCountDown() {\n // setTimeout 一般会晚于 1s,经过几十次后就不准了,所以使用真实时间进行 diff\n const timeLeft = Math.floor((this.state.countDownEnd - Date.now()) / 1000);\n if (timeLeft <= 0) {\n this.setState({\n inCountDown: false,\n timeLeft: timeLeft\n });\n } else {\n this.setState({\n timeLeft: timeLeft\n });\n setTimeout(() => {\n this.handleCountDown();\n }, 1000);\n }\n }\n\n @autobind\n componentDidMount() {\n const {hotKey} = this.props;\n if (hotKey) {\n hotkeys(hotKey, event => {\n event.preventDefault();\n const click = new MouseEvent('click', {\n bubbles: true,\n cancelable: true\n });\n this.handleAction(createSyntheticEvent(click) as any);\n });\n }\n }\n\n @autobind\n componentWillUnmount() {\n const {hotKey} = this.props;\n if (hotKey) {\n hotkeys.unbind(hotKey);\n }\n }\n\n render() {\n const {\n type,\n icon,\n iconClassName,\n rightIcon,\n rightIconClassName,\n loadingClassName,\n primary,\n size,\n level,\n countDownTpl,\n block,\n className,\n componentClass,\n tooltip,\n disabledTip,\n tooltipPlacement,\n actionType,\n link,\n data,\n translate: __,\n activeClassName,\n isCurrentUrl,\n isMenuItem,\n active,\n activeLevel,\n tooltipTrigger,\n tooltipContainer,\n tooltipRootClose,\n loading,\n body,\n render,\n onMouseEnter,\n onMouseLeave,\n classnames: cx,\n classPrefix: ns\n } = this.props;\n\n if (actionType !== 'email' && body) {\n return (\n <TooltipWrapper\n classPrefix={ns}\n classnames={cx}\n placement={tooltipPlacement}\n tooltip={tooltip}\n container={tooltipContainer}\n trigger={tooltipTrigger}\n rootClose={tooltipRootClose}\n >\n <div\n className={cx('Action', className)}\n onClick={this.handleAction}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n {render('body', body) as JSX.Element}\n </div>\n </TooltipWrapper>\n );\n }\n\n let label = this.props.label;\n let disabled = this.props.disabled;\n let isActive = !!active;\n\n if (actionType === 'link' && !isActive && link && isCurrentUrl) {\n isActive = isCurrentUrl(link);\n }\n\n // 倒计时\n if (this.state.inCountDown) {\n label = filterContents(__(countDownTpl), {\n ...data,\n timeLeft: this.state.timeLeft\n }) as string;\n disabled = true;\n }\n\n const iconElement = generateIcon(cx, icon, 'Button-icon', iconClassName);\n const rightIconElement = generateIcon(\n cx,\n rightIcon,\n 'Button-icon',\n rightIconClassName\n );\n\n return (\n <Button\n className={cx(className, {\n [activeClassName || 'is-active']: isActive\n })}\n size={size}\n level={\n activeLevel && isActive\n ? activeLevel\n : level || (primary ? 'primary' : undefined)\n }\n loadingClassName={loadingClassName}\n loading={loading}\n onClick={this.handleAction}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n type={type && ~allowedType.indexOf(type) ? type : 'button'}\n disabled={disabled}\n componentClass={isMenuItem ? 'a' : componentClass}\n overrideClassName={isMenuItem}\n tooltip={tooltip}\n disabledTip={disabledTip}\n tooltipPlacement={tooltipPlacement}\n tooltipContainer={tooltipContainer}\n tooltipTrigger={tooltipTrigger}\n tooltipRootClose={tooltipRootClose}\n block={block}\n iconOnly={!!(icon && !label && level !== 'link')}\n >\n {!loading ? iconElement : ''}\n {label ? <span>{filter(String(label), data)}</span> : null}\n {rightIconElement}\n </Button>\n );\n }\n}\n\nexport default themeable(Action);\n\nexport type ActionRendererProps = RendererProps &\n Omit<ActionProps, 'onAction' | 'isCurrentUrl' | 'tooltipContainer'> & {\n onAction: (\n e: React.MouseEvent<any> | string | void | null,\n action: object,\n data: any\n ) => void;\n btnDisabled?: boolean;\n };\n\n@Renderer({\n type: 'action'\n})\n// @ts-ignore 类型没搞定\n@withBadge\nexport class ActionRenderer extends React.Component<ActionRendererProps> {\n static contextType = ScopedContext;\n\n constructor(props: ActionRendererProps, scoped: IScopedContext) {\n super(props);\n\n scoped.registerComponent(this);\n }\n\n componentWillUnmount() {\n const scoped = this.context as IScopedContext;\n scoped.unRegisterComponent(this);\n }\n\n /**\n * 动作处理\n */\n doAction(\n action: ICmptAction,\n args: {\n value?: string | {[key: string]: string};\n }\n ) {\n const actionType = action?.actionType;\n\n if (actionType === 'click') {\n this.handleAction(actionType, action);\n }\n }\n\n @autobind\n async handleAction(\n e: React.MouseEvent<any> | string | void | null,\n action: any\n ) {\n const {env, onAction, data, ignoreConfirm, dispatchEvent} = this.props;\n let mergedData = data;\n\n if (action?.actionType === 'click' && isObject(action?.args)) {\n mergedData = createObject(data, action.args);\n }\n\n // 触发渲染器事件\n const rendererEvent = await dispatchEvent(\n e as React.MouseEvent<any> | string,\n mergedData\n );\n\n // 阻止原有动作执行\n if (rendererEvent?.prevented) {\n return;\n }\n\n if (!ignoreConfirm && action.confirmText && env.confirm) {\n let confirmed = await env.confirm(filter(action.confirmText, mergedData));\n if (confirmed) {\n await onAction(e, action, mergedData);\n } else if (action.countDown) {\n throw new Error('cancel');\n }\n } else {\n await onAction(e, action, mergedData);\n }\n }\n\n @autobind\n handleMouseEnter(e: React.MouseEvent<any>) {\n this.props.dispatchEvent(e, this.props.data);\n }\n\n @autobind\n handleMouseLeave(e: React.MouseEvent<any>) {\n this.props.dispatchEvent(e, this.props.data);\n }\n\n @autobind\n isCurrentAction(link: string) {\n const {env, data} = this.props;\n return env.isCurrentUrl(filter(link, data));\n }\n\n render() {\n const {env, disabled, btnDisabled, loading, ...rest} = this.props;\n\n return (\n <Action\n {...(rest as any)}\n env={env}\n disabled={disabled || btnDisabled}\n onAction={this.handleAction}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n loading={loading}\n isCurrentUrl={this.isCurrentAction}\n tooltipContainer={\n env.getModalContainer ? env.getModalContainer : undefined\n }\n />\n );\n }\n}\n\n@Renderer({\n type: 'button'\n})\nexport class ButtonRenderer extends ActionRenderer {}\n\n@Renderer({\n type: 'submit'\n})\nexport class SubmitRenderer extends ActionRenderer {}\n\n@Renderer({\n type: 'reset'\n})\nexport class ResetRenderer extends ActionRenderer {}\n"
12
12
  ]
13
13
  }
@@ -25,7 +25,7 @@ var BreadcrumbField = /** @class */ (function (_super) {
25
25
  item.label = (0, tpl_1.filter)(item.label, data);
26
26
  }
27
27
  if (item.href) {
28
- item.href = (0, tpl_1.filter)(item.href, data);
28
+ item.href = (0, tpl_builtin_1.resolveVariableAndFilter)(item.href, data, '| raw');
29
29
  }
30
30
  if (item.dropdown) {
31
31
  item.dropdown = item.dropdown.map(function (dropdownItem) {
@@ -33,7 +33,7 @@ var BreadcrumbField = /** @class */ (function (_super) {
33
33
  dropdownItem.label = (0, tpl_1.filter)(dropdownItem.label, data);
34
34
  }
35
35
  if (dropdownItem.href) {
36
- dropdownItem.href = (0, tpl_1.filter)(dropdownItem.href, data);
36
+ dropdownItem.href = (0, tpl_builtin_1.resolveVariableAndFilter)(dropdownItem.href, data, '| raw');
37
37
  }
38
38
  return dropdownItem;
39
39
  });
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/Breadcrumb.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": ";;;;AAAA;;GAEG;AACH,6DAA0B;AAC1B,sCAAmD;AAEnD,oCAAoC;AACpC,oDAA8D;AAC9D,qFAAkD;AAoGlD;IAAqC,gDAAwC;IAA7E;;IA8CA,CAAC;IA7CC,gCAAM,GAAN;QACE,IAAM,KAMF,IAAI,CAAC,KAAK,EALZ,KAAK,WAAA,EACL,MAAM,YAAA,EACN,IAAI,UAAA,EACJ,GAAG,SAAA,EACA,SAAS,2BALR,kCAML,CAAa,CAAC;QAEf,IAAI,UAAU,GAAG,KAAK;YACpB,CAAC,CAAC,KAAK;YACP,CAAC,CAAE,IAAA,sCAAwB,EACvB,MAAM,EACN,IAAI,EACJ,OAAO,CACwB,CAAC;QACtC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,UAAA,IAAI;YAC9B,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,GAAG,IAAA,YAAM,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;aACvC;YACD,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,IAAI,CAAC,IAAI,GAAG,IAAA,YAAM,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACrC;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,YAAY;oBAC5C,IAAI,YAAY,CAAC,KAAK,EAAE;wBACtB,YAAY,CAAC,KAAK,GAAG,IAAA,YAAM,EAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;qBACvD;oBACD,IAAI,YAAY,CAAC,IAAI,EAAE;wBACrB,YAAY,CAAC,IAAI,GAAG,IAAA,YAAM,EAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;qBACrD;oBACD,OAAO,YAAY,CAAC;gBACtB,CAAC,CAAC,CAAC;aACJ;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,OAAO,CACL,8BAAC,oBAAU,0BACT,KAAK,EAAE,UAAU,EACjB,gBAAgB,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,iBAAiB,IACpC,SAAS,EACD,CACf,CAAC;IACJ,CAAC;IACH,sBAAC;AAAD,CAAC,AA9CD,CAAqC,eAAK,CAAC,SAAS,GA8CnD;AA9CY,0CAAe;AAmD5B;IAA6C,wDAAe;IAA5D;;IAA8D,CAAC;IAAlD,uBAAuB;QAHnC,IAAA,kBAAQ,EAAC;YACR,IAAI,EAAE,YAAY;SACnB,CAAC;OACW,uBAAuB,CAA2B;IAAD,8BAAC;CAAA,AAA/D,CAA6C,eAAe,GAAG;AAAlD,0DAAuB",
9
+ "mappings": ";;;;AAAA;;GAEG;AACH,6DAA0B;AAC1B,sCAAmD;AAEnD,oCAAoC;AACpC,oDAA8D;AAC9D,qFAAkD;AAqGlD;IAAqC,gDAAwC;IAA7E;;IA4CA,CAAC;IA3CC,gCAAM,GAAN;QACE,IAAM,KAA2C,IAAI,CAAC,KAAK,EAApD,KAAK,WAAA,EAAE,MAAM,YAAA,EAAE,IAAI,UAAA,EAAE,GAAG,SAAA,EAAK,SAAS,2BAAvC,kCAAwC,CAAa,CAAC;QAE5D,IAAI,UAAU,GAAG,KAAK;YACpB,CAAC,CAAC,KAAK;YACP,CAAC,CAAE,IAAA,sCAAwB,EACvB,MAAM,EACN,IAAI,EACJ,OAAO,CACwB,CAAC;QACtC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,UAAA,IAAI;YAC9B,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,GAAG,IAAA,YAAM,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;aACvC;YACD,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,IAAI,CAAC,IAAI,GAAG,IAAA,sCAAwB,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;aAChE;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,YAAY;oBAC5C,IAAI,YAAY,CAAC,KAAK,EAAE;wBACtB,YAAY,CAAC,KAAK,GAAG,IAAA,YAAM,EAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;qBACvD;oBACD,IAAI,YAAY,CAAC,IAAI,EAAE;wBACrB,YAAY,CAAC,IAAI,GAAG,IAAA,sCAAwB,EAC1C,YAAY,CAAC,IAAI,EACjB,IAAI,EACJ,OAAO,CACR,CAAC;qBACH;oBACD,OAAO,YAAY,CAAC;gBACtB,CAAC,CAAC,CAAC;aACJ;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,OAAO,CACL,8BAAC,oBAAU,0BACT,KAAK,EAAE,UAAU,EACjB,gBAAgB,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,iBAAiB,IACpC,SAAS,EACD,CACf,CAAC;IACJ,CAAC;IACH,sBAAC;AAAD,CAAC,AA5CD,CAAqC,eAAK,CAAC,SAAS,GA4CnD;AA5CY,0CAAe;AAiD5B;IAA6C,wDAAe;IAA5D;;IAA8D,CAAC;IAAlD,uBAAuB;QAHnC,IAAA,kBAAQ,EAAC;YACR,IAAI,EAAE,YAAY;SACnB,CAAC;OACW,uBAAuB,CAA2B;IAAD,8BAAC;CAAA,AAA/D,CAA6C,eAAe,GAAG;AAAlD,0DAAuB",
10
10
  "sourcesContent": [
11
- "/**\n * @file 用来展示面包屑导航\n */\nimport React from 'react';\nimport {Renderer, RendererProps} from '../factory';\nimport {BaseSchema, SchemaIcon, SchemaUrlPath} from '../Schema';\nimport {filter} from '../utils/tpl';\nimport {resolveVariableAndFilter} from '../utils/tpl-builtin';\nimport Breadcrumb from '../components/Breadcrumb';\n\nexport type BreadcrumbBaseItemSchema = {\n /**\n * 文字\n */\n label?: string;\n\n /**\n * 图标类名\n */\n icon?: SchemaIcon;\n\n /**\n * 链接地址\n */\n href?: SchemaUrlPath;\n} & Omit<BaseSchema, 'type'>;\n\nexport type BreadcrumbItemSchema = {\n /**\n * 文字\n */\n label?: string;\n\n /**\n * 图标类名\n */\n icon?: SchemaIcon;\n\n /**\n * 链接地址\n */\n href?: SchemaUrlPath;\n\n /**\n * 下拉菜单\n */\n dropdown?: Array<BreadcrumbBaseItemSchema>;\n} & Omit<BaseSchema, 'type'>;\n\nexport type TooltipPositionType = 'top' | 'bottom' | 'left' | 'right';\n\nexport type ItemPlace = 'start' | 'middle' | 'end';\n\n/**\n * Breadcrumb 显示渲染器\n * 文档:https://baidu.gitee.io/amis/docs/components/breadcrumb\n */\n\n export interface BreadcrumbSchema extends BaseSchema {\n /**\n * 指定为面包屑显示控件\n */\n type: 'breadcrumb';\n\n /**\n * 面包项类名\n */\n itemClassName?: string;\n\n /**\n * 分隔符\n */\n separator?: string;\n\n /**\n * 分隔符类名\n */\n separatorClassName?: string;\n\n /**\n * 下拉菜单类名\n */\n dropdownClassName?: string;\n\n /**\n * 下拉菜单项类名\n */\n dropdownItemClassName?: string;\n\n /**\n * 列表\n */\n items: Array<BreadcrumbItemSchema>;\n\n /**\n * labelMaxLength\n */\n labelMaxLength?: number;\n\n /**\n * 浮窗提示位置\n */\n tooltipPosition?: TooltipPositionType;\n}\n\nexport interface BreadcrumbProps extends RendererProps,\n Omit<BreadcrumbSchema, 'type' | 'className'> {}\n\nexport class BreadcrumbField extends React.Component<BreadcrumbProps, object> {\n render() {\n const {\n items,\n source,\n data,\n env,\n ...restProps\n } = this.props;\n\n let crumbItems = items\n ? items\n : (resolveVariableAndFilter(\n source,\n data,\n '| raw'\n ) as Array<BreadcrumbItemSchema>);\n crumbItems = crumbItems.map(item => {\n if (item.label) {\n item.label = filter(item.label, data);\n }\n if (item.href) {\n item.href = filter(item.href, data);\n }\n if (item.dropdown) {\n item.dropdown = item.dropdown.map(dropdownItem => {\n if (dropdownItem.label) {\n dropdownItem.label = filter(dropdownItem.label, data);\n }\n if (dropdownItem.href) {\n dropdownItem.href = filter(dropdownItem.href, data);\n }\n return dropdownItem;\n });\n }\n return item;\n });\n\n return (\n <Breadcrumb\n items={crumbItems}\n tooltipContainer={env?.getModalContainer}\n {...restProps}\n ></Breadcrumb>\n );\n }\n}\n\n@Renderer({\n type: 'breadcrumb'\n})\nexport class BreadcrumbFieldRenderer extends BreadcrumbField {}\n"
11
+ "/**\n * @file 用来展示面包屑导航\n */\nimport React from 'react';\nimport {Renderer, RendererProps} from '../factory';\nimport {BaseSchema, SchemaIcon, SchemaUrlPath} from '../Schema';\nimport {filter} from '../utils/tpl';\nimport {resolveVariableAndFilter} from '../utils/tpl-builtin';\nimport Breadcrumb from '../components/Breadcrumb';\n\nexport type BreadcrumbBaseItemSchema = {\n /**\n * 文字\n */\n label?: string;\n\n /**\n * 图标类名\n */\n icon?: SchemaIcon;\n\n /**\n * 链接地址\n */\n href?: SchemaUrlPath;\n} & Omit<BaseSchema, 'type'>;\n\nexport type BreadcrumbItemSchema = {\n /**\n * 文字\n */\n label?: string;\n\n /**\n * 图标类名\n */\n icon?: SchemaIcon;\n\n /**\n * 链接地址\n */\n href?: SchemaUrlPath;\n\n /**\n * 下拉菜单\n */\n dropdown?: Array<BreadcrumbBaseItemSchema>;\n} & Omit<BaseSchema, 'type'>;\n\nexport type TooltipPositionType = 'top' | 'bottom' | 'left' | 'right';\n\nexport type ItemPlace = 'start' | 'middle' | 'end';\n\n/**\n * Breadcrumb 显示渲染器\n * 文档:https://baidu.gitee.io/amis/docs/components/breadcrumb\n */\n\nexport interface BreadcrumbSchema extends BaseSchema {\n /**\n * 指定为面包屑显示控件\n */\n type: 'breadcrumb';\n\n /**\n * 面包项类名\n */\n itemClassName?: string;\n\n /**\n * 分隔符\n */\n separator?: string;\n\n /**\n * 分隔符类名\n */\n separatorClassName?: string;\n\n /**\n * 下拉菜单类名\n */\n dropdownClassName?: string;\n\n /**\n * 下拉菜单项类名\n */\n dropdownItemClassName?: string;\n\n /**\n * 列表\n */\n items: Array<BreadcrumbItemSchema>;\n\n /**\n * labelMaxLength\n */\n labelMaxLength?: number;\n\n /**\n * 浮窗提示位置\n */\n tooltipPosition?: TooltipPositionType;\n}\n\nexport interface BreadcrumbProps\n extends RendererProps,\n Omit<BreadcrumbSchema, 'type' | 'className'> {}\n\nexport class BreadcrumbField extends React.Component<BreadcrumbProps, object> {\n render() {\n const {items, source, data, env, ...restProps} = this.props;\n\n let crumbItems = items\n ? items\n : (resolveVariableAndFilter(\n source,\n data,\n '| raw'\n ) as Array<BreadcrumbItemSchema>);\n crumbItems = crumbItems.map(item => {\n if (item.label) {\n item.label = filter(item.label, data);\n }\n if (item.href) {\n item.href = resolveVariableAndFilter(item.href, data, '| raw');\n }\n if (item.dropdown) {\n item.dropdown = item.dropdown.map(dropdownItem => {\n if (dropdownItem.label) {\n dropdownItem.label = filter(dropdownItem.label, data);\n }\n if (dropdownItem.href) {\n dropdownItem.href = resolveVariableAndFilter(\n dropdownItem.href,\n data,\n '| raw'\n );\n }\n return dropdownItem;\n });\n }\n return item;\n });\n\n return (\n <Breadcrumb\n items={crumbItems}\n tooltipContainer={env?.getModalContainer}\n {...restProps}\n ></Breadcrumb>\n );\n }\n}\n\n@Renderer({\n type: 'breadcrumb'\n})\nexport class BreadcrumbFieldRenderer extends BreadcrumbField {}\n"
12
12
  ]
13
13
  }
@@ -71,7 +71,7 @@ export default class PickerControl extends React.PureComponent<PickerProps, any>
71
71
  open(): void;
72
72
  close(): void;
73
73
  handleModalConfirm(values: Array<any>, action: Action, ctx: any, components: Array<any>): void;
74
- handleChange(items: Array<any>): void;
74
+ handleChange(items: Array<any>): Promise<void>;
75
75
  removeItem(index: number): void;
76
76
  handleKeyDown(e: React.KeyboardEvent): void;
77
77
  handleFocus(): void;
@@ -108,29 +108,44 @@ var PickerControl = /** @class */ (function (_super) {
108
108
  this.close();
109
109
  };
110
110
  PickerControl.prototype.handleChange = function (items) {
111
- var _a = this.props, joinValues = _a.joinValues, valueField = _a.valueField, delimiter = _a.delimiter, extractValue = _a.extractValue, multiple = _a.multiple, options = _a.options, setOptions = _a.setOptions, onChange = _a.onChange;
112
- var value = items;
113
- if (joinValues) {
114
- value = items
115
- .map(function (item) { return item[valueField || 'value']; })
116
- .join(delimiter || ',');
117
- }
118
- else if (extractValue) {
119
- value = multiple
120
- ? items.map(function (item) { return item[valueField || 'value']; })
121
- : (items[0] && items[0][valueField || 'value']) || '';
122
- }
123
- else {
124
- value = multiple ? items : items[0];
125
- }
126
- var additionalOptions = [];
127
- items.forEach(function (item) {
128
- if (!(0, find_1.default)(options, function (option) { return item[valueField || 'value'] == option[valueField || 'value']; })) {
129
- additionalOptions.push(item);
130
- }
111
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
112
+ var _a, joinValues, valueField, delimiter, extractValue, multiple, options, data, dispatchEvent, setOptions, onChange, value, additionalOptions, rendererEvent;
113
+ return (0, tslib_1.__generator)(this, function (_b) {
114
+ switch (_b.label) {
115
+ case 0:
116
+ _a = this.props, joinValues = _a.joinValues, valueField = _a.valueField, delimiter = _a.delimiter, extractValue = _a.extractValue, multiple = _a.multiple, options = _a.options, data = _a.data, dispatchEvent = _a.dispatchEvent, setOptions = _a.setOptions, onChange = _a.onChange;
117
+ value = items;
118
+ if (joinValues) {
119
+ value = items
120
+ .map(function (item) { return item[valueField || 'value']; })
121
+ .join(delimiter || ',');
122
+ }
123
+ else if (extractValue) {
124
+ value = multiple
125
+ ? items.map(function (item) { return item[valueField || 'value']; })
126
+ : (items[0] && items[0][valueField || 'value']) || '';
127
+ }
128
+ else {
129
+ value = multiple ? items : items[0];
130
+ }
131
+ additionalOptions = [];
132
+ items.forEach(function (item) {
133
+ if (!(0, find_1.default)(options, function (option) { return item[valueField || 'value'] == option[valueField || 'value']; })) {
134
+ additionalOptions.push(item);
135
+ }
136
+ });
137
+ additionalOptions.length && setOptions(options.concat(additionalOptions));
138
+ return [4 /*yield*/, dispatchEvent('change', (0, helper_1.createObject)(data, { value: value, option: items[0] }))];
139
+ case 1:
140
+ rendererEvent = _b.sent();
141
+ if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
142
+ return [2 /*return*/];
143
+ }
144
+ onChange(value);
145
+ return [2 /*return*/];
146
+ }
147
+ });
131
148
  });
132
- additionalOptions.length && setOptions(options.concat(additionalOptions));
133
- onChange(value);
134
149
  };
135
150
  PickerControl.prototype.removeItem = function (index) {
136
151
  var _a = this.props, selectedOptions = _a.selectedOptions, joinValues = _a.joinValues, extractValue = _a.extractValue, delimiter = _a.delimiter, valueField = _a.valueField, onChange = _a.onChange, multiple = _a.multiple;
@@ -292,7 +307,7 @@ var PickerControl = /** @class */ (function (_super) {
292
307
  helper_1.autobind,
293
308
  (0, tslib_1.__metadata)("design:type", Function),
294
309
  (0, tslib_1.__metadata)("design:paramtypes", [typeof (_d = typeof Array !== "undefined" && Array) === "function" ? _d : Object]),
295
- (0, tslib_1.__metadata)("design:returntype", void 0)
310
+ (0, tslib_1.__metadata)("design:returntype", Promise)
296
311
  ], PickerControl.prototype, "handleChange", null);
297
312
  (0, tslib_1.__decorate)([
298
313
  helper_1.autobind,