amis 1.5.6-beta.4 → 1.5.6-beta.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 (159) hide show
  1. package/lib/Schema.d.ts +1 -1
  2. package/lib/Schema.js.map +1 -1
  3. package/lib/components/AsideNav.d.ts +1 -1
  4. package/lib/components/AsideNav.js.map +1 -1
  5. package/lib/components/CodeMirror.d.ts +26 -0
  6. package/lib/components/CodeMirror.js +104 -0
  7. package/lib/components/CodeMirror.js.map +13 -0
  8. package/lib/components/Collapse.d.ts +22 -21
  9. package/lib/components/Collapse.js.map +2 -2
  10. package/lib/components/ColorPicker.d.ts +85 -84
  11. package/lib/components/ColorPicker.js +15 -3
  12. package/lib/components/ColorPicker.js.map +2 -2
  13. package/lib/components/DatePicker.js +7 -3
  14. package/lib/components/DatePicker.js.map +2 -2
  15. package/lib/components/DateRangePicker.d.ts +85 -84
  16. package/lib/components/DateRangePicker.js +5 -3
  17. package/lib/components/DateRangePicker.js.map +2 -2
  18. package/lib/components/MonthRangePicker.d.ts +85 -84
  19. package/lib/components/MonthRangePicker.js +5 -3
  20. package/lib/components/MonthRangePicker.js.map +2 -2
  21. package/lib/components/PickerContainer.d.ts +2 -1
  22. package/lib/components/PickerContainer.js +3 -3
  23. package/lib/components/PickerContainer.js.map +2 -2
  24. package/lib/components/PopUp.d.ts +93 -0
  25. package/lib/components/PopUp.js +58 -0
  26. package/lib/components/PopUp.js.map +13 -0
  27. package/lib/components/Steps.d.ts +1 -0
  28. package/lib/components/Steps.js +5 -3
  29. package/lib/components/Steps.js.map +2 -2
  30. package/lib/components/TabsTransferPicker.js +1 -1
  31. package/lib/components/TabsTransferPicker.js.map +2 -2
  32. package/lib/components/TransferPicker.d.ts +0 -1
  33. package/lib/components/TransferPicker.js +2 -15
  34. package/lib/components/TransferPicker.js.map +2 -2
  35. package/lib/components/formula/Editor.d.ts +560 -0
  36. package/lib/components/formula/Editor.js +186 -0
  37. package/lib/components/formula/Editor.js.map +13 -0
  38. package/lib/components/formula/FuncList.d.ts +67 -0
  39. package/lib/components/formula/FuncList.js +35 -0
  40. package/lib/components/formula/FuncList.js.map +13 -0
  41. package/lib/components/formula/Picker.d.ts +493 -0
  42. package/lib/components/formula/Picker.js +48 -0
  43. package/lib/components/formula/Picker.js.map +13 -0
  44. package/lib/components/formula/VariableList.d.ts +9 -0
  45. package/lib/components/formula/VariableList.js +15 -0
  46. package/lib/components/formula/VariableList.js.map +13 -0
  47. package/lib/components/formula/plugin.d.ts +18 -0
  48. package/lib/components/formula/plugin.js +136 -0
  49. package/lib/components/formula/plugin.js.map +13 -0
  50. package/lib/helper.css +57 -57
  51. package/lib/helper.css.map +1 -1
  52. package/lib/index.d.ts +1 -0
  53. package/lib/index.js +2 -1
  54. package/lib/index.js.map +2 -2
  55. package/lib/renderers/Form/InputColor.d.ts +84 -84
  56. package/lib/renderers/Form/InputColor.js +2 -2
  57. package/lib/renderers/Form/InputColor.js.map +2 -2
  58. package/lib/renderers/Form/InputDate.js +2 -2
  59. package/lib/renderers/Form/InputDate.js.map +2 -2
  60. package/lib/renderers/Form/InputDateRange.js +2 -2
  61. package/lib/renderers/Form/InputDateRange.js.map +2 -2
  62. package/lib/renderers/Form/InputFormula.d.ts +35 -0
  63. package/lib/renderers/Form/InputFormula.js +25 -0
  64. package/lib/renderers/Form/InputFormula.js.map +13 -0
  65. package/lib/renderers/Form/InputMonthRange.js +2 -2
  66. package/lib/renderers/Form/InputMonthRange.js.map +2 -2
  67. package/lib/renderers/Form/InputQuarterRange.js +2 -2
  68. package/lib/renderers/Form/InputQuarterRange.js.map +2 -2
  69. package/lib/renderers/Form/InputYearRange.js +2 -2
  70. package/lib/renderers/Form/InputYearRange.js.map +2 -2
  71. package/lib/renderers/Form/TreeSelect.d.ts +1 -0
  72. package/lib/renderers/Form/TreeSelect.js +11 -8
  73. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  74. package/lib/renderers/Steps.js +2 -2
  75. package/lib/renderers/Steps.js.map +2 -2
  76. package/lib/themes/ang-ie11.css +261 -0
  77. package/lib/themes/ang.css +261 -0
  78. package/lib/themes/ang.css.map +1 -1
  79. package/lib/themes/antd-ie11.css +261 -0
  80. package/lib/themes/antd.css +261 -0
  81. package/lib/themes/antd.css.map +1 -1
  82. package/lib/themes/cxd-ie11.css +261 -0
  83. package/lib/themes/cxd.css +261 -0
  84. package/lib/themes/cxd.css.map +1 -1
  85. package/lib/themes/dark-ie11.css +261 -0
  86. package/lib/themes/dark.css +261 -0
  87. package/lib/themes/dark.css.map +1 -1
  88. package/lib/themes/default.css +261 -0
  89. package/lib/themes/default.css.map +1 -1
  90. package/lib/utils/api.js +2 -2
  91. package/lib/utils/api.js.map +2 -2
  92. package/package.json +4 -2
  93. package/scss/_variables.scss +1 -1
  94. package/scss/components/_formula.scss +122 -0
  95. package/scss/components/_popup.scss +123 -0
  96. package/scss/components/_steps.scss +60 -0
  97. package/scss/components/form/_color.scss +4 -0
  98. package/scss/components/form/_date-range.scss +4 -0
  99. package/scss/components/form/_date.scss +3 -0
  100. package/scss/components/form/_tree-select.scss +4 -0
  101. package/scss/helper/background/_background-color.scss +1 -1
  102. package/scss/helper/border/_border-color.scss +1 -1
  103. package/scss/helper/typography/_text-color.scss +1 -1
  104. package/scss/themes/_common.scss +2 -0
  105. package/sdk/ang-ie11.css +875 -0
  106. package/sdk/ang.css +875 -0
  107. package/sdk/antd-ie11.css +875 -0
  108. package/sdk/antd.css +875 -0
  109. package/sdk/charts.js +15 -15
  110. package/sdk/codemirror.js +14 -0
  111. package/sdk/color-picker.js +65 -65
  112. package/sdk/cropperjs.js +2 -2
  113. package/sdk/cxd-ie11.css +875 -0
  114. package/sdk/cxd.css +875 -0
  115. package/sdk/dark-ie11.css +875 -0
  116. package/sdk/dark.css +875 -0
  117. package/sdk/exceljs.js +1 -1
  118. package/sdk/helper.css +57 -57
  119. package/sdk/helper.css.map +1 -1
  120. package/sdk/markdown.js +69 -69
  121. package/sdk/papaparse.js +1 -1
  122. package/sdk/renderers/Form/CityDB.js +1 -1
  123. package/sdk/rest.js +18 -18
  124. package/sdk/rich-text.js +62 -62
  125. package/sdk/sdk-ie11.css +875 -0
  126. package/sdk/sdk.css +875 -0
  127. package/sdk/sdk.js +1219 -1201
  128. package/sdk/thirds/hls.js/hls.js +1 -1
  129. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  130. package/sdk/tinymce.js +57 -57
  131. package/src/Schema.ts +1 -0
  132. package/src/components/AsideNav.tsx +1 -1
  133. package/src/components/CodeMirror.tsx +99 -0
  134. package/src/components/Collapse.tsx +2 -1
  135. package/src/components/ColorPicker.tsx +45 -3
  136. package/src/components/DatePicker.tsx +33 -3
  137. package/src/components/DateRangePicker.tsx +17 -3
  138. package/src/components/MonthRangePicker.tsx +18 -4
  139. package/src/components/PickerContainer.tsx +10 -6
  140. package/src/components/PopUp.tsx +133 -0
  141. package/src/components/Steps.tsx +8 -3
  142. package/src/components/TabsTransferPicker.tsx +1 -1
  143. package/src/components/TransferPicker.tsx +1 -11
  144. package/src/components/formula/Editor.tsx +261 -0
  145. package/src/components/formula/FuncList.tsx +82 -0
  146. package/src/components/formula/Picker.tsx +86 -0
  147. package/src/components/formula/VariableList.tsx +49 -0
  148. package/src/components/formula/plugin.ts +177 -0
  149. package/src/index.tsx +1 -0
  150. package/src/renderers/Form/InputColor.tsx +2 -3
  151. package/src/renderers/Form/InputDate.tsx +2 -0
  152. package/src/renderers/Form/InputDateRange.tsx +2 -0
  153. package/src/renderers/Form/InputFormula.tsx +75 -0
  154. package/src/renderers/Form/InputMonthRange.tsx +2 -0
  155. package/src/renderers/Form/InputQuarterRange.tsx +2 -0
  156. package/src/renderers/Form/InputYearRange.tsx +2 -0
  157. package/src/renderers/Form/TreeSelect.tsx +82 -63
  158. package/src/renderers/Steps.tsx +4 -2
  159. package/src/utils/api.ts +5 -2
@@ -0,0 +1,75 @@
1
+ import React from 'react';
2
+ import FormItem, {FormBaseControl, FormControlProps} from './Item';
3
+ import FormulaPicker from '../../components/formula/Picker';
4
+ import type {FuncGroup, VariableItem} from '../../components/formula/Editor';
5
+
6
+ /**
7
+ * InputFormula 公式编辑器
8
+ * 文档:https://baidu.gitee.io/amis/docs/components/form/input-formula
9
+ */
10
+ export interface InputFormulaControlSchema extends FormBaseControl {
11
+ type: 'input-formula';
12
+
13
+ /**
14
+ * evalMode 即直接就是表达式,否则
15
+ * 需要 ${这里面才是表达式}
16
+ * 默认为 true
17
+ */
18
+ evalMode?: boolean;
19
+
20
+ /**
21
+ * 用于提示的变量集合,默认为空
22
+ */
23
+ variables: Array<VariableItem>;
24
+
25
+ variableMode?: 'tabs' | 'tree';
26
+
27
+ /**
28
+ * 函数集合,默认不需要传,即 amis-formula 里面那个函数
29
+ * 如果有扩充,则需要传。
30
+ */
31
+ functions: Array<FuncGroup>;
32
+
33
+ /**
34
+ * 顶部标题,默认为表达式
35
+ */
36
+ header: string;
37
+ }
38
+
39
+ export interface InputFormulaProps
40
+ extends FormControlProps,
41
+ Omit<
42
+ InputFormulaControlSchema,
43
+ 'options' | 'inputClassName' | 'className' | 'descriptionClassName'
44
+ > {}
45
+
46
+ @FormItem({
47
+ type: 'input-formula'
48
+ })
49
+ export class InputFormulaRenderer extends React.Component<InputFormulaProps> {
50
+ render() {
51
+ const {
52
+ selectedOptions,
53
+ disabled,
54
+ onChange,
55
+ evalMode,
56
+ variables,
57
+ variableMode,
58
+ functions,
59
+ header
60
+ } = this.props;
61
+
62
+ return (
63
+ <FormulaPicker
64
+ value={selectedOptions}
65
+ disabled={disabled}
66
+ onChange={onChange}
67
+ evalMode={evalMode}
68
+ variables={variables}
69
+ variableMode={variableMode}
70
+ functions={functions}
71
+ header={header}
72
+ />
73
+ );
74
+ }
75
+ }
@@ -170,6 +170,7 @@ export default class MonthRangeControl extends React.Component<MonthRangeProps>
170
170
  maxDuration,
171
171
  data,
172
172
  format,
173
+ env,
173
174
  ...rest
174
175
  } = this.props;
175
176
 
@@ -184,6 +185,7 @@ export default class MonthRangeControl extends React.Component<MonthRangeProps>
184
185
  maxDate={maxDate ? filterDate(maxDate, data, format) : undefined}
185
186
  minDuration={minDuration ? parseDuration(minDuration) : undefined}
186
187
  maxDuration={maxDuration ? parseDuration(maxDuration) : undefined}
188
+ useMobileUI={env.useMobileUI}
187
189
  />
188
190
  </div>
189
191
  );
@@ -26,6 +26,7 @@ export default class QuarterRangeControl extends InputDateRange {
26
26
  maxDuration,
27
27
  data,
28
28
  format,
29
+ env,
29
30
  ...rest
30
31
  } = this.props;
31
32
 
@@ -44,6 +45,7 @@ export default class QuarterRangeControl extends InputDateRange {
44
45
  maxDate={maxDate ? filterDate(maxDate, data, format) : undefined}
45
46
  minDuration={minDuration ? parseDuration(minDuration) : undefined}
46
47
  maxDuration={maxDuration ? parseDuration(maxDuration) : undefined}
48
+ useMobileUI={env.useMobileUI}
47
49
  />
48
50
  </div>
49
51
  );
@@ -26,6 +26,7 @@ export default class YearRangeControl extends InputDateRange {
26
26
  maxDuration,
27
27
  data,
28
28
  format,
29
+ env,
29
30
  ...rest
30
31
  } = this.props;
31
32
 
@@ -44,6 +45,7 @@ export default class YearRangeControl extends InputDateRange {
44
45
  maxDate={maxDate ? filterDate(maxDate, data, format) : undefined}
45
46
  minDuration={minDuration ? parseDuration(minDuration) : undefined}
46
47
  maxDuration={maxDuration ? parseDuration(maxDuration) : undefined}
48
+ useMobileUI={env.useMobileUI}
47
49
  />
48
50
  </div>
49
51
  );
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import Overlay from '../../components/Overlay';
3
3
  import PopOver from '../../components/PopOver';
4
+ import PopUp from '../../components/PopUp';
4
5
 
5
6
  import {
6
7
  OptionsControl,
@@ -17,7 +18,7 @@ import {Api} from '../../types';
17
18
  import {isEffectiveApi} from '../../utils/api';
18
19
  import Spinner from '../../components/Spinner';
19
20
  import ResultBox from '../../components/ResultBox';
20
- import {autobind, getTreeAncestors} from '../../utils/helper';
21
+ import {autobind, getTreeAncestors, isMobile} from '../../utils/helper';
21
22
  import {findDOMNode} from 'react-dom';
22
23
  import {normalizeOptions} from '../../components/Select';
23
24
 
@@ -90,6 +91,7 @@ export interface TreeSelectProps extends OptionsControlProps {
90
91
  hideNodePathLabel?: boolean;
91
92
  enableNodePath?: boolean;
92
93
  pathSeparator?: string;
94
+ useMobileUI?: boolean;
93
95
  }
94
96
 
95
97
  export interface TreeSelectState {
@@ -502,67 +504,51 @@ export default class TreeSelectControl extends React.Component<
502
504
  : options;
503
505
 
504
506
  return (
505
- <Overlay
506
- container={popOverContainer || (() => this.container.current)}
507
- target={() => this.target}
508
- show
509
- >
510
- <PopOver
511
- classPrefix={ns}
512
- className={`${ns}TreeSelect-popover`}
513
- style={{
514
- minWidth: this.target ? this.target.offsetWidth : undefined
515
- }}
516
- onHide={this.close}
517
- overlay
518
- >
519
- <TreeSelector
520
- classPrefix={ns}
521
- onlyChildren={onlyChildren}
522
- labelField={labelField}
523
- valueField={valueField}
524
- disabled={disabled}
525
- onChange={this.handleChange}
526
- joinValues={joinValues}
527
- extractValue={extractValue}
528
- delimiter={delimiter}
529
- placeholder={__(optionsPlaceholder)}
530
- options={filtedOptions}
531
- highlightTxt={this.state.inputValue}
532
- multiple={multiple}
533
- initiallyOpen={initiallyOpen}
534
- unfoldedLevel={unfoldedLevel}
535
- withChildren={withChildren}
536
- rootLabel={__(rootLabel)}
537
- rootValue={rootValue}
538
- showIcon={showIcon}
539
- showRadio={showRadio}
540
- cascade={cascade}
541
- foldedField="collapsed"
542
- hideRoot
543
- value={value || ''}
544
- nodePath={nodePath}
545
- enableNodePath={enableNodePath}
546
- pathSeparator={pathSeparator}
547
- maxLength={maxLength}
548
- minLength={minLength}
549
- onAdd={onAdd}
550
- creatable={creatable}
551
- createTip={createTip}
552
- rootCreatable={rootCreatable}
553
- rootCreateTip={rootCreateTip}
554
- onEdit={onEdit}
555
- editable={editable}
556
- editTip={editTip}
557
- removable={removable}
558
- removeTip={removeTip}
559
- onDelete={onDelete}
560
- bultinCUD={!addControls && !editControls}
561
- onDeferLoad={deferLoad}
562
- onExpandTree={expandTreeOptions}
563
- />
564
- </PopOver>
565
- </Overlay>
507
+ <TreeSelector
508
+ classPrefix={ns}
509
+ onlyChildren={onlyChildren}
510
+ labelField={labelField}
511
+ valueField={valueField}
512
+ disabled={disabled}
513
+ onChange={this.handleChange}
514
+ joinValues={joinValues}
515
+ extractValue={extractValue}
516
+ delimiter={delimiter}
517
+ placeholder={__(optionsPlaceholder)}
518
+ options={filtedOptions}
519
+ highlightTxt={this.state.inputValue}
520
+ multiple={multiple}
521
+ initiallyOpen={initiallyOpen}
522
+ unfoldedLevel={unfoldedLevel}
523
+ withChildren={withChildren}
524
+ rootLabel={__(rootLabel)}
525
+ rootValue={rootValue}
526
+ showIcon={showIcon}
527
+ showRadio={showRadio}
528
+ cascade={cascade}
529
+ foldedField="collapsed"
530
+ hideRoot
531
+ value={value || ''}
532
+ nodePath={nodePath}
533
+ enableNodePath={enableNodePath}
534
+ pathSeparator={pathSeparator}
535
+ maxLength={maxLength}
536
+ minLength={minLength}
537
+ onAdd={onAdd}
538
+ creatable={creatable}
539
+ createTip={createTip}
540
+ rootCreatable={rootCreatable}
541
+ rootCreateTip={rootCreateTip}
542
+ onEdit={onEdit}
543
+ editable={editable}
544
+ editTip={editTip}
545
+ removable={removable}
546
+ removeTip={removeTip}
547
+ onDelete={onDelete}
548
+ bultinCUD={!addControls && !editControls}
549
+ onDeferLoad={deferLoad}
550
+ onExpandTree={expandTreeOptions}
551
+ />
566
552
  );
567
553
  }
568
554
 
@@ -581,9 +567,13 @@ export default class TreeSelectControl extends React.Component<
581
567
  autoComplete,
582
568
  selectedOptions,
583
569
  placeholder,
570
+ popOverContainer,
571
+ env,
584
572
  translate: __
585
573
  } = this.props;
586
574
 
575
+ const { isOpened } = this.state;
576
+ const { useMobileUI } = env;
587
577
  return (
588
578
  <div ref={this.container} className={cx(`TreeSelectControl`, className)}>
589
579
  <ResultBox
@@ -622,7 +612,36 @@ export default class TreeSelectControl extends React.Component<
622
612
  >
623
613
  {loading ? <Spinner size="sm" /> : undefined}
624
614
  </ResultBox>
625
- {this.state.isOpened ? this.renderOuter() : null}
615
+ { !(useMobileUI && isMobile()) && isOpened ? (
616
+ <Overlay
617
+ container={popOverContainer || (() => this.container.current)}
618
+ target={() => this.target}
619
+ show
620
+ >
621
+ <PopOver
622
+ classPrefix={ns}
623
+ className={`${ns}TreeSelect-popover`}
624
+ style={{
625
+ minWidth: this.target ? this.target.offsetWidth : undefined
626
+ }}
627
+ onHide={this.close}
628
+ overlay
629
+ >
630
+ {this.renderOuter()}
631
+ </PopOver>
632
+ </Overlay>
633
+ ) : null}
634
+ {
635
+ useMobileUI && isMobile() && (
636
+ <PopUp
637
+ className={cx(`${ns}TreeSelect-popup`)}
638
+ isShow={isOpened}
639
+ onHide={this.close}
640
+ >
641
+ {this.renderOuter()}
642
+ </PopUp>
643
+ )
644
+ }
626
645
  </div>
627
646
  );
628
647
  }
@@ -83,9 +83,10 @@ export function StepsCmpt(props: StepsProps) {
83
83
  data,
84
84
  source,
85
85
  config,
86
- render
86
+ render,
87
+ env
87
88
  } = props;
88
-
89
+
89
90
  const stepsRow =
90
91
  (resolveVariable(source, data) as Array<StepSchema>) ||
91
92
  config ||
@@ -140,6 +141,7 @@ export function StepsCmpt(props: StepsProps) {
140
141
  className={className}
141
142
  status={status}
142
143
  mode={mode}
144
+ useMobileUI={env.useMobileUI}
143
145
  ></Steps>
144
146
  );
145
147
  }
package/src/utils/api.ts CHANGED
@@ -98,14 +98,17 @@ export function buildApi(
98
98
  if (~idx) {
99
99
  const hashIdx = api.url.indexOf('#');
100
100
  const params = qsparse(
101
- api.url.substring(idx + 1, ~hashIdx ? hashIdx : undefined)
101
+ api.url.substring(
102
+ idx + 1,
103
+ ~hashIdx && hashIdx > idx ? hashIdx : undefined
104
+ )
102
105
  );
103
106
  api.url =
104
107
  tokenize(api.url.substring(0, idx + 1), data, '| url_encode') +
105
108
  qsstringify(
106
109
  (api.query = dataMapping(params, data, undefined, api.convertKeyToPath))
107
110
  ) +
108
- (~hashIdx ? api.url.substring(hashIdx) : '');
111
+ (~hashIdx && hashIdx > idx ? api.url.substring(hashIdx) : '');
109
112
  } else {
110
113
  api.url = tokenize(api.url, data, '| url_encode');
111
114
  }