@nutui/nutui-react 2.0.0-alpha.14 → 2.0.0-alpha.15

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 (106) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/esm/Card/style/style.css +1 -1
  3. package/dist/esm/Card.js +35 -22
  4. package/dist/esm/ConfigProvider.js +1 -1
  5. package/dist/esm/InfiniteLoading/style/style.css +1 -0
  6. package/dist/esm/{Infiniteloading.js → InfiniteLoading.js} +25 -37
  7. package/dist/esm/Signature/style/index.js +1 -1
  8. package/dist/esm/Signature/style/style.css +1 -1
  9. package/dist/esm/Signature.js +27 -35
  10. package/dist/esm/Tag/style/style.css +1 -1
  11. package/dist/esm/Tag.js +26 -30
  12. package/dist/esm/TimeDetail/style/style.css +1 -1
  13. package/dist/esm/TimeDetail.js +39 -41
  14. package/dist/esm/TimeSelect/style/index.js +0 -1
  15. package/dist/esm/TimeSelect/style/style.css +1 -1
  16. package/dist/esm/TimeSelect.js +91 -114
  17. package/dist/esm/nutui-react.es.js +8 -10
  18. package/dist/esm/types/src/locales/base.d.ts +1 -1
  19. package/dist/esm/types/src/packages/card/card.d.ts +8 -9
  20. package/dist/esm/types/src/packages/card/card.taro.d.ts +8 -9
  21. package/dist/esm/types/src/packages/card/index.d.ts +1 -0
  22. package/dist/esm/types/src/packages/card/index.taro.d.ts +1 -0
  23. package/dist/esm/types/src/packages/configprovider/types.d.ts +1 -1
  24. package/dist/esm/types/src/packages/imagepreview/imagepreview.taro.d.ts +1 -0
  25. package/dist/esm/types/src/packages/infiniteloading/demo.taro.d.ts +2 -2
  26. package/dist/esm/types/src/packages/infiniteloading/index.d.ts +3 -2
  27. package/dist/esm/types/src/packages/infiniteloading/index.taro.d.ts +3 -2
  28. package/dist/esm/types/src/packages/infiniteloading/infiniteloading.d.ts +9 -14
  29. package/dist/esm/types/src/packages/infiniteloading/infiniteloading.taro.d.ts +8 -12
  30. package/dist/esm/types/src/packages/nutui.react.build.d.ts +2 -3
  31. package/dist/esm/types/src/packages/nutui.react.d.ts +2 -4
  32. package/dist/esm/types/src/packages/nutui.react.scss.d.ts +0 -1
  33. package/dist/esm/types/src/packages/nutui.react.taro.d.ts +1 -3
  34. package/dist/esm/types/src/packages/nutui.react.taro.scss.d.ts +0 -1
  35. package/dist/esm/types/src/packages/nutui.taro.react.build.d.ts +1 -2
  36. package/dist/esm/types/src/packages/signature/index.d.ts +1 -0
  37. package/dist/esm/types/src/packages/signature/index.taro.d.ts +1 -0
  38. package/dist/esm/types/src/packages/signature/signature.d.ts +10 -8
  39. package/dist/esm/types/src/packages/signature/signature.taro.d.ts +7 -12
  40. package/dist/esm/types/src/packages/tag/index.d.ts +1 -0
  41. package/dist/esm/types/src/packages/tag/index.taro.d.ts +1 -0
  42. package/dist/esm/types/src/packages/tag/tag.d.ts +4 -6
  43. package/dist/esm/types/src/packages/tag/tag.taro.d.ts +4 -6
  44. package/dist/esm/types/src/packages/timedetail/index.d.ts +1 -2
  45. package/dist/esm/types/src/packages/timedetail/timedetail.d.ts +9 -11
  46. package/dist/esm/types/src/packages/timedetail/timedetail.taro.d.ts +9 -11
  47. package/dist/esm/types/src/packages/timeselect/demo.taro.d.ts +0 -4
  48. package/dist/esm/types/src/packages/timeselect/index.d.ts +1 -0
  49. package/dist/esm/types/src/packages/timeselect/index.taro.d.ts +1 -0
  50. package/dist/esm/types/src/packages/timeselect/timeselect.d.ts +25 -20
  51. package/dist/esm/types/src/packages/timeselect/timeselect.taro.d.ts +25 -20
  52. package/dist/locales/base.d.ts +1 -1
  53. package/dist/locales/base.js +1 -1
  54. package/dist/locales/en-US.js +2 -2
  55. package/dist/locales/id-ID.js +2 -2
  56. package/dist/locales/tr-TR.js +2 -2
  57. package/dist/locales/zh-CN.js +2 -2
  58. package/dist/locales/zh-TW.js +2 -2
  59. package/dist/locales/zh-UG.js +2 -2
  60. package/dist/nutui.react.es.js +556 -605
  61. package/dist/nutui.react.umd.js +556 -605
  62. package/dist/packages/card/card.scss +8 -14
  63. package/dist/packages/infiniteloading/infiniteloading.scss +2 -25
  64. package/dist/packages/signature/signature.scss +1 -18
  65. package/dist/packages/tag/tag.scss +10 -17
  66. package/dist/packages/timedetail/timedetail.scss +12 -37
  67. package/dist/packages/timeselect/timeselect.scss +15 -44
  68. package/dist/style.css +1 -1
  69. package/dist/style.mjs +1 -1
  70. package/dist/styles/themes/default.scss +0 -1
  71. package/dist/styles/variables-jmapp.scss +50 -97
  72. package/dist/styles/variables.scss +51 -98
  73. package/dist/types/index.d.ts +2 -3
  74. package/dist/types/locales/base.d.ts +1 -1
  75. package/dist/types/packages/card/card.d.ts +57 -14
  76. package/dist/types/packages/card/index.d.ts +1 -0
  77. package/dist/types/packages/configprovider/types.d.ts +1 -1
  78. package/dist/types/packages/infiniteloading/index.d.ts +3 -2
  79. package/dist/types/packages/infiniteloading/infiniteloading.d.ts +57 -18
  80. package/dist/types/packages/signature/index.d.ts +1 -0
  81. package/dist/types/packages/signature/signature.d.ts +38 -12
  82. package/dist/types/packages/tag/index.d.ts +1 -0
  83. package/dist/types/packages/tag/tag.d.ts +52 -14
  84. package/dist/types/packages/timedetail/index.d.ts +1 -2
  85. package/dist/types/packages/timedetail/timedetail.d.ts +9 -11
  86. package/dist/types/packages/timeselect/index.d.ts +1 -0
  87. package/dist/types/packages/timeselect/timeselect.d.ts +62 -21
  88. package/package.json +1 -1
  89. package/dist/esm/Infiniteloading/style/style.css +0 -1
  90. package/dist/esm/TimePannel/style/css.js +0 -1
  91. package/dist/esm/TimePannel/style/index.js +0 -2
  92. package/dist/esm/TimePannel/style/style.css +0 -1
  93. package/dist/esm/TimePannel.js +0 -47
  94. package/dist/esm/types/src/packages/timedetail/demo.d.ts +0 -3
  95. package/dist/esm/types/src/packages/timedetail/demo.taro.d.ts +0 -3
  96. package/dist/esm/types/src/packages/timepannel/demo.d.ts +0 -3
  97. package/dist/esm/types/src/packages/timepannel/demo.taro.d.ts +0 -3
  98. package/dist/esm/types/src/packages/timepannel/index.d.ts +0 -2
  99. package/dist/esm/types/src/packages/timepannel/index.taro.d.ts +0 -2
  100. package/dist/esm/types/src/packages/timepannel/timepannel.d.ts +0 -8
  101. package/dist/esm/types/src/packages/timepannel/timepannel.taro.d.ts +0 -8
  102. package/dist/packages/timepannel/timepannel.scss +0 -17
  103. package/dist/types/packages/timepannel/index.d.ts +0 -2
  104. package/dist/types/packages/timepannel/timepannel.d.ts +0 -8
  105. /package/dist/esm/{Infiniteloading → InfiniteLoading}/style/css.js +0 -0
  106. /package/dist/esm/{Infiniteloading → InfiniteLoading}/style/index.js +0 -0
@@ -1,4 +1,3 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
2
  function ownKeys(object, enumerableOnly) {
4
3
  var keys = Object.keys(object);
@@ -21,54 +20,53 @@ function _objectSpread(target) {
21
20
  }
22
21
  return target;
23
22
  }
24
- import React__default, { useState, useEffect } from "react";
25
- import { c as cn } from "./bem.js";
26
- import { useConfig } from "./ConfigProvider.js";
27
- import "@bem-react/classname";
28
- var defaultProps = {
29
- className: "",
30
- currentKey: 0,
31
- currentTime: [],
32
- times: [],
33
- select: function select() {
34
- return null;
23
+ import React__default, { useMemo, useCallback } from "react";
24
+ import classNames from "classnames";
25
+ import { C as ComponentDefaults } from "./typings.js";
26
+ var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
27
+ activeDate: "",
28
+ activeTime: [],
29
+ options: [],
30
+ optionKey: {
31
+ valueKey: "value",
32
+ textKey: "text",
33
+ childrenKey: "children"
34
+ },
35
+ onSelect: function onSelect() {
35
36
  }
36
- };
37
+ });
37
38
  var TimeDetail = function TimeDetail2(props) {
38
- useConfig();
39
- var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), children = _defaultProps$props.children, times = _defaultProps$props.times, className = _defaultProps$props.className, currentKey = _defaultProps$props.currentKey, currentTime = _defaultProps$props.currentTime, select2 = _defaultProps$props.select;
40
- var b = cn("timedetail");
41
- var _useState = useState([]), _useState2 = _slicedToArray(_useState, 2), renderData = _useState2[0], setRenderData = _useState2[1];
42
- useEffect(function() {
43
- var currentData = times.find(function(timesItem) {
44
- return String(timesItem.key) === String(currentKey);
45
- });
46
- var renderData2 = currentData ? currentData.list : [];
47
- setRenderData(renderData2);
48
- }, [times, currentKey]);
49
- var handleTime = function handleTime2(time) {
50
- select2(time);
51
- };
52
- var getDetailClass = function getDetailClass2(item) {
53
- var initClass = "nut-timedetail__item";
54
- var curTimeData = currentTime.find(function(item2) {
55
- return String(item2.key) === String(currentKey);
39
+ var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), options = _defaultProps$props.options, optionKey = _defaultProps$props.optionKey, className = _defaultProps$props.className, activeDate = _defaultProps$props.activeDate, activeTime = _defaultProps$props.activeTime, onSelect2 = _defaultProps$props.onSelect;
40
+ var classPrefix = "nut-timedetail";
41
+ var timeList = useMemo(function() {
42
+ return (options === null || options === void 0 ? void 0 : options.find(function(item) {
43
+ return item[optionKey.valueKey] === activeDate;
44
+ })) || _defineProperty({}, optionKey.childrenKey, []);
45
+ }, [options, optionKey, activeDate]);
46
+ var isActive = useCallback(function(timeKey) {
47
+ var date = activeTime.find(function(item) {
48
+ return item[optionKey.valueKey] === activeDate;
56
49
  });
57
- if (curTimeData && curTimeData.list && curTimeData.list.includes(item)) {
58
- initClass += " nut-timedetail__item-active";
50
+ if (date !== null && date !== void 0 && date[optionKey.childrenKey]) {
51
+ var time = date === null || date === void 0 ? void 0 : date[optionKey.childrenKey].find(function(time2) {
52
+ return time2[optionKey.valueKey] === timeKey;
53
+ });
54
+ return time;
59
55
  }
60
- return initClass;
61
- };
56
+ return false;
57
+ }, [activeTime, optionKey, activeDate]);
62
58
  return React__default.createElement("div", {
63
- className: "".concat(b(), " ").concat(className || "")
64
- }, renderData.map(function(item, index) {
59
+ className: classNames(classPrefix, className)
60
+ }, timeList[optionKey.childrenKey].map(function(item) {
65
61
  return React__default.createElement("span", {
66
- className: getDetailClass(item),
67
- key: item,
62
+ className: classNames("".concat(classPrefix, "__item"), {
63
+ active: isActive(item[optionKey.valueKey])
64
+ }),
65
+ key: item[optionKey.valueKey],
68
66
  onClick: function onClick() {
69
- return handleTime(item);
67
+ return onSelect2(item);
70
68
  }
71
- }, item);
69
+ }, item[optionKey.textKey]);
72
70
  }));
73
71
  };
74
72
  TimeDetail.defaultProps = defaultProps;
@@ -1,4 +1,3 @@
1
1
  import '../../Popup/style'
2
- import '../../TimePannel/style'
3
2
  import '../../TimeDetail/style'
4
3
  import '../../../packages/timeselect/timeselect.scss'
@@ -1 +1 @@
1
- .nut-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--nutui-overlay-bg-color, var(--nutui-gray-7, rgba(0, 0, 0, .7)))}.nut-overlay-fade-enter-active{animation:nut-fade-in}.nut-overlay-fade-enter-active .wrapper .content{background-color:var(--nutui-overlay-content-bg-color, var(--nutui-gray-6, #ffffff));color:var(--nutui-overlay-content-color, var(--nutui-gray-1, #1a1a1a))}.nut-overlay-fade-leave-active{animation:nut-fade-out}.nut-overlay-first-render,.nut-overlay-hidden-render{display:none}@keyframes nut-fade-in{0%{opacity:0}1%{opacity:0}to{opacity:1}}@keyframes nut-fade-out{0%{opacity:1}1%{opacity:1}to{opacity:0}}.nut-popup{position:fixed;max-height:100%;overflow-y:auto;background-color:var(--nutui-gray-6, #ffffff);color:var(--nutui-gray-1, #1a1a1a);-webkit-overflow-scrolling:touch}.nut-popup__close-icon{position:absolute!important;z-index:1;color:var(--nutui-popup-close-icon-color, #969799);cursor:pointer;width:30px;height:30px;display:flex;justify-content:center;align-items:center}.nut-popup__close-icon:active{opacity:.7}.nut-popup__close-icon--top-left{top:var(--nutui-popup-close-icon-margin, 16px);left:var(--nutui-popup-close-icon-margin, 16px)}.nut-popup__close-icon--top-right{top:var(--nutui-popup-close-icon-margin, 16px);right:var(--nutui-popup-close-icon-margin, 16px)}.nut-popup__close-icon--bottom-left{bottom:var(--nutui-popup-close-icon-margin, 16px);left:var(--nutui-popup-close-icon-margin, 16px)}.nut-popup__close-icon--bottom-right{right:var(--nutui-popup-close-icon-margin, 16px);bottom:var(--nutui-popup-close-icon-margin, 16px)}.nut-popup-center{top:50%;left:50%;transform:translate(-50%,-50%)}.nut-popup-center.round{border-radius:var(--nutui-popup-border-radius, 20px)}.nut-popup-bottom{bottom:0;left:0;width:100%}.nut-popup-bottom.round{border-radius:var(--nutui-popup-border-radius, 20px) var(--nutui-popup-border-radius, 20px) 0 0}.nut-popup-right{top:0;right:0}.nut-popup-right.round{border-radius:var(--nutui-popup-border-radius, 20px) 0 0 var(--nutui-popup-border-radius, 20px)}.nut-popup-left{top:0;left:0}.nut-popup-left.round{border-radius:0 var(--nutui-popup-border-radius, 20px) var(--nutui-popup-border-radius, 20px) 0}.nut-popup-top{top:0;left:0;width:100%}.nut-popup-top.round{border-radius:0 0 var(--nutui-popup-border-radius, 20px) var(--nutui-popup-border-radius, 20px)}@keyframes popup-scale-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes popup-scale-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}.nut-popup-slide-default-enter-active{animation-fill-mode:both;animation-name:popup-scale-fade-in;animation-duration:.3s}.nut-popup-slide-default-exit-active{animation-fill-mode:both;animation-name:popup-scale-fade-out;animation-duration:.3s}@keyframes popup-fade-in{0%{opacity:0}to{opacity:1}}@keyframes popup-fade-out{0%{opacity:1}to{opacity:0}}.nut-popup-slide-center-enter-active{animation-fill-mode:both;animation-name:popup-fade-in;animation-duration:.3s}.nut-popup-slide-center-exit-active{animation-fill-mode:both;animation-name:popup-fade-out;animation-duration:.3s}@keyframes popup-slide-top-enter{0%{transform:translate3d(0,-100%,0)}}@keyframes popup-slide-top-exit{to{transform:translate3d(0,-100%,0)}}.nut-popup-slide-top-enter-active,.nut-popup-slide-top-appear-active{transform:translateZ(0);animation-fill-mode:both;animation-name:popup-slide-top-enter;animation-duration:.3s}.nut-popup-slide-top-exit-active{animation-fill-mode:both;animation-name:popup-slide-top-exit;animation-duration:.3s}@keyframes popup-slide-right-enter{0%{transform:translate3d(100%,0,0)}}@keyframes popup-slide-right-exit{to{transform:translate3d(100%,0,0)}}.nut-popup-slide-right-enter-active,.nut-popup-slide-right-appear-active{transform:translateZ(0);animation-fill-mode:both;animation-name:popup-slide-right-enter;animation-duration:.3s}.nut-popup-slide-right-exit{animation-fill-mode:both;animation-name:popup-slide-right-exit;animation-duration:.3s}@keyframes popup-slide-bottom-enter{0%{transform:translate3d(0,100%,0)}}@keyframes slide-bottom-exit{to{transform:translate3d(0,100%,0)}}.nut-popup-slide-bottom-enter-active,.nut-popup-slide-bottom-appear-active{transform:translate(0);animation-fill-mode:both;animation-name:popup-slide-bottom-enter;animation-duration:.3s}.nut-popup-slide-bottom-exit{animation-fill-mode:both;animation-name:slide-bottom-exit;animation-duration:.3s}@keyframes popup-slide-left-enter{0%{transform:translate3d(-100%,0,0)}}@keyframes popup-slide-left-exit{to{transform:translate3d(-100%,0,0)}}.nut-popup-slide-left-enter-active,.nut-popup-slide-left-appear-active{transform:translate(0);animation-fill-mode:both;animation-name:popup-slide-left-enter;animation-duration:.3s}.nut-popup-slide-left-exit-active,.nut-popup-slide-left-exit-done{animation-fill-mode:both;animation-name:popup-slide-left-exit;animation-duration:.3s}.nut-overflow-hidden{overflow:hidden!important}.nut-theme-dark .nut-timepannel{background-color:#141414;color:#828282}.nut-theme-dark .nut-timepannel--curr{background-color:#141414;color:#e6e6e6}.nut-timepannel{height:var(--nutui-timeselect-timepannel-height, 40px);line-height:40px;text-align:center;color:var(--nutui-timeselect-timepannel-text-color, var(--nutui-gray-2, #757575));font-size:var(--nutui-timeselect-timepannel-font-size, var(--nutui-font-size-2, 14px))}.nut-theme-dark .nut-timedetail{background-color:#1f1f1f}.nut-theme-dark .nut-timedetail__detail__list__item{background-color:#0a0a0a;color:#e6e6e6}.nut-theme-dark .nut-timedetail__detail__list__item--curr{color:var(--nutui-timeselect-timedetail-item-cur-text-color, var(--nutui-brand-color, #fa2c19))}.nut-timedetail{display:flex;align-content:flex-start;flex-wrap:wrap;padding:0 0 50px 13px}.nut-timedetail__item{width:100px;height:50px;line-height:50px;text-align:center;margin-right:10px;margin-bottom:10px;background-color:var(--nutui-gray-4, #f4f4f4);color:var(--nutui-gray-1, #1a1a1a);border-radius:5px;font-size:14px;border:1px solid transparent;font-weight:700}.nut-timedetail__item-active{background-color:#fa2c19}.nut-timedetail__item-active{background-color:var(--nutui-brand-color-opacity);border:1px solid var(--nutui-brand-color, #fa2c19);color:var(--nutui-brand-color, #fa2c19)}.nut-theme-dark .nut-timeselect{background-color:#1f1f1f}.nut-theme-dark .nut-timeselect__title{background-color:#1f1f1f;color:#e6e6e6}.nut-theme-dark .nut-timeselect__content-left{background-color:#141414;color:#e6e6e6}.nut-theme-dark .nut-timeselect__content-left .nut-timepannel-active{background-color:#1f1f1f;color:#e6e6e6}.nut-theme-dark .nut-timedetail__item{background-color:#0a0a0a;color:#e6e6e6}.nut-theme-dark .nut-timedetail__item-active{background-color:#fa2c19}.nut-timeselect{background-color:var(--nutui-gray-6, #ffffff);display:flex;flex-direction:column;height:100%}.nut-timeselect__title{height:var(--nutui-timeselect-title-height, 50px);line-height:var(--nutui-timeselect-title-line-height, 50px);margin-bottom:10px;font-size:var(--nutui-timeselect-title-font-size, var(--nutui-font-size-2, 14px));background-color:var(--nutui-gray-6, #ffffff);color:var(--nutui-gray-1, #1a1a1a);text-align:center}.nut-timeselect__content{display:flex;flex:1}.nut-timeselect__content-left{width:140px;min-width:140px;height:100%;overflow:auto;background-color:var(--nutui-gray-5, #f8f8f8);color:var(--nutui-gray-1, #1a1a1a)}.nut-timeselect__content-left .nut-timepannel-active{background-color:var(--nutui-brand-color, #fa2c19)}.nut-timeselect .nut-timepannel-active{background-color:var(--nutui-gray-6, #ffffff);color:var(--nutui-gray-1, #1a1a1a);font-weight:700}
1
+ .nut-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--nutui-overlay-bg-color, var(--nutui-gray-7, rgba(0, 0, 0, .7)))}.nut-overlay-fade-enter-active{animation:nut-fade-in}.nut-overlay-fade-enter-active .wrapper .content{background-color:var(--nutui-overlay-content-bg-color, var(--nutui-gray-6, #ffffff));color:var(--nutui-overlay-content-color, var(--nutui-gray-1, #1a1a1a))}.nut-overlay-fade-leave-active{animation:nut-fade-out}.nut-overlay-first-render,.nut-overlay-hidden-render{display:none}@keyframes nut-fade-in{0%{opacity:0}1%{opacity:0}to{opacity:1}}@keyframes nut-fade-out{0%{opacity:1}1%{opacity:1}to{opacity:0}}.nut-popup{position:fixed;max-height:100%;overflow-y:auto;background-color:var(--nutui-gray-6, #ffffff);color:var(--nutui-gray-1, #1a1a1a);-webkit-overflow-scrolling:touch}.nut-popup__close-icon{position:absolute!important;z-index:1;color:var(--nutui-popup-close-icon-color, #969799);cursor:pointer;width:30px;height:30px;display:flex;justify-content:center;align-items:center}.nut-popup__close-icon:active{opacity:.7}.nut-popup__close-icon--top-left{top:var(--nutui-popup-close-icon-margin, 16px);left:var(--nutui-popup-close-icon-margin, 16px)}.nut-popup__close-icon--top-right{top:var(--nutui-popup-close-icon-margin, 16px);right:var(--nutui-popup-close-icon-margin, 16px)}.nut-popup__close-icon--bottom-left{bottom:var(--nutui-popup-close-icon-margin, 16px);left:var(--nutui-popup-close-icon-margin, 16px)}.nut-popup__close-icon--bottom-right{right:var(--nutui-popup-close-icon-margin, 16px);bottom:var(--nutui-popup-close-icon-margin, 16px)}.nut-popup-center{top:50%;left:50%;transform:translate(-50%,-50%)}.nut-popup-center.round{border-radius:var(--nutui-popup-border-radius, 20px)}.nut-popup-bottom{bottom:0;left:0;width:100%}.nut-popup-bottom.round{border-radius:var(--nutui-popup-border-radius, 20px) var(--nutui-popup-border-radius, 20px) 0 0}.nut-popup-right{top:0;right:0}.nut-popup-right.round{border-radius:var(--nutui-popup-border-radius, 20px) 0 0 var(--nutui-popup-border-radius, 20px)}.nut-popup-left{top:0;left:0}.nut-popup-left.round{border-radius:0 var(--nutui-popup-border-radius, 20px) var(--nutui-popup-border-radius, 20px) 0}.nut-popup-top{top:0;left:0;width:100%}.nut-popup-top.round{border-radius:0 0 var(--nutui-popup-border-radius, 20px) var(--nutui-popup-border-radius, 20px)}@keyframes popup-scale-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes popup-scale-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}.nut-popup-slide-default-enter-active{animation-fill-mode:both;animation-name:popup-scale-fade-in;animation-duration:.3s}.nut-popup-slide-default-exit-active{animation-fill-mode:both;animation-name:popup-scale-fade-out;animation-duration:.3s}@keyframes popup-fade-in{0%{opacity:0}to{opacity:1}}@keyframes popup-fade-out{0%{opacity:1}to{opacity:0}}.nut-popup-slide-center-enter-active{animation-fill-mode:both;animation-name:popup-fade-in;animation-duration:.3s}.nut-popup-slide-center-exit-active{animation-fill-mode:both;animation-name:popup-fade-out;animation-duration:.3s}@keyframes popup-slide-top-enter{0%{transform:translate3d(0,-100%,0)}}@keyframes popup-slide-top-exit{to{transform:translate3d(0,-100%,0)}}.nut-popup-slide-top-enter-active,.nut-popup-slide-top-appear-active{transform:translateZ(0);animation-fill-mode:both;animation-name:popup-slide-top-enter;animation-duration:.3s}.nut-popup-slide-top-exit-active{animation-fill-mode:both;animation-name:popup-slide-top-exit;animation-duration:.3s}@keyframes popup-slide-right-enter{0%{transform:translate3d(100%,0,0)}}@keyframes popup-slide-right-exit{to{transform:translate3d(100%,0,0)}}.nut-popup-slide-right-enter-active,.nut-popup-slide-right-appear-active{transform:translateZ(0);animation-fill-mode:both;animation-name:popup-slide-right-enter;animation-duration:.3s}.nut-popup-slide-right-exit{animation-fill-mode:both;animation-name:popup-slide-right-exit;animation-duration:.3s}@keyframes popup-slide-bottom-enter{0%{transform:translate3d(0,100%,0)}}@keyframes slide-bottom-exit{to{transform:translate3d(0,100%,0)}}.nut-popup-slide-bottom-enter-active,.nut-popup-slide-bottom-appear-active{transform:translate(0);animation-fill-mode:both;animation-name:popup-slide-bottom-enter;animation-duration:.3s}.nut-popup-slide-bottom-exit{animation-fill-mode:both;animation-name:slide-bottom-exit;animation-duration:.3s}@keyframes popup-slide-left-enter{0%{transform:translate3d(-100%,0,0)}}@keyframes popup-slide-left-exit{to{transform:translate3d(-100%,0,0)}}.nut-popup-slide-left-enter-active,.nut-popup-slide-left-appear-active{transform:translate(0);animation-fill-mode:both;animation-name:popup-slide-left-enter;animation-duration:.3s}.nut-popup-slide-left-exit-active,.nut-popup-slide-left-exit-done{animation-fill-mode:both;animation-name:popup-slide-left-exit;animation-duration:.3s}.nut-overflow-hidden{overflow:hidden!important}.nut-timedetail{display:flex;align-content:flex-start;flex-wrap:wrap;padding:0 0 50px 13px}.nut-timedetail__item{width:var(--nutui-timeselect-time-width, 100px);height:var(--nutui-timeselect-time-height, 50px);line-height:var(--nutui-timeselect-time-line-height, 50px);text-align:center;margin:var(--nutui-timeselect-time-margin, 0 10px 10px 0);background:var(--nutui-timeselect-time-background, var(--nutui-gray-4, #f4f4f4));color:var(--nutui-timeselect-time-color, var(--nutui-gray-1, #1a1a1a));border-radius:5px;font-size:var(--nutui-timeselect-font-size, 14px);border:1px solid transparent;font-weight:700}.nut-timedetail__item.active{background-color:var(--nutui-timeselect-time-active-background, var(--nutui-gray-5, #f8f8f8));border:1px solid var(--nutui-timeselect-time-active-color, var(--nutui-brand-color, #fa2c19));color:var(--nutui-timeselect-time-active-color, var(--nutui-brand-color, #fa2c19))}.nut-timeselect{background-color:var(--nutui-gray-6, #ffffff);display:flex;flex-direction:column;height:100%}.nut-timeselect__title{height:var(--nutui-timeselect-title-height, 50px);line-height:var(--nutui-timeselect-title-line-height, 50px);margin-bottom:10px;font-size:var(--nutui-timeselect-title-font-size, var(--nutui-font-size-2, 14px));background:var(--nutui-timeselect-title-background, var(--nutui-gray-6, #ffffff));color:var(--nutui-gray-1, #1a1a1a);text-align:center}.nut-timeselect__content{display:flex;flex:1}.nut-timeselect__content-left{width:var(--nutui-timeselect-date-width, 140px);min-width:var(--nutui-timeselect-date-width, 140px);height:100%;overflow:auto;background:var(--nutui-gray-5, #f8f8f8)}.nut-timepannel{height:var(--nutui-timeselect-date-height, 40px);line-height:var(--nutui-timeselect-date-line-height, 40px);text-align:center;color:var(--nutui-timeselect-date-color, var(--nutui-gray-2, #757575));font-size:var(--nutui-timeselect-date-font-size, var(--nutui-font-size-2, 14px))}.nut-timepannel.active{background:var(--nutui-gray-6, #ffffff);color:var(--nutui-timeselect-date-active-color, var(--nutui-gray-1, #1a1a1a));font-weight:700}
@@ -1,6 +1,8 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
4
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
+ var _excluded = ["visible", "className", "style", "title", "defaultValue", "options", "optionKey", "multiple", "onSelect", "onDateChange", "onTimeChange"];
4
6
  function ownKeys(object, enumerableOnly) {
5
7
  var keys = Object.keys(object);
6
8
  if (Object.getOwnPropertySymbols) {
@@ -22,141 +24,116 @@ function _objectSpread(target) {
22
24
  }
23
25
  return target;
24
26
  }
25
- import React__default, { useState, useEffect } from "react";
27
+ import React__default, { useState } from "react";
28
+ import classNames from "classnames";
26
29
  import Popup from "./Popup.js";
27
- import TimePannel from "./TimePannel.js";
28
30
  import TimeDetail from "./TimeDetail.js";
29
- import { c as cn } from "./bem.js";
31
+ import { C as ComponentDefaults } from "./typings.js";
30
32
  import { useConfig } from "./ConfigProvider.js";
31
- import "@bem-react/classname";
32
- var defaultProps = {
33
- className: "",
34
- style: {},
33
+ var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
35
34
  visible: false,
36
- height: "20%",
37
35
  multiple: false,
38
- currentKey: 0,
39
- currentTime: [],
40
- title: "取件时间",
41
- dates: [],
42
- times: []
43
- };
36
+ defaultValue: [],
37
+ options: [],
38
+ optionKey: {
39
+ valueKey: "value",
40
+ textKey: "text",
41
+ childrenKey: "children"
42
+ }
43
+ });
44
44
  var TimeSelect = function TimeSelect2(props) {
45
- useConfig();
46
- var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), visible = _defaultProps$props.visible, className = _defaultProps$props.className, height = _defaultProps$props.height, title = _defaultProps$props.title, currentKey = _defaultProps$props.currentKey, currentTime = _defaultProps$props.currentTime, dates = _defaultProps$props.dates, times = _defaultProps$props.times, multiple = _defaultProps$props.multiple, select = _defaultProps$props.select, pannelChange = _defaultProps$props.pannelChange, timeChange = _defaultProps$props.timeChange, onSelect = _defaultProps$props.onSelect, onPannelChange = _defaultProps$props.onPannelChange, onTimeChange = _defaultProps$props.onTimeChange;
47
- var _useState = useState(currentKey), _useState2 = _slicedToArray(_useState, 2), activeKey = _useState2[0], setActiveKey = _useState2[1];
48
- var _useState3 = useState(currentTime.length ? currentTime : [{
49
- key: currentKey,
50
- list: []
51
- }]), _useState4 = _slicedToArray(_useState3, 2), activeTime = _useState4[0], setActiveTime = _useState4[1];
52
- var _useState5 = useState(visible), _useState6 = _slicedToArray(_useState5, 2), popVisible = _useState6[0], setPopVisible = _useState6[1];
53
- var popStyle = {
54
- width: "100%",
55
- height
56
- };
57
- var b = cn("timeselect");
58
- var closeFun = function closeFun2() {
59
- if (onSelect) {
60
- onSelect(activeTime);
61
- } else if (select) {
62
- select(activeTime);
45
+ var _useConfig = useConfig(), locale = _useConfig.locale;
46
+ var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), visible = _defaultProps$props.visible, className = _defaultProps$props.className, style = _defaultProps$props.style, title = _defaultProps$props.title, defaultValue = _defaultProps$props.defaultValue, options = _defaultProps$props.options, optionKey = _defaultProps$props.optionKey, multiple = _defaultProps$props.multiple, onSelect = _defaultProps$props.onSelect, onDateChange = _defaultProps$props.onDateChange, onTimeChange = _defaultProps$props.onTimeChange, rest = _objectWithoutProperties(_defaultProps$props, _excluded);
47
+ var _useState = useState(function() {
48
+ if (defaultValue !== null && defaultValue !== void 0 && defaultValue.length) {
49
+ return defaultValue[0][optionKey.valueKey];
63
50
  }
64
- };
65
- var handleSelectTime = function handleSelectTime2(time) {
66
- var curTimeData = {};
67
- var curIndex = -1;
68
- for (var i = 0; i < activeTime.length; i++) {
69
- if (String(activeTime[i].key) === String(activeKey)) {
70
- curTimeData = activeTime[i];
71
- curIndex = i;
72
- break;
73
- }
74
- }
75
- var curTimeIndex = curTimeData.list.findIndex(function(item) {
76
- return String(item) === String(time);
77
- });
78
- if (curTimeIndex === -1) {
79
- curTimeData.list.push(time);
80
- } else {
81
- curTimeData.list.splice(curTimeIndex, 1);
82
- }
83
- var resultTimeData = _toConsumableArray(activeTime);
84
- resultTimeData.splice(curIndex, 1, curTimeData);
85
- setActiveTime(resultTimeData);
86
- if (onTimeChange) {
87
- onTimeChange(time, resultTimeData);
88
- } else if (timeChange) {
89
- timeChange(time, resultTimeData);
51
+ if (options !== null && options !== void 0 && options.length) {
52
+ return options[0][optionKey.valueKey];
90
53
  }
54
+ return "";
55
+ }), _useState2 = _slicedToArray(_useState, 2), activeDate = _useState2[0], setActiveDate = _useState2[1];
56
+ var _useState3 = useState(function() {
57
+ return defaultValue || [];
58
+ }), _useState4 = _slicedToArray(_useState3, 2), activeTime = _useState4[0], setActiveTime = _useState4[1];
59
+ var classPrefix = "nut-timeselect";
60
+ var closeFun = function closeFun2() {
61
+ onSelect && onSelect(activeTime);
91
62
  };
92
- var handleChange = function handleChange2(pannelKey) {
93
- var resultTimeData = _toConsumableArray(activeTime);
94
- if (String(pannelKey) !== String(activeKey)) {
95
- setActiveKey === null || setActiveKey === void 0 ? void 0 : setActiveKey(pannelKey);
96
- if (multiple) {
97
- var curTimeDataIndex = activeTime.findIndex(function(item) {
98
- return String(item.key) === String(pannelKey);
99
- });
100
- if (curTimeDataIndex === -1) {
101
- resultTimeData.push({
102
- key: pannelKey,
103
- list: []
104
- });
105
- setActiveTime(resultTimeData);
63
+ var handleSelectTime = function handleSelectTime2(selectTime) {
64
+ var newActiveTime = _toConsumableArray(activeTime);
65
+ var date = newActiveTime.find(function(item) {
66
+ return item[optionKey.valueKey] === activeDate;
67
+ });
68
+ if (date) {
69
+ var timeIndex = date[optionKey.childrenKey].findIndex(function(time) {
70
+ return time[optionKey.valueKey] === selectTime[optionKey.valueKey];
71
+ });
72
+ if (timeIndex > -1) {
73
+ if (multiple) {
74
+ date[optionKey.childrenKey].splice(timeIndex, 1);
75
+ } else {
76
+ newActiveTime = [];
106
77
  }
78
+ } else if (multiple) {
79
+ date[optionKey.childrenKey].push(_objectSpread({}, selectTime));
107
80
  } else {
108
- setActiveTime([{
109
- key: pannelKey,
110
- list: []
111
- }]);
81
+ var _ref;
82
+ newActiveTime = [(_ref = {}, _defineProperty(_ref, optionKey.valueKey, activeDate), _defineProperty(_ref, optionKey.childrenKey, [_objectSpread({}, selectTime)]), _ref)];
112
83
  }
84
+ } else if (multiple) {
85
+ var _newActiveTime$push;
86
+ newActiveTime.push((_newActiveTime$push = {}, _defineProperty(_newActiveTime$push, optionKey.valueKey, activeDate), _defineProperty(_newActiveTime$push, optionKey.childrenKey, [_objectSpread({}, selectTime)]), _newActiveTime$push));
87
+ } else {
88
+ var _ref2;
89
+ newActiveTime = [(_ref2 = {}, _defineProperty(_ref2, optionKey.valueKey, activeDate), _defineProperty(_ref2, optionKey.childrenKey, [_objectSpread({}, selectTime)]), _ref2)];
113
90
  }
114
- if (onPannelChange) {
115
- onPannelChange(pannelKey, resultTimeData);
116
- } else if (pannelChange) {
117
- pannelChange(pannelKey, resultTimeData);
118
- }
91
+ newActiveTime = newActiveTime.filter(function(item) {
92
+ var _item$optionKey$child;
93
+ return ((_item$optionKey$child = item[optionKey.childrenKey]) === null || _item$optionKey$child === void 0 ? void 0 : _item$optionKey$child.length) > 0;
94
+ });
95
+ setActiveTime(newActiveTime);
96
+ onTimeChange && onTimeChange(selectTime, newActiveTime);
119
97
  };
120
- var getTimePannelClass = function getTimePannelClass2(dataItem) {
121
- if (String(dataItem["paneKey"]) === String(activeKey)) {
122
- return "nut-timepannel-active";
123
- }
124
- return "";
98
+ var handleChange = function handleChange2(date) {
99
+ setActiveDate(date[optionKey.valueKey]);
100
+ onDateChange && onDateChange(date, activeTime);
125
101
  };
126
- useEffect(function() {
127
- setPopVisible(visible);
128
- }, [visible]);
129
- return React__default.createElement(React__default.Fragment, null, React__default.createElement(Popup, {
102
+ return React__default.createElement(Popup, _objectSpread({
130
103
  closeable: true,
131
104
  round: true,
132
- visible: popVisible,
105
+ visible,
133
106
  position: "bottom",
134
- style: popStyle,
135
- onClose: function onClose() {
136
- closeFun();
137
- }
138
- }, React__default.createElement("div", {
139
- className: "".concat(b(), " ").concat(className || "")
107
+ style: _objectSpread({
108
+ width: "100%",
109
+ height: "20%"
110
+ }, style),
111
+ onClose: closeFun
112
+ }, rest), React__default.createElement("div", {
113
+ className: classNames(classPrefix, className)
140
114
  }, React__default.createElement("div", {
141
- className: "nut-timeselect__title"
142
- }, title), React__default.createElement("div", {
143
- className: "nut-timeselect__content"
115
+ className: "".concat(classPrefix, "__title")
116
+ }, title || locale.timeselect.pickupTime), React__default.createElement("div", {
117
+ className: "".concat(classPrefix, "__content")
144
118
  }, React__default.createElement("div", {
145
- className: "nut-timeselect__content-left"
146
- }, dates.map(function(dataItem, index) {
147
- return React__default.createElement(TimePannel, {
148
- date: dataItem.date,
149
- className: getTimePannelClass(dataItem),
150
- key: String(dataItem["paneKey"] || index),
151
- curKey: String(dataItem["paneKey"] || index),
152
- change: handleChange
153
- });
119
+ className: "".concat(classPrefix, "__content-left")
120
+ }, options.map(function(item) {
121
+ return React__default.createElement("div", {
122
+ key: item[optionKey.valueKey],
123
+ className: classNames("nut-timepannel", {
124
+ active: item[optionKey.valueKey] === activeDate
125
+ }),
126
+ onClick: function onClick() {
127
+ return handleChange(item);
128
+ }
129
+ }, item[optionKey.textKey]);
154
130
  })), React__default.createElement(TimeDetail, {
155
- times,
156
- currentKey: String(activeKey),
157
- currentTime: activeTime,
158
- select: handleSelectTime
159
- })))));
131
+ options,
132
+ optionKey,
133
+ activeDate,
134
+ activeTime,
135
+ onSelect: handleSelectTime
136
+ }))));
160
137
  };
161
138
  TimeSelect.defaultProps = defaultProps;
162
139
  TimeSelect.displayName = "NutTimeSelect";
@@ -52,7 +52,7 @@ import { default as default52 } from "./Badge.js";
52
52
  import { default as default53 } from "./Dialog.js";
53
53
  import { default as default54 } from "./Drag.js";
54
54
  import { default as default55 } from "./Empty.js";
55
- import { default as default56 } from "./Infiniteloading.js";
55
+ import { default as default56 } from "./InfiniteLoading.js";
56
56
  import { default as default57 } from "./NoticeBar.js";
57
57
  import { default as default58 } from "./Notify.js";
58
58
  import { default as default59 } from "./Popover.js";
@@ -87,10 +87,9 @@ import { default as default87 } from "./Video.js";
87
87
  import { default as default88 } from "./Barrage.js";
88
88
  import { default as default89 } from "./Card.js";
89
89
  import { default as default90 } from "./TimeDetail.js";
90
- import { default as default91 } from "./TimePannel.js";
91
- import { default as default92 } from "./TimeSelect.js";
92
- import { default as default93 } from "./TrendArrow.js";
93
- import { default as default94 } from "./WaterMark.js";
90
+ import { default as default91 } from "./TimeSelect.js";
91
+ import { default as default92 } from "./TrendArrow.js";
92
+ import { default as default93 } from "./WaterMark.js";
94
93
  export {
95
94
  default51 as ActionSheet,
96
95
  default26 as Address,
@@ -132,7 +131,7 @@ export {
132
131
  default6 as Image,
133
132
  default75 as ImagePreview,
134
133
  default76 as Indicator,
135
- default56 as Infiniteloading,
134
+ default56 as InfiniteLoading,
136
135
  default35 as Input,
137
136
  default36 as InputNumber,
138
137
  default12 as Layout,
@@ -177,12 +176,11 @@ export {
177
176
  default86 as Tag,
178
177
  default49 as TextArea,
179
178
  default90 as TimeDetail,
180
- default91 as TimePannel,
181
- default92 as TimeSelect,
179
+ default91 as TimeSelect,
182
180
  default64 as Toast,
183
- default93 as TrendArrow,
181
+ default92 as TrendArrow,
184
182
  default50 as Uploader,
185
183
  default87 as Video,
186
184
  default77 as VirtualList,
187
- default94 as WaterMark
185
+ default93 as WaterMark
188
186
  };
@@ -64,7 +64,7 @@ export interface BaseLang {
64
64
  };
65
65
  signature: {
66
66
  reSign: string;
67
- unSupportTpl: string;
67
+ unsupported: string;
68
68
  };
69
69
  ecard: {
70
70
  chooseText: string;
@@ -1,17 +1,16 @@
1
1
  import React, { FunctionComponent } from 'react';
2
- export interface CardProps {
3
- imgUrl: string;
2
+ import { BasicComponent } from '@/utils/typings';
3
+ export interface CardProps extends BasicComponent {
4
+ src: string;
4
5
  title: string;
5
6
  price: string;
6
7
  vipPrice: string;
7
- shopDesc: string;
8
+ shopDescription: string;
8
9
  delivery: string;
9
10
  shopName: string;
10
- className: string;
11
- style: React.CSSProperties;
12
- prolistTpl: React.ReactNode;
13
- shopTagTpl: React.ReactNode;
14
- originTpl: React.ReactNode;
15
- footerTpl: React.ReactNode;
11
+ description: React.ReactNode;
12
+ tag: React.ReactNode;
13
+ priceTag: React.ReactNode;
14
+ extra: React.ReactNode;
16
15
  }
17
16
  export declare const Card: FunctionComponent<Partial<CardProps> & React.HTMLAttributes<HTMLDivElement>>;
@@ -1,17 +1,16 @@
1
1
  import React, { FunctionComponent } from 'react';
2
- export interface CardProps {
3
- imgUrl: string;
2
+ import { BasicComponent } from '@/utils/typings';
3
+ export interface CardProps extends BasicComponent {
4
+ src: string;
4
5
  title: string;
5
6
  price: string;
6
7
  vipPrice: string;
7
- shopDesc: string;
8
+ shopDescription: string;
8
9
  delivery: string;
9
10
  shopName: string;
10
- className: string;
11
- style: React.CSSProperties;
12
- prolistTpl: React.ReactNode;
13
- shopTagTpl: React.ReactNode;
14
- originTpl: React.ReactNode;
15
- footerTpl: React.ReactNode;
11
+ description: React.ReactNode;
12
+ tag: React.ReactNode;
13
+ priceTag: React.ReactNode;
14
+ extra: React.ReactNode;
16
15
  }
17
16
  export declare const Card: FunctionComponent<Partial<CardProps> & React.HTMLAttributes<HTMLDivElement>>;
@@ -1,2 +1,3 @@
1
1
  import { Card } from './card';
2
+ export type { CardProps } from './card';
2
3
  export default Card;
@@ -1,2 +1,3 @@
1
1
  import { Card } from './card.taro';
2
+ export type { CardProps } from './card.taro';
2
3
  export default Card;