@nutui/nutui-react-taro 3.0.19-cpp.22 → 3.0.19-cpp.22-1

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.
@@ -20,6 +20,7 @@ var _typings = require("../../utils/typings");
20
20
  var _index = require("../configprovider/index");
21
21
  var _types = require("../../types");
22
22
  var _platform = require("../../utils/taro/platform");
23
+ var _shouldrenderpriceraw = require("../../utils/should-render-price-raw");
23
24
  var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _typings.ComponentDefaults), {
24
25
  color: 'primary',
25
26
  price: 0,
@@ -34,10 +35,17 @@ var Price = function Price(props) {
34
35
  var _$_object_spread = (0, _object_spread._)({}, defaultProps, props), color = _$_object_spread.color, originalPrice = _$_object_spread.price, symbol = _$_object_spread.symbol, digits = _$_object_spread.digits, thousands = _$_object_spread.thousands, position = _$_object_spread.position, size = _$_object_spread.size, line = _$_object_spread.line, className = _$_object_spread.className, style = _$_object_spread.style;
35
36
  var classPrefix = 'nut-price';
36
37
  var rtl = (0, _index.useRtl)();
38
+ var isRenderPriceRaw = (0, _react.useMemo)(function() {
39
+ return typeof originalPrice === 'string' && (0, _shouldrenderpriceraw.shouldRenderPriceAsRaw)(originalPrice);
40
+ }, [
41
+ originalPrice
42
+ ]);
37
43
  var price = (0, _react.useMemo)(function() {
44
+ if (isRenderPriceRaw) return '';
38
45
  return originalPrice.toString().replace(/[^\d.]/g, '');
39
46
  }, [
40
- originalPrice
47
+ originalPrice,
48
+ isRenderPriceRaw
41
49
  ]);
42
50
  var isCustomPriceColor = (0, _react.useMemo)(function() {
43
51
  var specificPriceColor = Object.values(_types.PriceColorEnum);
@@ -118,12 +126,15 @@ var Price = function Price(props) {
118
126
  style: priceColorStyle
119
127
  }, formatDecimal(price))) : null, symbol && position === 'after' ? renderSymbol() : null);
120
128
  };
129
+ var renderRawContent = function renderRawContent() {
130
+ return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, originalPrice);
131
+ };
121
132
  return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, (0, _platform.harmony)() || process.env.TARO_ENV === 'dynamic' ? /*#__PURE__*/ _react.default.createElement(_components.Text, {
122
133
  className: "".concat(classPrefix, " ").concat(classPrefix, "-").concat(color, " ").concat(className),
123
134
  style: style
124
- }, renderInner()) : /*#__PURE__*/ _react.default.createElement(_components.View, {
135
+ }, isRenderPriceRaw ? renderRawContent() : renderInner()) : /*#__PURE__*/ _react.default.createElement(_components.View, {
125
136
  className: "".concat(classPrefix, " ").concat(classPrefix, "-").concat(color, " ").concat(className),
126
137
  style: style
127
- }, renderInner()));
138
+ }, isRenderPriceRaw ? renderRawContent() : renderInner()));
128
139
  };
129
140
  Price.displayName = 'NutPrice';
@@ -0,0 +1 @@
1
+ export declare function shouldRenderPriceAsRaw(s: string): boolean;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "shouldRenderPriceAsRaw", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return shouldRenderPriceAsRaw;
9
+ }
10
+ });
11
+ var CJK = /[\u4E00-\u9FFF]/;
12
+ var RE_NUM = /\d+(?:\.\d+)?/g;
13
+ function hasNoExtractablePrice(s) {
14
+ var t = s.trim();
15
+ if (!t) return true;
16
+ if (!/\d/.test(t)) return true;
17
+ if (t.replace(/[^\d.]/g, '') === '') return true;
18
+ return false;
19
+ }
20
+ function shouldRenderPriceAsRaw(s) {
21
+ if (hasNoExtractablePrice(s)) {
22
+ return true;
23
+ }
24
+ var t = s.trim();
25
+ if (!CJK.test(t)) return false;
26
+ var matches = Array.from(t.matchAll(RE_NUM));
27
+ if (matches.length < 2) return false;
28
+ var a = matches[0];
29
+ var b = matches[1];
30
+ var i0 = a.index;
31
+ var i1 = b.index;
32
+ var between = t.slice(i0 + a[0].length, i1);
33
+ return CJK.test(between);
34
+ }
@@ -8,6 +8,7 @@ import { ComponentDefaults } from "../../utils/typings";
8
8
  import { useRtl } from "../configprovider/index";
9
9
  import { PriceColorEnum } from "../../types";
10
10
  import { harmony } from "../../utils/taro/platform";
11
+ import { shouldRenderPriceAsRaw } from "../../utils/should-render-price-raw";
11
12
  var defaultProps = _object_spread_props(_object_spread({}, ComponentDefaults), {
12
13
  color: 'primary',
13
14
  price: 0,
@@ -22,10 +23,17 @@ export var Price = function(props) {
22
23
  var _$_object_spread = _object_spread({}, defaultProps, props), color = _$_object_spread.color, originalPrice = _$_object_spread.price, symbol = _$_object_spread.symbol, digits = _$_object_spread.digits, thousands = _$_object_spread.thousands, position = _$_object_spread.position, size = _$_object_spread.size, line = _$_object_spread.line, className = _$_object_spread.className, style = _$_object_spread.style;
23
24
  var classPrefix = 'nut-price';
24
25
  var rtl = useRtl();
26
+ var isRenderPriceRaw = useMemo(function() {
27
+ return typeof originalPrice === 'string' && shouldRenderPriceAsRaw(originalPrice);
28
+ }, [
29
+ originalPrice
30
+ ]);
25
31
  var price = useMemo(function() {
32
+ if (isRenderPriceRaw) return '';
26
33
  return originalPrice.toString().replace(/[^\d.]/g, '');
27
34
  }, [
28
- originalPrice
35
+ originalPrice,
36
+ isRenderPriceRaw
29
37
  ]);
30
38
  var isCustomPriceColor = useMemo(function() {
31
39
  var specificPriceColor = Object.values(PriceColorEnum);
@@ -106,12 +114,15 @@ export var Price = function(props) {
106
114
  style: priceColorStyle
107
115
  }, formatDecimal(price))) : null, symbol && position === 'after' ? renderSymbol() : null);
108
116
  };
117
+ var renderRawContent = function() {
118
+ return /*#__PURE__*/ React.createElement(React.Fragment, null, originalPrice);
119
+ };
109
120
  return /*#__PURE__*/ React.createElement(React.Fragment, null, harmony() || process.env.TARO_ENV === 'dynamic' ? /*#__PURE__*/ React.createElement(Text, {
110
121
  className: "".concat(classPrefix, " ").concat(classPrefix, "-").concat(color, " ").concat(className),
111
122
  style: style
112
- }, renderInner()) : /*#__PURE__*/ React.createElement(View, {
123
+ }, isRenderPriceRaw ? renderRawContent() : renderInner()) : /*#__PURE__*/ React.createElement(View, {
113
124
  className: "".concat(classPrefix, " ").concat(classPrefix, "-").concat(color, " ").concat(className),
114
125
  style: style
115
- }, renderInner()));
126
+ }, isRenderPriceRaw ? renderRawContent() : renderInner()));
116
127
  };
117
128
  Price.displayName = 'NutPrice';
@@ -0,0 +1 @@
1
+ export declare function shouldRenderPriceAsRaw(s: string): boolean;
@@ -0,0 +1,24 @@
1
+ var CJK = /[\u4E00-\u9FFF]/;
2
+ var RE_NUM = /\d+(?:\.\d+)?/g;
3
+ function hasNoExtractablePrice(s) {
4
+ var t = s.trim();
5
+ if (!t) return true;
6
+ if (!/\d/.test(t)) return true;
7
+ if (t.replace(/[^\d.]/g, '') === '') return true;
8
+ return false;
9
+ }
10
+ export function shouldRenderPriceAsRaw(s) {
11
+ if (hasNoExtractablePrice(s)) {
12
+ return true;
13
+ }
14
+ var t = s.trim();
15
+ if (!CJK.test(t)) return false;
16
+ var matches = Array.from(t.matchAll(RE_NUM));
17
+ if (matches.length < 2) return false;
18
+ var a = matches[0];
19
+ var b = matches[1];
20
+ var i0 = a.index;
21
+ var i1 = b.index;
22
+ var between = t.slice(i0 + a[0].length, i1);
23
+ return CJK.test(between);
24
+ }
@@ -39842,6 +39842,30 @@
39842
39842
  return PriceColorEnum2;
39843
39843
  }({});
39844
39844
  var destroyList = [];
39845
+ var CJK = /[\u4E00-\u9FFF]/;
39846
+ var RE_NUM = /\d+(?:\.\d+)?/g;
39847
+ function hasNoExtractablePrice(s) {
39848
+ var t = s.trim();
39849
+ if (!t) return true;
39850
+ if (!/\d/.test(t)) return true;
39851
+ if (t.replace(/[^\d.]/g, "") === "") return true;
39852
+ return false;
39853
+ }
39854
+ function shouldRenderPriceAsRaw(s) {
39855
+ if (hasNoExtractablePrice(s)) {
39856
+ return true;
39857
+ }
39858
+ var t = s.trim();
39859
+ if (!CJK.test(t)) return false;
39860
+ var matches = Array.from(t.matchAll(RE_NUM));
39861
+ if (matches.length < 2) return false;
39862
+ var a = matches[0];
39863
+ var b = matches[1];
39864
+ var i0 = a.index;
39865
+ var i1 = b.index;
39866
+ var between = t.slice(i0 + a[0].length, i1);
39867
+ return CJK.test(between);
39868
+ }
39845
39869
  var defaultProps$f = _object_spread_props(_object_spread({}, ComponentDefaults), {
39846
39870
  color: "primary",
39847
39871
  price: 0,
@@ -39856,10 +39880,17 @@
39856
39880
  var _$_object_spread = _object_spread({}, defaultProps$f, props), color = _$_object_spread.color, originalPrice = _$_object_spread.price, symbol = _$_object_spread.symbol, digits = _$_object_spread.digits, thousands = _$_object_spread.thousands, position2 = _$_object_spread.position, size = _$_object_spread.size, line = _$_object_spread.line, className = _$_object_spread.className, style = _$_object_spread.style;
39857
39881
  var classPrefix2 = "nut-price";
39858
39882
  var rtl = useRtl();
39883
+ var isRenderPriceRaw = React.useMemo(function() {
39884
+ return typeof originalPrice === "string" && shouldRenderPriceAsRaw(originalPrice);
39885
+ }, [
39886
+ originalPrice
39887
+ ]);
39859
39888
  var price = React.useMemo(function() {
39889
+ if (isRenderPriceRaw) return "";
39860
39890
  return originalPrice.toString().replace(/[^\d.]/g, "");
39861
39891
  }, [
39862
- originalPrice
39892
+ originalPrice,
39893
+ isRenderPriceRaw
39863
39894
  ]);
39864
39895
  var isCustomPriceColor = React.useMemo(function() {
39865
39896
  var specificPriceColor = Object.values(PriceColorEnum);
@@ -39940,13 +39971,16 @@
39940
39971
  style: priceColorStyle
39941
39972
  }, formatDecimal(price))) : null, symbol && position2 === "after" ? renderSymbol() : null);
39942
39973
  };
39974
+ var renderRawContent = function() {
39975
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, originalPrice);
39976
+ };
39943
39977
  return /* @__PURE__ */ React.createElement(React.Fragment, null, harmony() || process.env.TARO_ENV === "dynamic" ? /* @__PURE__ */ React.createElement(components.Text, {
39944
39978
  className: "".concat(classPrefix2, " ").concat(classPrefix2, "-").concat(color, " ").concat(className),
39945
39979
  style
39946
- }, renderInner()) : /* @__PURE__ */ React.createElement(components.View, {
39980
+ }, isRenderPriceRaw ? renderRawContent() : renderInner()) : /* @__PURE__ */ React.createElement(components.View, {
39947
39981
  className: "".concat(classPrefix2, " ").concat(classPrefix2, "-").concat(color, " ").concat(className),
39948
39982
  style
39949
- }, renderInner()));
39983
+ }, isRenderPriceRaw ? renderRawContent() : renderInner()));
39950
39984
  };
39951
39985
  Price.displayName = "NutPrice";
39952
39986
  var defaultProps$e = {