@pisell/materials 6.11.5 → 6.11.7

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 (195) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/index.js +1 -1
  5. package/build/lowcode/meta.js +7 -7
  6. package/build/lowcode/preview.js +9 -9
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +23 -23
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +19 -19
  11. package/es/components/PisellTabbar/PisellTabbar.js +47 -44
  12. package/es/components/PisellTabbar/locales.d.ts +8 -0
  13. package/es/components/PisellTabbar/locales.js +8 -0
  14. package/es/components/PisellTabbar/template/Template1/PisellTabbar.d.ts +3 -18
  15. package/es/components/PisellTabbar/template/Template1/PisellTabbar.js +124 -28
  16. package/es/components/PisellTabbar/template/Template1/constants.js +1 -1
  17. package/es/components/PisellTabbar2/locales.d.ts +8 -0
  18. package/es/components/PisellTabbar2/locales.js +8 -0
  19. package/es/components/PisellTabbar3/locales.d.ts +8 -0
  20. package/es/components/PisellTabbar3/locales.js +8 -0
  21. package/es/components/config-provider/index.d.ts +2 -0
  22. package/es/components/config-provider/index.js +6 -0
  23. package/es/components/dataSourceComponents/fields/Input.Mobile/serve.d.ts +2 -0
  24. package/es/components/dataSourceComponents/fields/Input.Phone/serve.d.ts +2 -0
  25. package/es/components/dataSourceComponents/fields/Translation/BaseTranslation.js +8 -0
  26. package/es/components/dataSourceComponents/fields/Translation/type.d.ts +2 -0
  27. package/es/components/dataSourceComponents/fields/Upload/constants.d.ts +1 -1
  28. package/es/components/dataSourceComponents/fields/Upload/constants.js +1 -1
  29. package/es/components/dataSourceComponents/fields/Upload/utils.js +1 -1
  30. package/es/components/page/index.js +11 -1
  31. package/es/components/pisellDateTimeDisplay/PisellDateTimeDisplay.js +47 -34
  32. package/es/components/pisellDateTimeDisplay/PisellDateTimeDisplay.stories.d.ts +19 -0
  33. package/es/components/pisellDateTimeDisplay/PisellDateTimeDisplay.stories.js +74 -0
  34. package/es/components/pisellDateTimeDisplay/components/DateDisplay.d.ts +6 -1
  35. package/es/components/pisellDateTimeDisplay/components/DateDisplay.js +10 -3
  36. package/es/components/pisellDateTimeDisplay/formats/dateTimeDisplayFormats.d.ts +7 -0
  37. package/es/components/pisellDateTimeDisplay/formats/dateTimeDisplayFormats.js +81 -0
  38. package/es/components/pisellDateTimeDisplay/formats/index.d.ts +1 -0
  39. package/es/components/pisellDateTimeDisplay/formats/index.js +1 -0
  40. package/es/components/pisellDateTimeDisplay/hooks/useCurrentTime.d.ts +2 -2
  41. package/es/components/pisellDateTimeDisplay/hooks/useCurrentTime.js +2 -2
  42. package/es/components/pisellDateTimeDisplay/types.d.ts +48 -2
  43. package/es/components/pisellDateTimeDisplay/utils/formatDate.js +25 -6
  44. package/es/components/pisellDateTimeDisplay/utils/formatDateOrRelative.d.ts +17 -0
  45. package/es/components/pisellDateTimeDisplay/utils/formatDateOrRelative.js +38 -0
  46. package/es/components/pisellDateTimeDisplay/utils/formatWeekday.js +11 -12
  47. package/es/components/pisellDateTimeDisplay/utils/index.d.ts +3 -1
  48. package/es/components/pisellDateTimeDisplay/utils/index.js +3 -1
  49. package/es/components/pisellDateTimeDisplay/utils/localeUtils.d.ts +2 -7
  50. package/es/components/pisellDateTimeDisplay/utils/localeUtils.js +4 -17
  51. package/es/components/pisellDateTimeDisplay/utils/relativeDay.d.ts +23 -0
  52. package/es/components/pisellDateTimeDisplay/utils/relativeDay.js +45 -0
  53. package/es/components/pisellLookup/components/LookupTrigger.js +66 -6
  54. package/es/components/pisellText/components/Editable/index.d.ts +3 -0
  55. package/es/components/pisellTimeRangeDisplay/PisellTimeRangeDisplay.d.ts +32 -0
  56. package/es/components/pisellTimeRangeDisplay/PisellTimeRangeDisplay.js +197 -0
  57. package/es/components/pisellTimeRangeDisplay/PisellTimeRangeDisplay.less +49 -0
  58. package/es/components/pisellTimeRangeDisplay/PisellTimeRangeDisplay.stories.d.ts +61 -0
  59. package/es/components/pisellTimeRangeDisplay/PisellTimeRangeDisplay.stories.js +209 -0
  60. package/es/components/pisellTimeRangeDisplay/components/DateBlock.d.ts +20 -0
  61. package/es/components/pisellTimeRangeDisplay/components/DateBlock.js +30 -0
  62. package/es/components/pisellTimeRangeDisplay/components/DurationBlock.d.ts +19 -0
  63. package/es/components/pisellTimeRangeDisplay/components/DurationBlock.js +25 -0
  64. package/es/components/pisellTimeRangeDisplay/components/TimeRangeBlock.d.ts +30 -0
  65. package/es/components/pisellTimeRangeDisplay/components/TimeRangeBlock.js +86 -0
  66. package/es/components/pisellTimeRangeDisplay/components/WeekdayBlock.d.ts +18 -0
  67. package/es/components/pisellTimeRangeDisplay/components/WeekdayBlock.js +23 -0
  68. package/es/components/pisellTimeRangeDisplay/components/index.d.ts +8 -0
  69. package/es/components/pisellTimeRangeDisplay/components/index.js +4 -0
  70. package/es/components/pisellTimeRangeDisplay/index.d.ts +3 -0
  71. package/es/components/pisellTimeRangeDisplay/index.js +1 -0
  72. package/es/components/pisellTimeRangeDisplay/types.d.ts +137 -0
  73. package/es/components/pisellTimeRangeDisplay/types.js +1 -0
  74. package/es/components/pisellTimeRangeDisplay/utils/formatDuration.d.ts +14 -0
  75. package/es/components/pisellTimeRangeDisplay/utils/formatDuration.js +53 -0
  76. package/es/components/pisellTimeRangeDisplay/utils/index.d.ts +4 -0
  77. package/es/components/pisellTimeRangeDisplay/utils/index.js +5 -0
  78. package/es/components/pisellTimeRangeDisplay/utils/parseTimeRange.d.ts +23 -0
  79. package/es/components/pisellTimeRangeDisplay/utils/parseTimeRange.js +27 -0
  80. package/es/components/productCard/cartSkuCard/components/timeRange/index.d.ts +2 -0
  81. package/es/components/productCard/cartSkuCard/components/timeRange/index.js +5 -1
  82. package/es/components/productCard/cartSkuCard/locales.d.ts +64 -0
  83. package/es/components/productCard/cartSkuCard/locales.js +16 -0
  84. package/es/components/productCard/locales.d.ts +54 -0
  85. package/es/components/productCard/locales.js +84 -0
  86. package/es/components/productCard/utils.d.ts +2 -0
  87. package/es/components/productCard/utils.js +8 -2
  88. package/es/components/translation/index.d.ts +2 -0
  89. package/es/components/translation/index.js +12 -0
  90. package/es/components/translation/utils.d.ts +2 -0
  91. package/es/components/translation/utils.js +3 -1
  92. package/es/components/walletCard/index.d.ts +2 -0
  93. package/es/components/walletCard/index.js +11 -3
  94. package/es/index.d.ts +2 -0
  95. package/es/index.js +7 -0
  96. package/es/locales/index.js +6 -2
  97. package/es/locales/ja.d.ts +337 -0
  98. package/es/locales/ja.js +416 -0
  99. package/es/locales/pt.d.ts +337 -0
  100. package/es/locales/pt.js +416 -0
  101. package/es/utils/platform.d.ts +1 -1
  102. package/lib/components/PisellTabbar/PisellTabbar.js +64 -57
  103. package/lib/components/PisellTabbar/locales.d.ts +8 -0
  104. package/lib/components/PisellTabbar/locales.js +8 -0
  105. package/lib/components/PisellTabbar/template/Template1/PisellTabbar.d.ts +3 -18
  106. package/lib/components/PisellTabbar/template/Template1/PisellTabbar.js +171 -55
  107. package/lib/components/PisellTabbar/template/Template1/constants.js +1 -1
  108. package/lib/components/PisellTabbar2/locales.d.ts +8 -0
  109. package/lib/components/PisellTabbar2/locales.js +8 -0
  110. package/lib/components/PisellTabbar3/locales.d.ts +8 -0
  111. package/lib/components/PisellTabbar3/locales.js +8 -0
  112. package/lib/components/config-provider/index.d.ts +2 -0
  113. package/lib/components/config-provider/index.js +6 -0
  114. package/lib/components/dataSourceComponents/fields/Input.Mobile/serve.d.ts +2 -0
  115. package/lib/components/dataSourceComponents/fields/Input.Phone/serve.d.ts +2 -0
  116. package/lib/components/dataSourceComponents/fields/Translation/BaseTranslation.js +5 -1
  117. package/lib/components/dataSourceComponents/fields/Translation/type.d.ts +2 -0
  118. package/lib/components/dataSourceComponents/fields/Upload/constants.d.ts +1 -1
  119. package/lib/components/dataSourceComponents/fields/Upload/constants.js +1 -1
  120. package/lib/components/dataSourceComponents/fields/Upload/utils.js +1 -1
  121. package/lib/components/page/index.js +11 -1
  122. package/lib/components/pisellDateTimeDisplay/PisellDateTimeDisplay.js +27 -17
  123. package/lib/components/pisellDateTimeDisplay/PisellDateTimeDisplay.stories.d.ts +19 -0
  124. package/lib/components/pisellDateTimeDisplay/PisellDateTimeDisplay.stories.js +63 -0
  125. package/lib/components/pisellDateTimeDisplay/components/DateDisplay.d.ts +6 -1
  126. package/lib/components/pisellDateTimeDisplay/components/DateDisplay.js +5 -1
  127. package/lib/components/pisellDateTimeDisplay/formats/dateTimeDisplayFormats.d.ts +7 -0
  128. package/lib/components/pisellDateTimeDisplay/formats/dateTimeDisplayFormats.js +98 -0
  129. package/lib/components/pisellDateTimeDisplay/formats/index.d.ts +1 -0
  130. package/lib/components/pisellDateTimeDisplay/formats/index.js +29 -0
  131. package/lib/components/pisellDateTimeDisplay/hooks/useCurrentTime.d.ts +2 -2
  132. package/lib/components/pisellDateTimeDisplay/types.d.ts +48 -2
  133. package/lib/components/pisellDateTimeDisplay/utils/formatDate.js +14 -1
  134. package/lib/components/pisellDateTimeDisplay/utils/formatDateOrRelative.d.ts +17 -0
  135. package/lib/components/pisellDateTimeDisplay/utils/formatDateOrRelative.js +54 -0
  136. package/lib/components/pisellDateTimeDisplay/utils/formatWeekday.js +6 -6
  137. package/lib/components/pisellDateTimeDisplay/utils/index.d.ts +3 -1
  138. package/lib/components/pisellDateTimeDisplay/utils/index.js +8 -2
  139. package/lib/components/pisellDateTimeDisplay/utils/localeUtils.d.ts +2 -7
  140. package/lib/components/pisellDateTimeDisplay/utils/localeUtils.js +2 -11
  141. package/lib/components/pisellDateTimeDisplay/utils/relativeDay.d.ts +23 -0
  142. package/lib/components/pisellDateTimeDisplay/utils/relativeDay.js +54 -0
  143. package/lib/components/pisellLookup/components/LookupTrigger.js +45 -7
  144. package/lib/components/pisellText/components/Editable/index.d.ts +3 -0
  145. package/lib/components/pisellTimeRangeDisplay/PisellTimeRangeDisplay.d.ts +32 -0
  146. package/lib/components/pisellTimeRangeDisplay/PisellTimeRangeDisplay.js +193 -0
  147. package/lib/components/pisellTimeRangeDisplay/PisellTimeRangeDisplay.less +49 -0
  148. package/lib/components/pisellTimeRangeDisplay/PisellTimeRangeDisplay.stories.d.ts +61 -0
  149. package/lib/components/pisellTimeRangeDisplay/PisellTimeRangeDisplay.stories.js +187 -0
  150. package/lib/components/pisellTimeRangeDisplay/components/DateBlock.d.ts +20 -0
  151. package/lib/components/pisellTimeRangeDisplay/components/DateBlock.js +69 -0
  152. package/lib/components/pisellTimeRangeDisplay/components/DurationBlock.d.ts +19 -0
  153. package/lib/components/pisellTimeRangeDisplay/components/DurationBlock.js +65 -0
  154. package/lib/components/pisellTimeRangeDisplay/components/TimeRangeBlock.d.ts +30 -0
  155. package/lib/components/pisellTimeRangeDisplay/components/TimeRangeBlock.js +120 -0
  156. package/lib/components/pisellTimeRangeDisplay/components/WeekdayBlock.d.ts +18 -0
  157. package/lib/components/pisellTimeRangeDisplay/components/WeekdayBlock.js +64 -0
  158. package/lib/components/pisellTimeRangeDisplay/components/index.d.ts +8 -0
  159. package/lib/components/pisellTimeRangeDisplay/components/index.js +38 -0
  160. package/lib/components/pisellTimeRangeDisplay/index.d.ts +3 -0
  161. package/lib/components/pisellTimeRangeDisplay/index.js +40 -0
  162. package/lib/components/pisellTimeRangeDisplay/types.d.ts +137 -0
  163. package/lib/components/pisellTimeRangeDisplay/types.js +17 -0
  164. package/lib/components/pisellTimeRangeDisplay/utils/formatDuration.d.ts +14 -0
  165. package/lib/components/pisellTimeRangeDisplay/utils/formatDuration.js +52 -0
  166. package/lib/components/pisellTimeRangeDisplay/utils/index.d.ts +4 -0
  167. package/lib/components/pisellTimeRangeDisplay/utils/index.js +47 -0
  168. package/lib/components/pisellTimeRangeDisplay/utils/parseTimeRange.d.ts +23 -0
  169. package/lib/components/pisellTimeRangeDisplay/utils/parseTimeRange.js +49 -0
  170. package/lib/components/productCard/cartSkuCard/components/timeRange/index.d.ts +2 -0
  171. package/lib/components/productCard/cartSkuCard/components/timeRange/index.js +5 -1
  172. package/lib/components/productCard/cartSkuCard/locales.d.ts +64 -0
  173. package/lib/components/productCard/cartSkuCard/locales.js +18 -0
  174. package/lib/components/productCard/locales.d.ts +54 -0
  175. package/lib/components/productCard/locales.js +60 -0
  176. package/lib/components/productCard/utils.d.ts +2 -0
  177. package/lib/components/productCard/utils.js +8 -2
  178. package/lib/components/translation/index.d.ts +2 -0
  179. package/lib/components/translation/index.js +14 -0
  180. package/lib/components/translation/utils.d.ts +2 -0
  181. package/lib/components/translation/utils.js +3 -1
  182. package/lib/components/walletCard/index.d.ts +2 -0
  183. package/lib/components/walletCard/index.js +11 -3
  184. package/lib/index.d.ts +2 -0
  185. package/lib/index.js +3 -0
  186. package/lib/locales/index.js +6 -2
  187. package/lib/locales/ja.d.ts +337 -0
  188. package/lib/locales/ja.js +396 -0
  189. package/lib/locales/pt.d.ts +337 -0
  190. package/lib/locales/pt.js +396 -0
  191. package/lib/utils/platform.d.ts +1 -1
  192. package/lowcode/pisell-time-range-display/index.ts +3 -0
  193. package/lowcode/pisell-time-range-display/meta.ts +375 -0
  194. package/lowcode/pisell-time-range-display/snippets.ts +1 -0
  195. package/package.json +3 -3
@@ -0,0 +1,14 @@
1
+ /**
2
+ * 将毫秒数格式化为持续时间字符串(d h m s 或 天/时/分/秒)
3
+ *
4
+ * @param ms 持续时间(毫秒)
5
+ * @param showSeconds 是否显示秒,默认 false
6
+ * @param locale 语言代码,zh 时使用「天/时/分/秒」,否则使用 d/h/m/s
7
+ * @returns 如 "2h30m"、"1d2h30m23s" 或 "2时30分"、"1天2时30分23秒"
8
+ *
9
+ * @example
10
+ * formatDuration(9000000, false) // => "2h30m"
11
+ * formatDuration(9000000, false, 'zh-cn') // => "2时30分"
12
+ * formatDuration(86400000, false) // => "1d"
13
+ */
14
+ export declare function formatDuration(ms: number, showSeconds?: boolean, locale?: string): string;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * 判断 locale 是否为中文(用于持续时长单位 i18n)
3
+ */
4
+ function isChineseLocale(locale) {
5
+ if (!locale) return false;
6
+ var n = locale.toLowerCase();
7
+ return n.startsWith('zh');
8
+ }
9
+
10
+ /**
11
+ * 将毫秒数格式化为持续时间字符串(d h m s 或 天/时/分/秒)
12
+ *
13
+ * @param ms 持续时间(毫秒)
14
+ * @param showSeconds 是否显示秒,默认 false
15
+ * @param locale 语言代码,zh 时使用「天/时/分/秒」,否则使用 d/h/m/s
16
+ * @returns 如 "2h30m"、"1d2h30m23s" 或 "2时30分"、"1天2时30分23秒"
17
+ *
18
+ * @example
19
+ * formatDuration(9000000, false) // => "2h30m"
20
+ * formatDuration(9000000, false, 'zh-cn') // => "2时30分"
21
+ * formatDuration(86400000, false) // => "1d"
22
+ */
23
+ export function formatDuration(ms) {
24
+ var showSeconds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
25
+ var locale = arguments.length > 2 ? arguments[2] : undefined;
26
+ if (!Number.isFinite(ms) || ms < 0) {
27
+ return isChineseLocale(locale) ? '0分钟' : '0m';
28
+ }
29
+ var d = Math.floor(ms / 86400000);
30
+ var h = Math.floor(ms % 86400000 / 3600000);
31
+ var m = Math.floor(ms % 3600000 / 60000);
32
+ var s = Math.floor(ms % 60000 / 1000);
33
+ var useZh = isChineseLocale(locale);
34
+ var units = useZh ? {
35
+ d: '天',
36
+ h: '时',
37
+ m: '分钟',
38
+ s: '秒'
39
+ } : {
40
+ d: 'd',
41
+ h: 'h',
42
+ m: 'm',
43
+ s: 's'
44
+ };
45
+ var parts = [];
46
+ if (d > 0) parts.push("".concat(d).concat(units.d));
47
+ if (h > 0) parts.push("".concat(h).concat(units.h));
48
+ if (m > 0) parts.push("".concat(m).concat(units.m));
49
+ if (showSeconds || parts.length === 0 && s >= 0) {
50
+ parts.push("".concat(s).concat(units.s));
51
+ }
52
+ return parts.length > 0 ? parts.join('') : useZh ? '0分钟' : '0m';
53
+ }
@@ -0,0 +1,4 @@
1
+ export { parseTimeRange } from './parseTimeRange';
2
+ export type { ParseTimeRangeResult } from './parseTimeRange';
3
+ export { formatDuration } from './formatDuration';
4
+ export { formatTime, formatDate, formatWeekday, getDayjsLocale, getRelativeDay, getRelativeDayLabel, getDatePartDisplay, } from '../../pisellDateTimeDisplay/utils';
@@ -0,0 +1,5 @@
1
+ export { parseTimeRange } from "./parseTimeRange";
2
+ export { formatDuration } from "./formatDuration";
3
+
4
+ // 复用 pisellDateTimeDisplay 的格式化、相对日与 locale 工具
5
+ export { formatTime, formatDate, formatWeekday, getDayjsLocale, getRelativeDay, getRelativeDayLabel, getDatePartDisplay } from "../../pisellDateTimeDisplay/utils";
@@ -0,0 +1,23 @@
1
+ import { type Dayjs } from 'dayjs';
2
+ import type { DayjsLike } from '../types';
3
+ export interface ParseTimeRangeResult {
4
+ /** 开始时间(已应用 locale) */
5
+ start: Dayjs;
6
+ /** 结束时间(已应用 locale) */
7
+ end: Dayjs;
8
+ /** 是否同一天(按本地时区自然日判定) */
9
+ isSameDay: boolean;
10
+ }
11
+ /**
12
+ * 解析 startAt / endAt 为 Dayjs,并判定是否同一天
13
+ *
14
+ * @param startAt 开始时间(dayjs 兼容值)
15
+ * @param endAt 结束时间(dayjs 兼容值)
16
+ * @param locale dayjs locale,可选
17
+ * @returns { start, end, isSameDay }
18
+ *
19
+ * @example
20
+ * parseTimeRange('2026-02-04 09:00', '2026-02-04 18:00', 'zh-cn')
21
+ * // => { start: Dayjs, end: Dayjs, isSameDay: true }
22
+ */
23
+ export declare function parseTimeRange(startAt: DayjsLike, endAt: DayjsLike, locale?: string): ParseTimeRangeResult;
@@ -0,0 +1,27 @@
1
+ import dayjs from 'dayjs';
2
+ /**
3
+ * 解析 startAt / endAt 为 Dayjs,并判定是否同一天
4
+ *
5
+ * @param startAt 开始时间(dayjs 兼容值)
6
+ * @param endAt 结束时间(dayjs 兼容值)
7
+ * @param locale dayjs locale,可选
8
+ * @returns { start, end, isSameDay }
9
+ *
10
+ * @example
11
+ * parseTimeRange('2026-02-04 09:00', '2026-02-04 18:00', 'zh-cn')
12
+ * // => { start: Dayjs, end: Dayjs, isSameDay: true }
13
+ */
14
+ export function parseTimeRange(startAt, endAt, locale) {
15
+ var start = dayjs(startAt);
16
+ var end = dayjs(endAt);
17
+ if (locale) {
18
+ start = start.locale(locale);
19
+ end = end.locale(locale);
20
+ }
21
+ var isSameDay = start.isSame(end, 'day');
22
+ return {
23
+ start: start,
24
+ end: end,
25
+ isSameDay: isSameDay
26
+ };
27
+ }
@@ -2,6 +2,8 @@ import React from 'react';
2
2
  import 'dayjs/locale/zh-cn';
3
3
  import 'dayjs/locale/en';
4
4
  import 'dayjs/locale/zh-tw';
5
+ import 'dayjs/locale/ja';
6
+ import 'dayjs/locale/pt';
5
7
  import './index.less';
6
8
  declare const TimeRange: (props: any) => React.JSX.Element | null;
7
9
  export default TimeRange;
@@ -6,12 +6,16 @@ import dayjs from 'dayjs';
6
6
  import 'dayjs/locale/zh-cn';
7
7
  import 'dayjs/locale/en';
8
8
  import 'dayjs/locale/zh-tw';
9
+ import 'dayjs/locale/ja';
10
+ import 'dayjs/locale/pt';
9
11
  import "./index.less";
10
12
  import { PREFIX } from "../../index";
11
13
  var localeTypes = {
12
14
  'en-US': 'en',
13
15
  'zh-CN': 'zh-cn',
14
- 'zh-HK': 'zh-tw'
16
+ 'zh-HK': 'zh-tw',
17
+ 'ja': 'ja',
18
+ 'pt': 'pt'
15
19
  };
16
20
  var TimeRange = function TimeRange(props) {
17
21
  var _props$dataSource = props.dataSource,
@@ -95,5 +95,69 @@ declare const _default: {
95
95
  'pisell2.product.card.add.holder.modal.add': string;
96
96
  'pisell2.product.card.closing-soon.warning': string;
97
97
  };
98
+ ja: {
99
+ 'pisell2.product.card.discount.reason': string;
100
+ 'pisell2.cart.sku-card.more': string;
101
+ 'pisell2.cart.sku-card.packages.title': string;
102
+ 'pisell2.cart.sku-card.sales.title': string;
103
+ 'pisell2.cart.sku-card.actions.delete': string;
104
+ 'pisell2.cart.sku-card.unassigned': string;
105
+ 'pisell2.product.card.day': (val: number) => string;
106
+ 'pisell2.product.card.day.event': (val: number) => string;
107
+ 'pisell2.product.card.minute': (val: number) => string;
108
+ 'pisell2.product.card.discount.note': string;
109
+ 'pisell2.product.card.edit': string;
110
+ 'pisell2.product.card.discount.add.note': string;
111
+ 'pisell2.product.card.discount.edit.note': string;
112
+ 'pisell2.product.card.confirm': string;
113
+ 'pisell2.product.card.cancel': string;
114
+ 'pisell2.product.card.note.pla': string;
115
+ 'pisell2.product.card.items.package': string;
116
+ 'pisell2.product.card.view-all': string;
117
+ 'pisell2.product.card.view-less': string;
118
+ 'pisell2.product.card.add.holder.button.text': (val: string) => string;
119
+ 'pisell2.product.card.add.holder.placeholder': (val: string) => string;
120
+ 'pisell2.product.card.add.holder.placeholder.multiple': (num: number, val: string) => string;
121
+ 'pisell2.product.card.add.holder.modal.title.1': string;
122
+ 'pisell2.product.card.hour.minute': (hour: number, minute: number) => string;
123
+ 'pisell2.product.card.sales': string;
124
+ 'pisell2.product.card.add.holder.modal.cancel': string;
125
+ 'pisell2.product.card.add.holder.modal.clear': string;
126
+ 'pisell2.product.card.add.holder.modal.apply': string;
127
+ 'pisell2.product.card.add.holder.modal.add': string;
128
+ 'pisell2.product.card.closing-soon.warning': string;
129
+ };
130
+ pt: {
131
+ 'pisell2.product.card.discount.reason': string;
132
+ 'pisell2.cart.sku-card.more': string;
133
+ 'pisell2.cart.sku-card.packages.title': string;
134
+ 'pisell2.cart.sku-card.sales.title': string;
135
+ 'pisell2.cart.sku-card.actions.delete': string;
136
+ 'pisell2.cart.sku-card.unassigned': string;
137
+ 'pisell2.product.card.day': (val: number) => string;
138
+ 'pisell2.product.card.day.event': (val: number) => string;
139
+ 'pisell2.product.card.minute': (val: number) => string;
140
+ 'pisell2.product.card.discount.note': string;
141
+ 'pisell2.product.card.edit': string;
142
+ 'pisell2.product.card.discount.add.note': string;
143
+ 'pisell2.product.card.discount.edit.note': string;
144
+ 'pisell2.product.card.confirm': string;
145
+ 'pisell2.product.card.cancel': string;
146
+ 'pisell2.product.card.note.pla': string;
147
+ 'pisell2.product.card.items.package': string;
148
+ 'pisell2.product.card.view-all': string;
149
+ 'pisell2.product.card.view-less': string;
150
+ 'pisell2.product.card.add.holder.button.text': (val: string) => string;
151
+ 'pisell2.product.card.add.holder.placeholder': (val: string) => string;
152
+ 'pisell2.product.card.add.holder.placeholder.multiple': (num: number, val: string) => string;
153
+ 'pisell2.product.card.add.holder.modal.title.1': string;
154
+ 'pisell2.product.card.hour.minute': (hour: number, minute: number) => string;
155
+ 'pisell2.product.card.sales': string;
156
+ 'pisell2.product.card.add.holder.modal.cancel': string;
157
+ 'pisell2.product.card.add.holder.modal.clear': string;
158
+ 'pisell2.product.card.add.holder.modal.apply': string;
159
+ 'pisell2.product.card.add.holder.modal.add': string;
160
+ 'pisell2.product.card.closing-soon.warning': string;
161
+ };
98
162
  };
99
163
  export default _default;
@@ -29,5 +29,21 @@ export default {
29
29
  'pisell2.cart.sku-card.sales.title': '銷售',
30
30
  'pisell2.cart.sku-card.actions.delete': '刪除',
31
31
  'pisell2.cart.sku-card.unassigned': '未分配'
32
+ }),
33
+ ja: _objectSpread(_objectSpread({}, localeTexts.ja), {}, {
34
+ 'pisell2.product.card.discount.reason': '割引理由',
35
+ 'pisell2.cart.sku-card.more': 'もっと...',
36
+ 'pisell2.cart.sku-card.packages.title': 'パッケージ内のアイテム',
37
+ 'pisell2.cart.sku-card.sales.title': 'セール',
38
+ 'pisell2.cart.sku-card.actions.delete': '削除',
39
+ 'pisell2.cart.sku-card.unassigned': '未割り当て'
40
+ }),
41
+ pt: _objectSpread(_objectSpread({}, localeTexts.pt), {}, {
42
+ 'pisell2.product.card.discount.reason': 'Motivo do desconto',
43
+ 'pisell2.cart.sku-card.more': 'mais...',
44
+ 'pisell2.cart.sku-card.packages.title': 'Itens no pacote',
45
+ 'pisell2.cart.sku-card.sales.title': 'Vendas',
46
+ 'pisell2.cart.sku-card.actions.delete': 'Excluir',
47
+ 'pisell2.cart.sku-card.unassigned': 'Não atribuído'
32
48
  })
33
49
  };
@@ -80,5 +80,59 @@ declare const _default: {
80
80
  'pisell2.product.card.add.holder.modal.add': string;
81
81
  'pisell2.product.card.closing-soon.warning': string;
82
82
  };
83
+ ja: {
84
+ 'pisell2.product.card.day': (val: number) => string;
85
+ 'pisell2.product.card.day.event': (val: number) => string;
86
+ 'pisell2.product.card.minute': (val: number) => string;
87
+ 'pisell2.product.card.discount.reason': string;
88
+ 'pisell2.product.card.discount.note': string;
89
+ 'pisell2.product.card.edit': string;
90
+ 'pisell2.product.card.discount.add.note': string;
91
+ 'pisell2.product.card.discount.edit.note': string;
92
+ 'pisell2.product.card.confirm': string;
93
+ 'pisell2.product.card.cancel': string;
94
+ 'pisell2.product.card.note.pla': string;
95
+ 'pisell2.product.card.items.package': string;
96
+ 'pisell2.product.card.view-all': string;
97
+ 'pisell2.product.card.view-less': string;
98
+ 'pisell2.product.card.add.holder.button.text': (val: string) => string;
99
+ 'pisell2.product.card.add.holder.placeholder': (val: string) => string;
100
+ 'pisell2.product.card.add.holder.placeholder.multiple': (num: number, val: string) => string;
101
+ 'pisell2.product.card.add.holder.modal.title.1': string;
102
+ 'pisell2.product.card.hour.minute': (hour: number, minute: number) => string;
103
+ 'pisell2.product.card.sales': string;
104
+ 'pisell2.product.card.add.holder.modal.cancel': string;
105
+ 'pisell2.product.card.add.holder.modal.clear': string;
106
+ 'pisell2.product.card.add.holder.modal.apply': string;
107
+ 'pisell2.product.card.add.holder.modal.add': string;
108
+ 'pisell2.product.card.closing-soon.warning': string;
109
+ };
110
+ pt: {
111
+ 'pisell2.product.card.day': (val: number) => string;
112
+ 'pisell2.product.card.day.event': (val: number) => string;
113
+ 'pisell2.product.card.minute': (val: number) => string;
114
+ 'pisell2.product.card.discount.reason': string;
115
+ 'pisell2.product.card.discount.note': string;
116
+ 'pisell2.product.card.edit': string;
117
+ 'pisell2.product.card.discount.add.note': string;
118
+ 'pisell2.product.card.discount.edit.note': string;
119
+ 'pisell2.product.card.confirm': string;
120
+ 'pisell2.product.card.cancel': string;
121
+ 'pisell2.product.card.note.pla': string;
122
+ 'pisell2.product.card.items.package': string;
123
+ 'pisell2.product.card.view-all': string;
124
+ 'pisell2.product.card.view-less': string;
125
+ 'pisell2.product.card.add.holder.button.text': (val: string) => string;
126
+ 'pisell2.product.card.add.holder.placeholder': (val: string) => string;
127
+ 'pisell2.product.card.add.holder.placeholder.multiple': (num: number, val: string) => string;
128
+ 'pisell2.product.card.add.holder.modal.title.1': string;
129
+ 'pisell2.product.card.hour.minute': (hour: number, minute: number) => string;
130
+ 'pisell2.product.card.sales': string;
131
+ 'pisell2.product.card.add.holder.modal.cancel': string;
132
+ 'pisell2.product.card.add.holder.modal.clear': string;
133
+ 'pisell2.product.card.add.holder.modal.apply': string;
134
+ 'pisell2.product.card.add.holder.modal.add': string;
135
+ 'pisell2.product.card.closing-soon.warning': string;
136
+ };
83
137
  };
84
138
  export default _default;
@@ -124,5 +124,89 @@ export default {
124
124
  'pisell2.product.card.add.holder.modal.apply': '應用',
125
125
  'pisell2.product.card.add.holder.modal.add': '添加',
126
126
  'pisell2.product.card.closing-soon.warning': '當前入場時間臨近營業結束,請確認是否仍要購買。'
127
+ },
128
+ ja: {
129
+ 'pisell2.product.card.day': function pisell2ProductCardDay(val) {
130
+ return "".concat(val > 1 ? '日' : '日');
131
+ },
132
+ 'pisell2.product.card.day.event': function pisell2ProductCardDayEvent(val) {
133
+ return "".concat(val > 1 ? '個のイベント' : '個のイベント');
134
+ },
135
+ 'pisell2.product.card.minute': function pisell2ProductCardMinute(val) {
136
+ return "".concat(val > 1 ? '分' : '分');
137
+ },
138
+ 'pisell2.product.card.discount.reason': '割引理由',
139
+ 'pisell2.product.card.discount.note': '備考',
140
+ 'pisell2.product.card.edit': '編集',
141
+ 'pisell2.product.card.discount.add.note': '備考を追加',
142
+ 'pisell2.product.card.discount.edit.note': '備考を編集',
143
+ 'pisell2.product.card.confirm': '確認',
144
+ 'pisell2.product.card.cancel': 'キャンセル',
145
+ 'pisell2.product.card.note.pla': '備考を入力してください',
146
+ 'pisell2.product.card.items.package': 'パッケージ内のアイテム',
147
+ 'pisell2.product.card.view-all': 'すべて表示',
148
+ 'pisell2.product.card.view-less': '折りたたむ',
149
+ 'pisell2.product.card.add.holder.button.text': function pisell2ProductCardAddHolderButtonText(val) {
150
+ return "".concat(val || '', "\u3092\u8FFD\u52A0");
151
+ },
152
+ 'pisell2.product.card.add.holder.placeholder': function pisell2ProductCardAddHolderPlaceholder(val) {
153
+ return "".concat(val || '', "\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044");
154
+ },
155
+ 'pisell2.product.card.add.holder.placeholder.multiple': function pisell2ProductCardAddHolderPlaceholderMultiple(num, val) {
156
+ return "".concat(num).concat(val || '', "\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044");
157
+ },
158
+ 'pisell2.product.card.add.holder.modal.title.1': "\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044",
159
+ 'pisell2.product.card.hour.minute': function pisell2ProductCardHourMinute(hour, minute) {
160
+ if (hour <= 0 && minute <= 0) return "".concat(0, "\u5206");
161
+ return "".concat(hour > 0 ? "".concat(hour, "\u6642\u9593") : '').concat(hour > 0 && minute > 0 ? ' ' : '').concat(minute > 0 ? "".concat(minute, "\u5206") : '');
162
+ },
163
+ 'pisell2.product.card.sales': '販売',
164
+ 'pisell2.product.card.add.holder.modal.cancel': 'キャンセル',
165
+ 'pisell2.product.card.add.holder.modal.clear': 'クリア',
166
+ 'pisell2.product.card.add.holder.modal.apply': '適用',
167
+ 'pisell2.product.card.add.holder.modal.add': '新規追加',
168
+ 'pisell2.product.card.closing-soon.warning': '会場はまもなく閉場します。訪問に十分な時間があることを確認してください。'
169
+ },
170
+ pt: {
171
+ 'pisell2.product.card.day': function pisell2ProductCardDay(val) {
172
+ return "".concat(val > 1 ? ' dias' : ' dia');
173
+ },
174
+ 'pisell2.product.card.day.event': function pisell2ProductCardDayEvent(val) {
175
+ return "".concat(val > 1 ? ' eventos' : ' evento');
176
+ },
177
+ 'pisell2.product.card.minute': function pisell2ProductCardMinute(val) {
178
+ return "".concat(val > 1 ? ' minutos' : ' minuto');
179
+ },
180
+ 'pisell2.product.card.discount.reason': 'Motivo do desconto',
181
+ 'pisell2.product.card.discount.note': 'Nota',
182
+ 'pisell2.product.card.edit': 'Editar',
183
+ 'pisell2.product.card.discount.add.note': 'Adicionar nota',
184
+ 'pisell2.product.card.discount.edit.note': 'Editar nota',
185
+ 'pisell2.product.card.confirm': 'Confirmar',
186
+ 'pisell2.product.card.cancel': 'Cancelar',
187
+ 'pisell2.product.card.note.pla': 'Por favor, insira a nota',
188
+ 'pisell2.product.card.items.package': 'Itens no pacote',
189
+ 'pisell2.product.card.view-all': 'Ver tudo',
190
+ 'pisell2.product.card.view-less': 'Ver menos',
191
+ 'pisell2.product.card.add.holder.button.text': function pisell2ProductCardAddHolderButtonText(val) {
192
+ return "Adicionar ".concat(val || '');
193
+ },
194
+ 'pisell2.product.card.add.holder.placeholder': function pisell2ProductCardAddHolderPlaceholder(val) {
195
+ return "Por favor, selecione ".concat(val || '');
196
+ },
197
+ 'pisell2.product.card.add.holder.placeholder.multiple': function pisell2ProductCardAddHolderPlaceholderMultiple(num, val) {
198
+ return "Por favor, selecione ".concat(num, " ").concat(val || '');
199
+ },
200
+ 'pisell2.product.card.add.holder.modal.title.1': "Por favor, selecione",
201
+ 'pisell2.product.card.hour.minute': function pisell2ProductCardHourMinute(hour, minute) {
202
+ if (hour <= 0 && minute <= 0) return "".concat(0, "min");
203
+ return "".concat(hour > 0 ? "".concat(hour, "h") : '').concat(hour > 0 && minute > 0 ? ' ' : '').concat(minute > 0 ? "".concat(minute, "min") : '');
204
+ },
205
+ 'pisell2.product.card.sales': 'Vendas',
206
+ 'pisell2.product.card.add.holder.modal.cancel': 'Cancelar',
207
+ 'pisell2.product.card.add.holder.modal.clear': 'Limpar',
208
+ 'pisell2.product.card.add.holder.modal.apply': 'Aplicar',
209
+ 'pisell2.product.card.add.holder.modal.add': 'Adicionar Novo',
210
+ 'pisell2.product.card.closing-soon.warning': 'O local fechará em breve. Por favor, certifique-se de ter tempo suficiente para sua visita.'
127
211
  }
128
212
  };
@@ -1,6 +1,8 @@
1
1
  import 'dayjs/locale/zh-cn';
2
2
  import 'dayjs/locale/en';
3
3
  import 'dayjs/locale/zh-tw';
4
+ import 'dayjs/locale/ja';
5
+ import 'dayjs/locale/pt';
4
6
  /**
5
7
  * @title: 是否英文
6
8
  * @description:
@@ -3,6 +3,8 @@ import { locales } from '@pisell/utils';
3
3
  import 'dayjs/locale/zh-cn';
4
4
  import 'dayjs/locale/en';
5
5
  import 'dayjs/locale/zh-tw';
6
+ import 'dayjs/locale/ja';
7
+ import 'dayjs/locale/pt';
6
8
  import useEngineContext from "../../hooks/useEngineContext";
7
9
 
8
10
  /**
@@ -19,7 +21,9 @@ export var isEn = function isEn(item) {
19
21
  var localeTypes = {
20
22
  'en-US': 'en',
21
23
  'zh-CN': 'zh-cn',
22
- 'zh-HK': 'zh-tw'
24
+ 'zh-HK': 'zh-tw',
25
+ 'ja': 'ja',
26
+ 'pt': 'pt'
23
27
  };
24
28
  dayjs.locale(localeTypes[locale]);
25
29
  return _isEn;
@@ -65,7 +69,9 @@ export var getServiceTime = function getServiceTime(item, currentDate) {
65
69
  var localeTypes = {
66
70
  'en-US': 'en',
67
71
  'zh-CN': 'zh-cn',
68
- 'zh-HK': 'zh-tw'
72
+ 'zh-HK': 'zh-tw',
73
+ 'ja': 'ja',
74
+ 'pt': 'pt'
69
75
  };
70
76
  dayjs.locale(localeTypes[locale]);
71
77
  var startDate = dayjs(item === null || item === void 0 ? void 0 : item.start_date);
@@ -4,6 +4,8 @@ declare type Value = {
4
4
  en: string;
5
5
  'zh-CN': string;
6
6
  'zh-HK': string;
7
+ 'ja': string;
8
+ 'pt': string;
7
9
  };
8
10
  interface TranslationProps {
9
11
  value: Value;
@@ -43,6 +43,18 @@ var defaultGlobal = {
43
43
  text: '繁體中文',
44
44
  primary: 0,
45
45
  status: 'published'
46
+ }, {
47
+ id: 4,
48
+ code: 'ja',
49
+ text: '日本語',
50
+ primary: 0,
51
+ status: 'published'
52
+ }, {
53
+ id: 5,
54
+ code: 'pt',
55
+ text: 'Português',
56
+ primary: 0,
57
+ status: 'published'
46
58
  }]
47
59
  },
48
60
  primary_locale: 'en'
@@ -2,6 +2,8 @@ export declare const locales: {
2
2
  en: string;
3
3
  "zh-CN": string;
4
4
  "zh-HK": string;
5
+ ja: string;
6
+ pt: string;
5
7
  };
6
8
  export declare const checkIfAllValuesAreEqual: (obj: any) => boolean;
7
9
  export declare const createTranslationText: (text: string, isAll?: boolean) => any;
@@ -7,7 +7,9 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
7
7
  export var locales = {
8
8
  en: "",
9
9
  "zh-CN": "",
10
- "zh-HK": ""
10
+ "zh-HK": "",
11
+ 'ja': '',
12
+ 'pt': ''
11
13
  };
12
14
  export var checkIfAllValuesAreEqual = function checkIfAllValuesAreEqual(obj) {
13
15
  var valuesArray = Object.values(obj);
@@ -7,6 +7,8 @@ export interface WalletCardItem {
7
7
  en: string;
8
8
  'zh-CN': string;
9
9
  'zh-HK': string;
10
+ 'ja': string;
11
+ 'pt': string;
10
12
  };
11
13
  display?: 0 | 1;
12
14
  value?: number;
@@ -54,7 +54,9 @@ var DEFAULT_PROPS = {
54
54
  original: 'Balance',
55
55
  'zh-CN': '充值卡',
56
56
  'zh-HK': '充值卡',
57
- en: 'Balance'
57
+ en: 'Balance',
58
+ 'ja': '残高',
59
+ 'pt': 'Saldo'
58
60
  }
59
61
  }, {
60
62
  type: 'point',
@@ -63,7 +65,9 @@ var DEFAULT_PROPS = {
63
65
  original: 'Points',
64
66
  'zh-CN': '积分卡',
65
67
  'zh-HK': '積分卡',
66
- en: 'Points'
68
+ en: 'Points',
69
+ 'ja': 'ポイント',
70
+ 'pt': 'Pontos'
67
71
  }
68
72
  }, {
69
73
  type: 'voucher',
@@ -72,7 +76,9 @@ var DEFAULT_PROPS = {
72
76
  original: 'Voucher',
73
77
  'zh-CN': '代金券',
74
78
  'zh-HK': '代金券',
75
- en: 'Voucher'
79
+ en: 'Voucher',
80
+ 'ja': 'クーポン',
81
+ 'pt': 'Cupom'
76
82
  }
77
83
  }, {
78
84
  type: 'discount',
@@ -81,6 +87,8 @@ var DEFAULT_PROPS = {
81
87
  original: 'Discount',
82
88
  'zh-CN': '折扣卡',
83
89
  'zh-HK': '折扣卡',
90
+ 'ja': '割引カード',
91
+ 'pt': 'Cartão de desconto',
84
92
  en: 'Discount'
85
93
  }
86
94
  }]
package/es/index.d.ts CHANGED
@@ -61,6 +61,8 @@ export type { PisellStatisticProps as CardMetricItemProps } from './components/c
61
61
  export { default as CardPro } from './components/cardPro';
62
62
  export { default as Cascader } from './components/cascader';
63
63
  export { default as Checkbox } from './components/checkbox';
64
+ export { PisellTimeRangeDisplay } from './components/pisellTimeRangeDisplay';
65
+ export type { PisellTimeRangeDisplayProps } from './components/pisellTimeRangeDisplay';
64
66
  export { default as ClassicLayout } from './components/classicLayout';
65
67
  export { default as Collapse } from './components/collapse';
66
68
  export { default as Component } from './components/component';
package/es/index.js CHANGED
@@ -62,6 +62,13 @@ export { default as CardMetricItem } from "./components/cardMetricItem";
62
62
  export { default as CardPro } from "./components/cardPro";
63
63
  export { default as Cascader } from "./components/cascader";
64
64
  export { default as Checkbox } from "./components/checkbox";
65
+
66
+ // ==================== 数据展示组件 (Data Display) ====================
67
+ // 用于展示各类数据指标、统计信息
68
+ // 类型已在 PisellMetrics 命名空间中导出
69
+ export { PisellTimeRangeDisplay } from "./components/pisellTimeRangeDisplay";
70
+ // ==================== 布局组件 (Layout) ====================
71
+ // 页面布局和容器组件
65
72
  export { default as ClassicLayout } from "./components/classicLayout";
66
73
  export { default as Collapse } from "./components/collapse";
67
74
  // ==================== 其他组件 ====================
@@ -1,6 +1,8 @@
1
1
  import zhCN from "./zh-CN";
2
2
  import enUS from "./en-US";
3
3
  import zhTW from "./zh-TW";
4
+ import ja from "./ja";
5
+ import pt from "./pt";
4
6
  import { getCurrentLocale } from "../utils/locale";
5
7
  var langMap = {
6
8
  'zh-CN': zhCN,
@@ -8,7 +10,9 @@ var langMap = {
8
10
  'zh-TW': zhTW,
9
11
  'zh-HK': zhTW,
10
12
  en: enUS,
11
- original: enUS
13
+ original: enUS,
14
+ "ja": ja,
15
+ "pt": pt
12
16
  };
13
17
  export var getText = function getText(id) {
14
18
  var _langMap$locale;
@@ -17,5 +21,5 @@ export var getText = function getText(id) {
17
21
  }
18
22
  var locale = getCurrentLocale();
19
23
  //@ts-ignore
20
- return (langMap === null || langMap === void 0 || (_langMap$locale = langMap[locale]) === null || _langMap$locale === void 0 ? void 0 : _langMap$locale[id]) || id;
24
+ return (langMap === null || langMap === void 0 || (_langMap$locale = langMap[locale]) === null || _langMap$locale === void 0 ? void 0 : _langMap$locale[id]) || langMap['en-US'][id] || id;
21
25
  };