taro-react-uilib 1.2.2 → 1.3.0-0

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 (70) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/components/AmountInput/index.js +2 -0
  3. package/dist/components/AmountInput/index.js.map +1 -0
  4. package/dist/components/AmountKeyboard/index.js +2 -0
  5. package/dist/components/AmountKeyboard/index.js.map +1 -0
  6. package/dist/components/Badge/index.js +2 -0
  7. package/dist/components/Badge/index.js.map +1 -0
  8. package/dist/components/Button/DotJump.js +2 -0
  9. package/dist/components/Button/DotJump.js.map +1 -0
  10. package/dist/components/Button/index.js +1 -1
  11. package/dist/components/Button/index.js.map +1 -1
  12. package/dist/components/Collapse/index.js +2 -0
  13. package/dist/components/Collapse/index.js.map +1 -0
  14. package/dist/components/Picker/Picker.js +1 -1
  15. package/dist/components/Picker/Picker.js.map +1 -1
  16. package/dist/components/Picker/PickerSlot.js +2 -0
  17. package/dist/components/Picker/PickerSlot.js.map +1 -0
  18. package/dist/components/Picker/index.js +1 -1
  19. package/dist/components/Picker/index.js.map +1 -1
  20. package/dist/components/src/index.js +1 -1
  21. package/dist/components/src/utils/index.js.map +1 -1
  22. package/dist/index.js +6 -7
  23. package/dist/index.js.map +1 -1
  24. package/dist/index.umd.js +6 -7
  25. package/dist/index.umd.js.map +1 -1
  26. package/dist/styles/components/amountinput.scss +107 -0
  27. package/dist/styles/components/amountkeyboard.scss +127 -0
  28. package/dist/styles/components/badge.scss +11 -0
  29. package/dist/styles/components/button.scss +5 -0
  30. package/dist/styles/components/collapse.scss +17 -0
  31. package/dist/styles/components/images/closeKeyboard.png +0 -0
  32. package/dist/styles/components/index.scss +4 -1
  33. package/dist/styles/components/picker.scss +99 -0
  34. package/dist/styles/components/space.scss +2 -6
  35. package/lib/components/AmountInput/index.js +51 -0
  36. package/lib/components/AmountInput/index.js.map +1 -0
  37. package/lib/components/AmountKeyboard/index.js +97 -0
  38. package/lib/components/AmountKeyboard/index.js.map +1 -0
  39. package/lib/components/Badge/index.js +11 -0
  40. package/lib/components/Badge/index.js.map +1 -0
  41. package/lib/components/Button/DotJump.js +13 -0
  42. package/lib/components/Button/DotJump.js.map +1 -0
  43. package/lib/components/Button/index.js +6 -3
  44. package/lib/components/Button/index.js.map +1 -1
  45. package/lib/components/Collapse/index.js +43 -0
  46. package/lib/components/Collapse/index.js.map +1 -0
  47. package/lib/components/Picker/Picker.js +3 -3
  48. package/lib/components/Picker/Picker.js.map +1 -1
  49. package/lib/components/{PickerSlot/index.js → Picker/PickerSlot.js} +6 -6
  50. package/lib/components/Picker/PickerSlot.js.map +1 -0
  51. package/lib/components/Picker/index.js +3 -2
  52. package/lib/components/Picker/index.js.map +1 -1
  53. package/lib/index.js +4 -0
  54. package/lib/index.js.map +1 -1
  55. package/lib/utils/index.js +12 -0
  56. package/lib/utils/index.js.map +1 -1
  57. package/package.json +1 -1
  58. package/types/components/Button/DotJump.d.ts +7 -0
  59. package/types/components/Button/index.d.ts +3 -0
  60. package/types/components/Captcha/index.d.ts +1 -1
  61. package/types/components/Collapse/index.d.ts +12 -0
  62. package/types/components/Picker/Picker.d.ts +3 -3
  63. package/types/components/Picker/PickerSlot.d.ts +24 -0
  64. package/types/components/Picker/index.d.ts +4 -5
  65. package/types/index.d.ts +4 -0
  66. package/types/utils/index.d.ts +1 -0
  67. package/dist/components/PickerSlot/index.js +0 -2
  68. package/dist/components/PickerSlot/index.js.map +0 -1
  69. package/dist/styles/components/pickerslot.scss +0 -98
  70. package/lib/components/PickerSlot/index.js.map +0 -1
@@ -0,0 +1,107 @@
1
+ @import "../../styles/themes/variable.scss";
2
+
3
+ #{$xh-prefix}-amount-input {
4
+ display: flex;
5
+ padding: 0 40px;
6
+ flex-direction: column;
7
+ background-color: #FFF;
8
+ &-top {
9
+ display: flex;
10
+ justify-content: space-between;
11
+ width: 100%;
12
+ padding: 32px 0;
13
+ border-bottom: 2px solid #EEE;
14
+ align-items: baseline;
15
+ &-unit {
16
+ font-size: 36px;
17
+ }
18
+ &-amount {
19
+ display: flex;
20
+ align-items: center;
21
+ justify-content: space-between;
22
+ flex: 1;
23
+ height: 128px;
24
+ position: relative;
25
+ &-num {
26
+ font-size: 64px;
27
+ display: flex;
28
+ align-items: center;
29
+ font-family: Bebas Neue-Bold, Bebas Neue;
30
+ color: #333;
31
+ font-weight: bold;
32
+ &-key {
33
+ display: inline-block;
34
+ }
35
+ &-placeholder {
36
+ font-size: 28px;
37
+ font-family: PingFang SC-Regular, PingFang SC;
38
+ font-weight: 400;
39
+ color: #B9B9B9;
40
+ position: absolute;
41
+ left: 32px;
42
+ }
43
+ &-cursor {
44
+ &.focus {
45
+ width: 4px;
46
+ height: 50px;
47
+ background-color: var(--color-primary);
48
+ display: inline-block;
49
+ margin-left: 4px;
50
+ animation: CursorShine 1s linear infinite;
51
+ }
52
+ }
53
+ }
54
+ &-shortcut {
55
+ padding: 0 20px;
56
+ height: 58px;
57
+ display: flex;
58
+ align-items: center;
59
+ font-size: 26px;
60
+ font-family: PingFang SC-Regular, PingFang SC;
61
+ font-weight: 400;
62
+ color: var(--color-primary);
63
+ border-radius: 30px;
64
+ border: 2px solid var(--color-primary);
65
+ }
66
+ }
67
+ }
68
+ &-error {
69
+ font-size: 20px;
70
+ font-family: PingFang SC-Regular, PingFang SC;
71
+ font-weight: 400;
72
+ color: var(--color-warning);
73
+ margin-top: 8px;
74
+ }
75
+ &-bottom {
76
+ color: #999;
77
+ display: flex;
78
+ justify-content: space-between;
79
+ margin: 20px 0;
80
+ &-range {
81
+ font-size: 26px;
82
+ font-family: PingFang SC-Regular, PingFang SC;
83
+ font-weight: 400;
84
+ &-number {
85
+ color: #333;
86
+ display: inline-block;
87
+ }
88
+ }
89
+ &-tip {
90
+ font-size: 24px;
91
+ &-update {
92
+ display: inline-block;
93
+ color: var(--color-primary);
94
+ }
95
+ }
96
+ }
97
+ }
98
+
99
+
100
+ @keyframes CursorShine {
101
+ from {
102
+ opacity: 1;
103
+ }
104
+ to {
105
+ opacity: 0;
106
+ }
107
+ }
@@ -0,0 +1,127 @@
1
+ @import './badge.scss';
2
+ @import './space.scss';
3
+ @import "../../styles/themes/variable.scss";
4
+
5
+ #{$xh-prefix}-amount-keyboard {
6
+ position: fixed;
7
+ bottom: 0;
8
+ left: 0;
9
+ right: 0;
10
+ z-index: 999;
11
+ padding-bottom: constant(safe-area-inset-bottom);
12
+ padding-bottom: env(safe-area-inset-bottom);
13
+ background-color: #FFF;
14
+
15
+ &-header {
16
+ border-top: 1PX solid $border-color;
17
+ display: flex;
18
+ justify-content: flex-start;
19
+ &-wrapper {
20
+ width: 100%;
21
+ &-text {
22
+ font-size: 32px;
23
+ font-family: PingFang SC-Regular, PingFang SC;
24
+ font-weight: 400;
25
+ color: #333333;
26
+ white-space: nowrap;
27
+ overflow-x: auto;
28
+ padding: 0 40px;
29
+ height: 122px;
30
+ display: flex;
31
+ align-items: center;
32
+ width: 100%;
33
+ }
34
+ }
35
+ }
36
+
37
+ &-close {
38
+ align-self: flex-end;
39
+ border: 0;
40
+ text-align: center;
41
+ font-size: 30px;
42
+ font-family: PingFang SC-Regular, PingFang SC;
43
+ font-weight: 400;
44
+ color: $color-primary-dark;
45
+ }
46
+
47
+ &-body {
48
+ width: 100%;
49
+ display: flex;
50
+ flex-wrap: wrap;
51
+ box-sizing: border-box;
52
+ position: relative;
53
+ &-key {
54
+ width: 187px;
55
+ height: 112px;
56
+ box-sizing: border-box;
57
+ display: flex;
58
+ align-items: center;
59
+ justify-content: center;
60
+ background: #ffffff;
61
+ font-size: 42px;
62
+ font-family: DIN Alternate-Bold, DIN Alternate;
63
+ font-weight: bold;
64
+ color: #000000;
65
+ border-right: 1PX solid var(--border-color);
66
+ border-top: 1PX solid var(--border-color);
67
+ &:active {
68
+ background-color: #eee;
69
+ }
70
+ &.delete {
71
+ background-image: url("./images/backspace.png");
72
+ background-size: 25%;
73
+ background-repeat: no-repeat;
74
+ background-position: center;
75
+ box-shadow: none;
76
+ }
77
+ &.close {
78
+ background-image: url("./images/closeKeyboard.png");
79
+ background-size: 25%;
80
+ background-repeat: no-repeat;
81
+ background-position: center;
82
+ box-shadow: none;
83
+ }
84
+ &.none {
85
+ visibility: hidden;
86
+ pointer-events: none;
87
+ }
88
+ &.confirm-fake {
89
+ background: $btn-color;
90
+ position: absolute;
91
+ bottom: 0;
92
+ right: 0;
93
+ width: 192px;
94
+ height: 336px;
95
+ color: #FFF;
96
+ }
97
+ }
98
+ .xh-button-webutton {
99
+ background-color: #fff;
100
+ }
101
+ }
102
+ }
103
+ .slide-up {
104
+ &-enter,
105
+ &-appear {
106
+ opacity: 0;
107
+ transform: translateY(100%);
108
+ }
109
+
110
+ &-enter-active,
111
+ &-appear-active {
112
+ opacity: 1;
113
+ transform: translateY(0);
114
+ transition: transform 0.3s, opacity 0.3s;
115
+ }
116
+
117
+ &-exit {
118
+ opacity: 1;
119
+ transform: translateY(0);
120
+ }
121
+
122
+ &-exit-active {
123
+ opacity: 0;
124
+ transform: translateY(100%);
125
+ transition: transform 0.3s, opacity 0.3s;
126
+ }
127
+ }
@@ -0,0 +1,11 @@
1
+
2
+ @import "../../styles/themes/variable.scss";
3
+
4
+ #{$xh-prefix}-badge {
5
+ padding: 6px 24px;
6
+ border: 1px solid var(--color-primary);
7
+ display: inline-block;
8
+ font-size: 26px;
9
+ border-radius: 30px;
10
+ color: var(--color-primary);
11
+ }
@@ -107,3 +107,8 @@ button.xh-button-primary[type=primary] {
107
107
  }
108
108
  }
109
109
  }
110
+
111
+ #{$xh-prefix}-dot-loading {
112
+ color: currentColor;
113
+ display: inline-block;
114
+ }
@@ -0,0 +1,17 @@
1
+ @import './list.scss';
2
+ @import "../../styles/themes/variable.scss";
3
+
4
+ #{$xh-prefix}-collapse {
5
+ &-summary {
6
+ &.open {
7
+ .xh-list-extra-icon {
8
+ transition: transform 500ms;
9
+ transform: rotate(90deg);
10
+ }
11
+ }
12
+ }
13
+ &-detail {
14
+ overflow: hidden;
15
+ transition: height 500ms;
16
+ }
17
+ }
@@ -1,8 +1,12 @@
1
+ @import './amountinput.scss';
2
+ @import './amountkeyboard.scss';
1
3
  @import './animated.scss';
4
+ @import './badge.scss';
2
5
  @import './bankicon.scss';
3
6
  @import './button.scss';
4
7
  @import './captcha.scss';
5
8
  @import './checkbox.scss';
9
+ @import './collapse.scss';
6
10
  @import './dialog.scss';
7
11
  @import './dialogref.scss';
8
12
  @import './fade.scss';
@@ -15,7 +19,6 @@
15
19
  @import './page.scss';
16
20
  @import './passwordinput.scss';
17
21
  @import './picker.scss';
18
- @import './pickerslot.scss';
19
22
  @import './popup.scss';
20
23
  @import './progress.scss';
21
24
  @import './radio.scss';
@@ -39,4 +39,103 @@
39
39
  }
40
40
  }
41
41
 
42
+ #{$xh-prefix}-picker-list {
43
+ flex: 1;
44
+ position: relative;
45
+ height: 252PX;
46
+ overflow: hidden;
47
+ text-align: center;
48
+ touch-action: none;
49
+
50
+ .xh-picker-list-panel {
51
+ transform-style: preserve-3d;
52
+ }
53
+
54
+ .xh-picker-mask {
55
+ position: absolute;
56
+ top: 0;
57
+ left: 0;
58
+ right: 0;
59
+ bottom: 0;
60
+ background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.4)), linear-gradient(0deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.4));
61
+ background-position: top, bottom;
62
+ background-size: 100% 108PX;
63
+ background-repeat: no-repeat;
64
+ z-index: 3;
65
+ }
66
+
67
+ .xh-picker-indicator {
68
+ position: absolute;
69
+ top: 108PX;
70
+ height: 36PX;
71
+ width: 100%;
72
+ border: #d8d8d8;
73
+ border-left: 0;
74
+ border-right: 0;
75
+ color: #1a1a1a;
76
+ font-size: 4px;
77
+ z-index: 3;
78
+ border-top: 1px solid $border-color;
79
+ border-bottom: 1px solid $border-color;
80
+ }
81
+
82
+ .xh-picker-content,
83
+ .xh-picker-roller {
84
+ position: absolute;
85
+ top: 108PX;
86
+ width: 100%;
87
+ height: 36PX;
88
+ }
89
+
90
+ .xh-picker-content {
91
+ background: #fff;
92
+ z-index: 2;
93
+ overflow: hidden;
94
+ }
95
+
96
+ .xh-picker-item,
97
+ .xh-picker-roller-item {
98
+ white-space: nowrap;
99
+ overflow: hidden;
100
+ text-overflow: ellipsis;
101
+ height: 36PX;
102
+ line-height: 36PX;
103
+ color: #d8d8d8;
104
+ font-size: 14PX;
105
+ text-align: center;
106
+ }
107
+
108
+ .xh-picker-item {
109
+ font-size: 16PX;
110
+ background: #fff;
111
+ }
112
+
113
+ .xh-picker-roller {
114
+ z-index: 1;
115
+ transform-style: preserve-3d;
116
+
117
+ .xh-picker-roller-item {
118
+ backface-visibility: hidden;
119
+ position: absolute;
120
+ top: 0;
121
+ width: 100%;
122
+ color: #333;
123
+ }
124
+
125
+ .xh-picker-roller-item-title {
126
+ display: block;
127
+ width: 100%;
128
+ height: 36PX;
129
+ line-height: 36PX;
130
+ color: #1a1a1a;
131
+ font-size: 16PX;
132
+ }
133
+
134
+ .xh-picker-roller-item-hidden {
135
+ visibility: hidden;
136
+ opacity: 0;
137
+ }
138
+ }
139
+ }
140
+
42
141
 
@@ -1,10 +1,6 @@
1
1
  @import "../../styles/themes/variable.scss";
2
- @import "../../styles/themes/default.scss";
3
- @import "../../styles/themes/animation.scss";
4
2
 
5
- $space-prefix-cls: #{$xh-prefix}-space;
6
- $space-item-prefix-cls: #{$xh-prefix}-space-item;
7
- #{$space-prefix-cls} {
3
+ #{$xh-prefix}-space {
8
4
  display: inline-flex;
9
5
 
10
6
  &-vertical {
@@ -30,7 +26,7 @@ $space-item-prefix-cls: #{$xh-prefix}-space-item;
30
26
  }
31
27
  }
32
28
 
33
- #{$space-prefix-cls} {
29
+ #{$xh-prefix}-space-item {
34
30
  &-rtl {
35
31
  direction: rtl;
36
32
  }
@@ -0,0 +1,51 @@
1
+ import React from "react";
2
+ import { View } from "@tarojs/components";
3
+ import classNames from "classnames";
4
+ import "./index.scss";
5
+ const AmountInput = props => {
6
+ const { value, maxlength = value.length, onFocus, className, focus = false, shortcut = "借全部", step = 100, errTip = "", onUpgrade, minAmount, maxAmount, loanOnekey = () => { }, placeholder = `单笔${minAmount}-${maxAmount}元,${step}的整数倍`, } = props;
7
+ function renderInputs() {
8
+ const Inputs = [""];
9
+ if (value === "")
10
+ return (React.createElement(View, { className: "xh-amount-input-top-amount-num-placeholder" }, placeholder));
11
+ for (let i = 0; i < maxlength; i++) {
12
+ const char = value[i];
13
+ Inputs.push(React.createElement(View, { key: i, className: "xh-amount-input-top-amount-num-key" }, char));
14
+ }
15
+ return Inputs;
16
+ }
17
+ function handlerClick(e) {
18
+ e.stopPropagation();
19
+ onFocus && onFocus(e);
20
+ }
21
+ const cls = classNames("xh-amount-input", className);
22
+ const handleUpgrade = (e) => {
23
+ e.stopPropagation();
24
+ onUpgrade === null || onUpgrade === void 0 ? void 0 : onUpgrade();
25
+ };
26
+ return (React.createElement(View, { className: cls },
27
+ React.createElement(View, { className: "xh-amount-input-top" },
28
+ React.createElement(View, { className: "xh-amount-input-top-unit" }, "\u00A5"),
29
+ React.createElement(View, { className: "xh-amount-input-top-amount", onClick: handlerClick },
30
+ React.createElement(View, { className: "xh-amount-input-top-amount-num" },
31
+ React.createElement(View, { className: "xh-amount-input-top-amount-num-key" }, "\u00A0"),
32
+ renderInputs(),
33
+ React.createElement(View, { className: classNames("xh-amount-input-top-amount-num-cursor", {
34
+ focus,
35
+ }) })),
36
+ React.createElement(View, { className: "xh-amount-input-top-amount-shortcut", onClick: loanOnekey }, shortcut))),
37
+ React.createElement(View, { className: "xh-amount-input-error" }, errTip && errTip),
38
+ React.createElement(View, { className: "xh-amount-input-bottom" },
39
+ React.createElement(View, { className: "xh-amount-input-bottom-range" },
40
+ "\u5355\u7B14\u53EF\u501F\uFF1A",
41
+ React.createElement(View, { className: "xh-amount-input-bottom-range-number" },
42
+ minAmount,
43
+ "-",
44
+ maxAmount,
45
+ "\u5143")),
46
+ React.createElement(View, { className: "xh-amount-input-bottom-tip" },
47
+ "\u989D\u5EA6\u4E0D\u6EE1\u610F\uFF1F",
48
+ React.createElement(View, { className: "xh-amount-input-bottom-tip-update", onClick: handleUpgrade }, "\u7ACB\u5373\u63D0\u989D")))));
49
+ };
50
+ export default AmountInput;
51
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/AmountInput/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ import React, { useState, useEffect, useCallback, } from "react";
2
+ import classNames from "classnames";
3
+ import { CSSTransition } from "react-transition-group";
4
+ import { View } from "@tarojs/components";
5
+ import { pxTransform } from "@/utils";
6
+ import Badge from "../Badge";
7
+ import "./index.scss";
8
+ import Space from "../Space";
9
+ const XHAmountKeys = [
10
+ { text: 1, value: 1, type: "number" },
11
+ { text: 2, value: 2, type: "number" },
12
+ { text: 3, value: 3, type: "number" },
13
+ { text: "", value: "", type: "delete" },
14
+ { text: 4, value: 4, type: "number" },
15
+ { text: 5, value: 5, type: "number" },
16
+ { text: 6, value: 6, type: "number" },
17
+ { text: "", value: "", type: "none" },
18
+ { text: 7, value: 7, type: "number" },
19
+ { text: 8, value: 8, type: "number" },
20
+ { text: 9, value: 9, type: "number" },
21
+ { text: "", value: "", type: "none" },
22
+ { text: "00", value: "00", type: "number" },
23
+ { text: 0, value: 0, type: "number" },
24
+ { text: "", value: "", type: "close" },
25
+ { text: "", value: "", type: "none" },
26
+ ];
27
+ const AmountKeyboard = props => {
28
+ const { onBlur, show, maxLength = Number.MAX_SAFE_INTEGER, closeOnClickSpace = true, onClose, onChange, value, className, onConfirm, recommend = [], header, } = props;
29
+ const [input, setInput] = useState(value);
30
+ useEffect(() => {
31
+ if (closeOnClickSpace) {
32
+ document.addEventListener("click", handleClose);
33
+ }
34
+ return () => {
35
+ document.removeEventListener("click", handleClose);
36
+ };
37
+ }, []);
38
+ useEffect(() => {
39
+ setInput(value);
40
+ }, [value]);
41
+ function handleClose(e) {
42
+ onClose && onClose(e);
43
+ onBlur && onBlur(e);
44
+ }
45
+ const handleOnRecommand = (e, amount) => {
46
+ e.stopPropagation();
47
+ onConfirm === null || onConfirm === void 0 ? void 0 : onConfirm(`${amount}`);
48
+ };
49
+ const handleKeyPress = useCallback((e, { type, value }) => {
50
+ if (process.env.TARO_ENV === "h5") {
51
+ e.stopImmediatePropagation();
52
+ }
53
+ if (type === "none")
54
+ return;
55
+ if (type === "close") {
56
+ handleClose(e);
57
+ return;
58
+ }
59
+ let newInput = input;
60
+ if (type === "delete") {
61
+ newInput = input.slice(0, input.length - 1);
62
+ }
63
+ else if (newInput.replace(/^0+/g, "").length < maxLength) {
64
+ newInput = input + value;
65
+ }
66
+ // 前后两个值相等就不触发onchange
67
+ if (newInput === input)
68
+ return;
69
+ setInput(newInput);
70
+ onChange === null || onChange === void 0 ? void 0 : onChange(newInput);
71
+ }, [input]);
72
+ const handleConfirm = (e) => {
73
+ e.stopPropagation();
74
+ onConfirm === null || onConfirm === void 0 ? void 0 : onConfirm(input);
75
+ };
76
+ const keyboardcls = classNames("xh-amount-keyboard", className);
77
+ return (React.createElement(CSSTransition, { classNames: "slide-up", in: show, unmountOnExit: true, timeout: 200 },
78
+ React.createElement(View, { className: keyboardcls },
79
+ React.createElement(View, { className: "xh-amount-keyboard-header" },
80
+ React.createElement(View, { className: "xh-amount-keyboard-header-wrapper" }, header ||
81
+ (recommend.length > 0 && (React.createElement(View, { className: "xh-amount-keyboard-header-wrapper-text" },
82
+ "\u731C\u60A8\u60F3\u501F",
83
+ " ",
84
+ React.createElement(Space, { style: { marginLeft: pxTransform(24) } }, recommend === null || recommend === void 0 ? void 0 : recommend.map((amount, index) => (React.createElement(View, { key: index, onClick: e => handleOnRecommand(e, amount) },
85
+ React.createElement(Badge, { content: `¥${amount}`, key: index })))))))))),
86
+ React.createElement(View, { className: "xh-amount-keyboard-body" },
87
+ XHAmountKeys.map((key, index) => (React.createElement(View, { key: index, className: classNames("xh-amount-keyboard-body-key", {
88
+ none: key.type === "none",
89
+ delete: key.type === "delete",
90
+ close: key.type === "close",
91
+ }), onClick: e => {
92
+ handleKeyPress(e, key);
93
+ } }, key.text))),
94
+ React.createElement(View, { className: "xh-amount-keyboard-body-key confirm-fake", onClick: handleConfirm }, "\u786E\u5B9A")))));
95
+ };
96
+ export default AmountKeyboard;
97
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/AmountKeyboard/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEZ,QAAQ,EACR,SAAS,EAGT,WAAW,GACZ,MAAM,OAAO,CAAC;AACf,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAe,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,KAAK,MAAM,UAAU,CAAC;AAC7B,OAAO,cAAc,CAAC;AAEtB,OAAO,KAAK,MAAM,UAAU,CAAC;AAwB7B,MAAM,YAAY,GAAW;IAC3B,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;IACrC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;IACrC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;IACrC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACvC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;IACrC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;IACrC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;IACrC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;IACrC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;IACrC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;IACrC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;IACrC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;IACrC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC3C,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;IACrC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;IACtC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;CACtC,CAAC;AAEF,MAAM,cAAc,GAA4B,KAAK,CAAC,EAAE;IACtD,MAAM,EACJ,MAAM,EACN,IAAI,EACJ,SAAS,GAAG,MAAM,CAAC,gBAAgB,EACnC,iBAAiB,GAAG,IAAI,EACxB,OAAO,EACP,QAAQ,EACR,KAAK,EACL,SAAS,EACT,SAAS,EACT,SAAS,GAAG,EAAE,EACd,MAAM,GACP,GAAG,KAAK,CAAC;IACV,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,iBAAiB,EAAE;YACrB,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;SACjD;QAED,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACrD,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,SAAS,WAAW,CAAC,CAAC;QACpB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,MAAM,iBAAiB,GAAG,CAAC,CAAc,EAAE,MAAuB,EAAE,EAAE;QACpE,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAG,GAAG,MAAM,EAAE,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAQ,EAAQ,EAAE;QACjC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI,EAAE;YACjC,CAAC,CAAC,wBAAwB,EAAE,CAAC;SAC9B;QACD,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO;QAE5B,IAAI,IAAI,KAAK,OAAO,EAAE;YACpB,WAAW,CAAC,CAAC,CAAC,CAAC;YACf,OAAO;SACR;QACD,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,IAAI,IAAI,KAAK,QAAQ,EAAE;YACrB,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC7C;aAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,SAAS,EAAE;YAC1D,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;SAC1B;QAED,sBAAsB;QACtB,IAAI,QAAQ,KAAK,KAAK;YAAE,OAAO;QAC/B,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,QAAQ,CAAC,CAAC;IACvB,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,CAAc,EAAE,EAAE;QACvC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAG,KAAK,CAAC,CAAC;IACrB,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,UAAU,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;IAEhE,OAAO,CACL,oBAAC,aAAa,IAAC,UAAU,EAAC,UAAU,EAAC,EAAE,EAAE,IAAI,EAAE,aAAa,QAAC,OAAO,EAAE,GAAG;QACvE,oBAAC,IAAI,IAAC,SAAS,EAAE,WAAW;YAC1B,oBAAC,IAAI,IAAC,SAAS,EAAC,2BAA2B;gBACzC,oBAAC,IAAI,IAAC,SAAS,EAAC,mCAAmC,IAChD,MAAM;oBACL,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACvB,oBAAC,IAAI,IAAC,SAAS,EAAC,wCAAwC;;wBACjD,GAAG;wBACR,oBAAC,KAAK,IAAC,KAAK,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,IAC1C,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CACjC,oBAAC,IAAI,IACH,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC;4BAE1C,oBAAC,KAAK,IAAC,OAAO,EAAE,IAAI,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,GAAI,CACvC,CACR,CAAC,CACI,CACH,CACR,CAAC,CACC,CACF;YACP,oBAAC,IAAI,IAAC,SAAS,EAAC,yBAAyB;gBACtC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAChC,oBAAC,IAAI,IACH,GAAG,EAAE,KAAK,EACV,SAAS,EAAE,UAAU,CAAC,6BAA6B,EAAE;wBACnD,IAAI,EAAE,GAAG,CAAC,IAAI,KAAK,MAAM;wBACzB,MAAM,EAAE,GAAG,CAAC,IAAI,KAAK,QAAQ;wBAC7B,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,OAAO;qBAC5B,CAAC,EACF,OAAO,EAAE,CAAC,CAAC,EAAE;wBACX,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACzB,CAAC,IAEA,GAAG,CAAC,IAAI,CACJ,CACR,CAAC;gBACF,oBAAC,IAAI,IACH,SAAS,EAAC,0CAA0C,EACpD,OAAO,EAAE,aAAa,mBAGjB,CACF,CACF,CACO,CACjB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import classNames from "classnames";
3
+ import { View } from "@tarojs/components";
4
+ import "./index.scss";
5
+ const Badge = props => {
6
+ const { content, children } = props;
7
+ const cls = classNames("xh-badge", classNames);
8
+ return React.createElement(View, { className: cls }, !!children ? children : content);
9
+ };
10
+ export default Badge;
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Badge/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,OAAO,cAAc,CAAC;AAMtB,MAAM,KAAK,GAAyB,KAAK,CAAC,EAAE;IAC1C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACpC,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAE/C,OAAO,oBAAC,IAAI,IAAC,SAAS,EAAE,GAAG,IAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAQ,CAAC;AACxE,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ const DotJump = props => {
3
+ const { style, space = 20 } = props;
4
+ return (React.createElement("div", { className: "xh-dot-loading", style: style },
5
+ React.createElement("svg", { height: "1em", viewBox: "0 0 100 40", style: { verticalAlign: "-0.125em" } },
6
+ React.createElement("g", { stroke: "none", strokeWidth: "1", fill: "none", fillRule: "evenodd" },
7
+ React.createElement("g", { transform: "translate(-100.000000, -71.000000)" },
8
+ React.createElement("g", { transform: "translate(95.000000, 71.000000)" },
9
+ React.createElement("g", { transform: "translate(5.000000, 0.000000)" }, [0, 1, 2].map(i => (React.createElement("rect", { key: i, fill: "currentColor", x: 20 + i * space, y: "16", width: "8", height: "8", rx: "2" },
10
+ React.createElement("animate", { attributeName: "y", from: "16", to: "16", dur: "2s", begin: `${i * 0.2}s`, repeatCount: "indefinite", values: "16; 6; 26; 16; 16", keyTimes: "0; 0.1; 0.3; 0.4; 1" })))))))))));
11
+ };
12
+ export default DotJump;
13
+ //# sourceMappingURL=DotJump.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DotJump.js","sourceRoot":"","sources":["../../../src/components/Button/DotJump.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,OAAO,GAA2B,KAAK,CAAC,EAAE;IAC9C,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IACpC,OAAO,CACL,6BAAK,SAAS,EAAC,gBAAgB,EAAC,KAAK,EAAE,KAAK;QAC1C,6BACE,MAAM,EAAC,KAAK,EACZ,OAAO,EAAC,YAAY,EACpB,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE;YAEpC,2BAAG,MAAM,EAAC,MAAM,EAAC,WAAW,EAAC,GAAG,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAC,SAAS;gBAC7D,2BAAG,SAAS,EAAC,oCAAoC;oBAC/C,2BAAG,SAAS,EAAC,iCAAiC;wBAC5C,2BAAG,SAAS,EAAC,+BAA+B,IACzC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAClB,8BACE,GAAG,EAAE,CAAC,EACN,IAAI,EAAC,cAAc,EACnB,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,KAAK,EACjB,CAAC,EAAC,IAAI,EACN,KAAK,EAAC,GAAG,EACT,MAAM,EAAC,GAAG,EACV,EAAE,EAAC,GAAG;4BAEN,iCACE,aAAa,EAAC,GAAG,EACjB,IAAI,EAAC,IAAI,EACT,EAAE,EAAC,IAAI,EACP,GAAG,EAAC,IAAI,EACR,KAAK,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,EACpB,WAAW,EAAC,YAAY,EACxB,MAAM,EAAC,mBAAmB,EAC1B,QAAQ,EAAC,qBAAqB,GAC9B,CACG,CACR,CAAC,CACA,CACF,CACF,CACF,CACA,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -3,8 +3,9 @@ import classNames from "classnames";
3
3
  import { Button } from "@tarojs/components";
4
4
  import { useTaroEnv } from "../../hooks";
5
5
  import "./index.scss";
6
+ import DotJump from "./DotJump";
6
7
  const XhButton = props => {
7
- const { disabled = false, type = "default", size = "normal", shape = "round", children, className, htmlType, formType, text, openType, lang, sessionFrom, sendMessageTitle, sendMessagePath, sendMessageImg, showMessageCard, appParameter, onGetUserInfo, onGetPhoneNumber, onOpenSetting, onError, onContact, onClick, preventTime = 2500, style, } = props;
8
+ const { disabled = false, type = "default", size = "normal", shape = "round", children, className, htmlType, formType, text, openType, lang, sessionFrom, sendMessageTitle, sendMessagePath, sendMessageImg, showMessageCard, appParameter, onGetUserInfo, onGetPhoneNumber, onOpenSetting, onError, onContact, onClick, preventTime = 2500, style, loading, loadingStyle, loadingSpace, } = props;
8
9
  const state = useTaroEnv();
9
10
  const [preventClick, setPreventClick] = useState(false);
10
11
  const timer = useRef();
@@ -46,13 +47,15 @@ const XhButton = props => {
46
47
  clearTimeout(timer.current);
47
48
  };
48
49
  }, []);
49
- const weButton = (React.createElement(Button, { className: classObj, formType: formType, openType: openType, lang: lang, type: type, sessionFrom: sessionFrom, sendMessageTitle: sendMessageTitle, sendMessagePath: sendMessagePath, sendMessageImg: sendMessageImg, showMessageCard: showMessageCard, appParameter: appParameter, onGetUserInfo: onGetUserInfo, onGetPhoneNumber: onGetPhoneNumber, onOpenSetting: onOpenSetting, onError: onError, onContact: onContact, onClick: handleClick, disabled: disabled, style: style }, children));
50
+ const weButton = (React.createElement(Button, { className: classObj, formType: formType, openType: openType, lang: lang, type: type, sessionFrom: sessionFrom, sendMessageTitle: sendMessageTitle, sendMessagePath: sendMessagePath, sendMessageImg: sendMessageImg, showMessageCard: showMessageCard, appParameter: appParameter, onGetUserInfo: onGetUserInfo, onGetPhoneNumber: onGetPhoneNumber, onOpenSetting: onOpenSetting, onError: onError, onContact: onContact, onClick: handleClick, disabled: disabled, style: style, loading: loading }, children));
50
51
  if (state === "WEAPP") {
51
52
  return weButton;
52
53
  }
53
54
  return (
54
55
  // eslint-disable-next-line react/button-has-type
55
- React.createElement("button", { className: classObj, disabled: disabled, type: htmlType, onClick: disabled ? undefined : handleClick, style: style }, children || text));
56
+ React.createElement("button", { className: classObj, disabled: disabled, type: htmlType, onClick: disabled ? undefined : handleClick, style: style },
57
+ children || text,
58
+ loading && React.createElement(DotJump, { style: loadingStyle, space: loadingSpace })));
56
59
  };
57
60
  export default XhButton;
58
61
  //# sourceMappingURL=index.js.map