amis 1.5.4 → 1.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/lib/RootRenderer.d.ts +1 -1
  2. package/lib/RootRenderer.js +4 -3
  3. package/lib/RootRenderer.js.map +2 -2
  4. package/lib/components/Progress.js +1 -1
  5. package/lib/components/Progress.js.map +2 -2
  6. package/lib/index.js +1 -1
  7. package/lib/renderers/CRUD.d.ts +1 -1
  8. package/lib/renderers/CRUD.js +4 -3
  9. package/lib/renderers/CRUD.js.map +2 -2
  10. package/lib/renderers/Dialog.d.ts +2 -2
  11. package/lib/renderers/Dialog.js +7 -7
  12. package/lib/renderers/Dialog.js.map +2 -2
  13. package/lib/renderers/Drawer.js +2 -2
  14. package/lib/renderers/Drawer.js.map +2 -2
  15. package/lib/renderers/Form/Item.d.ts +1 -1
  16. package/lib/renderers/Form/Item.js +4 -3
  17. package/lib/renderers/Form/Item.js.map +2 -2
  18. package/lib/renderers/Form/index.d.ts +1 -1
  19. package/lib/renderers/Form/index.js +3 -2
  20. package/lib/renderers/Form/index.js.map +2 -2
  21. package/lib/renderers/Page.d.ts +3 -3
  22. package/lib/renderers/Page.js +4 -3
  23. package/lib/renderers/Page.js.map +2 -2
  24. package/lib/renderers/Wizard.d.ts +1 -1
  25. package/lib/renderers/Wizard.js +93 -36
  26. package/lib/renderers/Wizard.js.map +2 -2
  27. package/package.json +2 -2
  28. package/sdk/charts.js +16 -16
  29. package/sdk/color-picker.js +69 -65
  30. package/sdk/cropperjs.js +2 -2
  31. package/sdk/exceljs.js +1 -1
  32. package/sdk/markdown.js +69 -69
  33. package/sdk/papaparse.js +1 -1
  34. package/sdk/renderers/Form/CityDB.js +1 -1
  35. package/sdk/rest.js +16 -20
  36. package/sdk/rich-text.js +62 -62
  37. package/sdk/sdk.js +1212 -1212
  38. package/sdk/thirds/hls.js/hls.js +1 -1
  39. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  40. package/sdk/tinymce.js +57 -57
  41. package/src/RootRenderer.tsx +3 -3
  42. package/src/components/Progress.tsx +1 -1
  43. package/src/renderers/CRUD.tsx +3 -3
  44. package/src/renderers/Dialog.tsx +8 -8
  45. package/src/renderers/Drawer.tsx +2 -2
  46. package/src/renderers/Form/Item.tsx +2 -2
  47. package/src/renderers/Form/index.tsx +2 -2
  48. package/src/renderers/Page.tsx +11 -10
  49. package/src/renderers/Wizard.tsx +52 -12
@@ -184,12 +184,12 @@ export class RootRenderer extends React.Component<RootRendererProps> {
184
184
  return;
185
185
  }
186
186
 
187
- store.closeDialog();
187
+ store.closeDialog(true);
188
188
  }
189
189
 
190
- handleDialogClose() {
190
+ handleDialogClose(confirmed = false) {
191
191
  const store = this.store;
192
- store.closeDialog();
192
+ store.closeDialog(confirmed);
193
193
  }
194
194
 
195
195
  handleDrawerConfirm(values: object[], action: Action, ...args: Array<any>) {
@@ -118,7 +118,7 @@ export class Progress extends React.Component<ProgressProps, Object> {
118
118
  };
119
119
 
120
120
  viewValue = [
121
- <div className={cx(prefixCls)}>
121
+ <div className={cx(prefixCls)} key="circle">
122
122
  <Circle
123
123
  percent={value}
124
124
  strokeColor=""
@@ -885,7 +885,7 @@ export default class CRUD extends React.Component<CRUDProps, any> {
885
885
  env
886
886
  } = this.props;
887
887
 
888
- store.closeDialog();
888
+ store.closeDialog(true);
889
889
  const dialogAction = store.action as Action;
890
890
 
891
891
  if (stopAutoRefreshWhenModalIsOpen && interval) {
@@ -968,10 +968,10 @@ export default class CRUD extends React.Component<CRUDProps, any> {
968
968
  redirect && env.jumpTo(redirect, dialogAction);
969
969
  }
970
970
 
971
- handleDialogClose() {
971
+ handleDialogClose(confirmed = false) {
972
972
  const {store, stopAutoRefreshWhenModalIsOpen, silentPolling, interval} =
973
973
  this.props;
974
- store.closeDialog();
974
+ store.closeDialog(confirmed);
975
975
 
976
976
  if (stopAutoRefreshWhenModalIsOpen && interval) {
977
977
  this.timer = setTimeout(
@@ -97,7 +97,7 @@ export type DialogSchemaBase = Omit<DialogSchema, 'type'>;
97
97
  export interface DialogProps
98
98
  extends RendererProps,
99
99
  Omit<DialogSchema, 'className'> {
100
- onClose: () => void;
100
+ onClose: (confirmed?: boolean) => void;
101
101
  onConfirm: (
102
102
  values: Array<object>,
103
103
  action: Action,
@@ -214,12 +214,12 @@ export default class Dialog extends React.Component<DialogProps> {
214
214
  return ret;
215
215
  }
216
216
 
217
- handleSelfClose() {
217
+ handleSelfClose(e?: any, confirmed?: boolean) {
218
218
  const {onClose, store} = this.props;
219
219
 
220
220
  // clear error
221
221
  store.updateMessage();
222
- onClose();
222
+ onClose(confirmed);
223
223
  }
224
224
 
225
225
  handleAction(e: React.UIEvent<any>, action: Action, data: object) {
@@ -251,7 +251,7 @@ export default class Dialog extends React.Component<DialogProps> {
251
251
  return;
252
252
  }
253
253
 
254
- store.closeDialog();
254
+ store.closeDialog(true);
255
255
  }
256
256
 
257
257
  handleDialogClose(...args: Array<any>) {
@@ -264,7 +264,7 @@ export default class Dialog extends React.Component<DialogProps> {
264
264
  return;
265
265
  }
266
266
 
267
- store.closeDialog();
267
+ store.closeDialog(args[1]);
268
268
  }
269
269
 
270
270
  handleDrawerConfirm(values: object[], action: Action, ...args: Array<any>) {
@@ -743,7 +743,7 @@ export class DialogRenderer extends Dialog {
743
743
  },
744
744
  data,
745
745
  action
746
- ) || this.handleSelfClose();
746
+ ) || this.handleSelfClose(undefined, true);
747
747
  } else if (action.actionType === 'next' || action.actionType === 'prev') {
748
748
  store.setCurrentAction(action);
749
749
  if (action.type === 'submit') {
@@ -755,7 +755,7 @@ export class DialogRenderer extends Dialog {
755
755
  },
756
756
  data,
757
757
  action
758
- ) || this.handleSelfClose();
758
+ ) || this.handleSelfClose(undefined, true);
759
759
  } else {
760
760
  onConfirm([data], action, data, []);
761
761
  }
@@ -769,7 +769,7 @@ export class DialogRenderer extends Dialog {
769
769
  store.setCurrentAction(action);
770
770
  action.target && scoped.reload(action.target, data);
771
771
  if (action.close || action.type === 'submit') {
772
- this.handleSelfClose();
772
+ this.handleSelfClose(undefined, action.type === 'submit');
773
773
  this.closeTarget(action.close);
774
774
  }
775
775
  } else if (this.tryChildrenToHandle(action, data)) {
@@ -304,7 +304,7 @@ export default class Drawer extends React.Component<DrawerProps> {
304
304
  return;
305
305
  }
306
306
 
307
- store.closeDialog();
307
+ store.closeDialog(true);
308
308
  }
309
309
 
310
310
  handleDialogClose(...args: Array<any>) {
@@ -317,7 +317,7 @@ export default class Drawer extends React.Component<DrawerProps> {
317
317
  return;
318
318
  }
319
319
 
320
- store.closeDialog();
320
+ store.closeDialog(args[1]);
321
321
  }
322
322
 
323
323
  handleChildFinished(value: any, action: Action) {
@@ -436,12 +436,12 @@ export class FormItemWrap extends React.Component<FormItemProps> {
436
436
  }
437
437
 
438
438
  @autobind
439
- handleDialogClose() {
439
+ handleDialogClose(confirmed = false) {
440
440
  const {formItem: model} = this.props;
441
441
  if (!model) {
442
442
  return;
443
443
  }
444
- model.closeDialog();
444
+ model.closeDialog(confirmed);
445
445
  }
446
446
 
447
447
  renderControl(): JSX.Element | null {
@@ -1167,9 +1167,9 @@ export default class Form extends React.Component<FormProps, object> {
1167
1167
  store.closeDialog(true);
1168
1168
  }
1169
1169
 
1170
- handleDialogClose() {
1170
+ handleDialogClose(confirmed = false) {
1171
1171
  const {store} = this.props;
1172
- store.closeDialog(false);
1172
+ store.closeDialog(confirmed);
1173
1173
  }
1174
1174
 
1175
1175
  handleDrawerConfirm(
@@ -95,7 +95,7 @@ export interface PageSchema extends BaseSchema {
95
95
  */
96
96
  asideMinWidth?: number;
97
97
 
98
- /**
98
+ /**
99
99
  * 边栏最小宽度
100
100
  */
101
101
  asideMaxWidth?: number;
@@ -471,12 +471,12 @@ export default class Page extends React.Component<PageProps> {
471
471
  return;
472
472
  }
473
473
 
474
- store.closeDialog();
474
+ store.closeDialog(true);
475
475
  }
476
476
 
477
- handleDialogClose() {
477
+ handleDialogClose(confirmed = false) {
478
478
  const {store} = this.props;
479
- store.closeDialog();
479
+ store.closeDialog(confirmed);
480
480
  }
481
481
 
482
482
  handleDrawerConfirm(values: object[], action: Action, ...args: Array<any>) {
@@ -734,11 +734,13 @@ export default class Page extends React.Component<PageProps> {
734
734
  style={styleVar}
735
735
  >
736
736
  {hasAside ? (
737
- <div className={cx(
738
- `Page-aside`,
739
- asideResizor ? 'relative' : 'Page-aside--withWidth',
740
- asideClassName
741
- )}>
737
+ <div
738
+ className={cx(
739
+ `Page-aside`,
740
+ asideResizor ? 'relative' : 'Page-aside--withWidth',
741
+ asideClassName
742
+ )}
743
+ >
742
744
  {render('aside', aside || '', {
743
745
  ...subProps,
744
746
  ...(typeof aside === 'string'
@@ -754,7 +756,6 @@ export default class Page extends React.Component<PageProps> {
754
756
  className={cx(`Page-asideResizor`)}
755
757
  ></div>
756
758
  ) : null}
757
-
758
759
  </div>
759
760
  ) : null}
760
761
 
@@ -9,7 +9,8 @@ import {
9
9
  until,
10
10
  isVisible,
11
11
  getScrollParent,
12
- autobind
12
+ autobind,
13
+ SkipOperation
13
14
  } from '../utils/helper';
14
15
  import {isApiOutdated, isEffectiveApi} from '../utils/api';
15
16
  import {IFormStore} from '../store/form';
@@ -546,8 +547,16 @@ export default class Wizard extends React.Component<WizardProps, WizardState> {
546
547
  .then(async () => {
547
548
  this.form && this.form.isValidated() && this.form.validate(true);
548
549
 
549
- if (action.feedback && isVisible(action.feedback, store.data)) {
550
- await this.openFeedback(action.feedback, store.data);
550
+ const feedback = action.feedback;
551
+ if (feedback && isVisible(feedback, store.data)) {
552
+ const confirmed = await this.openFeedback(feedback, store.data);
553
+
554
+ // 如果 feedback 配置了,取消就跳过原有逻辑。
555
+ if (feedback.skipRestOnCancel && !confirmed) {
556
+ throw new SkipOperation();
557
+ } else if (feedback.skipRestOnConfirm && confirmed) {
558
+ throw new SkipOperation();
559
+ }
551
560
  }
552
561
 
553
562
  const reidrect =
@@ -556,7 +565,11 @@ export default class Wizard extends React.Component<WizardProps, WizardState> {
556
565
 
557
566
  action.reload && this.reloadTarget(action.reload, store.data);
558
567
  })
559
- .catch(() => {});
568
+ .catch(reason => {
569
+ if (reason instanceof SkipOperation) {
570
+ return;
571
+ }
572
+ });
560
573
  } else if (action.actionType === 'reload') {
561
574
  action.target && this.reloadTarget(action.target, data);
562
575
  } else if (onAction) {
@@ -667,14 +680,29 @@ export default class Wizard extends React.Component<WizardProps, WizardState> {
667
680
  }
668
681
  }
669
682
  })
670
- .then((value: any) =>
683
+ .then(async (value: any) => {
684
+ const feedback = action.feedback;
685
+ if (feedback && isVisible(feedback, value)) {
686
+ const confirmed = await this.openFeedback(feedback, value);
687
+
688
+ // 如果 feedback 配置了,取消就跳过原有逻辑。
689
+ if (feedback.skipRestOnCancel && !confirmed) {
690
+ throw new SkipOperation();
691
+ } else if (feedback.skipRestOnConfirm && confirmed) {
692
+ throw new SkipOperation();
693
+ }
694
+ }
695
+
671
696
  this.gotoStep(
672
697
  value && typeof value.step === 'number'
673
698
  ? value.step
674
699
  : this.state.currentStep + 1
675
- )
676
- )
677
- .catch(() => {
700
+ );
701
+ })
702
+ .catch(reason => {
703
+ if (reason instanceof SkipOperation) {
704
+ return;
705
+ }
678
706
  // do nothing
679
707
  });
680
708
  } else {
@@ -715,7 +743,19 @@ export default class Wizard extends React.Component<WizardProps, WizardState> {
715
743
  );
716
744
  }
717
745
  })
718
- .then(value => {
746
+ .then(async value => {
747
+ const feedback = action.feedback;
748
+ if (feedback && isVisible(feedback, value)) {
749
+ const confirmed = await this.openFeedback(feedback, value);
750
+
751
+ // 如果 feedback 配置了,取消就跳过原有逻辑。
752
+ if (feedback.skipRestOnCancel && !confirmed) {
753
+ throw new SkipOperation();
754
+ } else if (feedback.skipRestOnConfirm && confirmed) {
755
+ throw new SkipOperation();
756
+ }
757
+ }
758
+
719
759
  this.setState({completeStep: steps.length});
720
760
  store.updateData({
721
761
  ...store.data,
@@ -771,13 +811,13 @@ export default class Wizard extends React.Component<WizardProps, WizardState> {
771
811
  store.updateData(values[0]);
772
812
  }
773
813
 
774
- store.closeDialog();
814
+ store.closeDialog(true);
775
815
  }
776
816
 
777
817
  @autobind
778
- handleDialogClose() {
818
+ handleDialogClose(confirmed = false) {
779
819
  const {store} = this.props;
780
- store.closeDialog();
820
+ store.closeDialog(confirmed);
781
821
  }
782
822
 
783
823
  renderSteps() {