@tuya-miniapp/smart-ui 2.9.1-beta-0 → 2.9.1-beta-2

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.
package/README-zh_CN.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # @tuya-miniapp/smart-ui
4
4
 
5
- ![npm](https://img.shields.io/npm/v/@tuya-miniapp/smart-ui)![down](https://img.shields.io/npm/dt/@tuya-miniapp/smart-ui)
5
+ ![CI status](https://github.com/Tuya-Community/miniapp-smart-ui/actions/workflows/test.yml/badge.svg) ![coverage](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Tuya-Community/miniapp-smart-ui/release/2.x/.github/coverage/coverage-summary.json) ![npm](https://img.shields.io/npm/v/@tuya-miniapp/smart-ui) ![down](https://img.shields.io/npm/dt/@tuya-miniapp/smart-ui)
6
6
 
7
7
  ## 介绍
8
8
 
package/README.md CHANGED
@@ -2,7 +2,7 @@ English | [简体中文](./README-zh_CN.md)
2
2
 
3
3
  # @tuya-miniapp/smart-ui
4
4
 
5
- ![npm](https://img.shields.io/npm/v/@tuya-miniapp/smart-ui)![down](https://img.shields.io/npm/dt/@tuya-miniapp/smart-ui)
5
+ ![CI status](https://github.com/Tuya-Community/miniapp-smart-ui/actions/workflows/test.yml/badge.svg) ![coverage](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Tuya-Community/miniapp-smart-ui/release/2.x/.github/coverage/coverage-summary.json) ![npm](https://img.shields.io/npm/v/@tuya-miniapp/smart-ui) ![down](https://img.shields.io/npm/dt/@tuya-miniapp/smart-ui)
6
6
 
7
7
  ## Introduction
8
8
 
@@ -137,6 +137,10 @@ SmartComponent({
137
137
  type: Number,
138
138
  value: 0,
139
139
  },
140
+ firstDayOfSelectWeek: {
141
+ type: Number,
142
+ value: 1,
143
+ },
140
144
  readonly: Boolean,
141
145
  rootPortal: {
142
146
  type: Boolean,
@@ -306,7 +310,7 @@ SmartComponent({
306
310
  let { date } = event.detail;
307
311
  const { type, currentDate, allowSameDay } = this.data;
308
312
  if (type === 'week') {
309
- const { weekStart, weekEnd } = getWeekStartAndEnd(date);
313
+ const { weekStart, weekEnd } = getWeekStartAndEnd(date, this.data.firstDayOfSelectWeek);
310
314
  this.select([
311
315
  Math.max(getTime(weekStart), getTime(this.data.minDate)),
312
316
  Math.min(getTime(weekEnd), getTime(this.data.maxDate)),
@@ -11,7 +11,7 @@ export declare function getMonthEndDay(year: number, month: number): number;
11
11
  export declare function getMonths(minDate: number, maxDate: number): number[];
12
12
  export declare function getYears(minDate: number, maxDate: number): number[];
13
13
  export declare function getCurrentIndex(currentDate: any, months: any): number;
14
- export declare function getWeekStartAndEnd(date: Date): {
14
+ export declare function getWeekStartAndEnd(date: Date, firstDayOfWeek?: number): {
15
15
  weekStart: Date;
16
16
  weekEnd: Date;
17
17
  };
@@ -114,11 +114,15 @@ export function getCurrentIndex(currentDate, months) {
114
114
  }
115
115
  return findLastGreaterOrEqual(months, currentDate);
116
116
  }
117
- export function getWeekStartAndEnd(date) {
117
+ export function getWeekStartAndEnd(date, firstDayOfWeek = 1) {
118
+ // firstDayOfWeek: 0(周日) ~ 6(周六)
118
119
  const startOfWeek = new Date(date);
119
120
  const dayOfWeek = startOfWeek.getDay();
120
- const diffToMonday = (dayOfWeek + 6) % 7;
121
- startOfWeek.setDate(startOfWeek.getDate() - diffToMonday);
121
+ let diffToFirst = dayOfWeek - firstDayOfWeek;
122
+ if (diffToFirst < 0) {
123
+ diffToFirst += 7;
124
+ }
125
+ startOfWeek.setDate(startOfWeek.getDate() - diffToFirst);
122
126
  const endOfWeek = new Date(startOfWeek);
123
127
  endOfWeek.setDate(startOfWeek.getDate() + 6);
124
128
  return {
@@ -148,6 +148,10 @@ var getTime = function (date) { return (date instanceof Date ? date.getTime() :
148
148
  type: Number,
149
149
  value: 0,
150
150
  },
151
+ firstDayOfSelectWeek: {
152
+ type: Number,
153
+ value: 1,
154
+ },
151
155
  readonly: Boolean,
152
156
  rootPortal: {
153
157
  type: Boolean,
@@ -321,7 +325,7 @@ var getTime = function (date) { return (date instanceof Date ? date.getTime() :
321
325
  var date = event.detail.date;
322
326
  var _a = this.data, type = _a.type, currentDate = _a.currentDate, allowSameDay = _a.allowSameDay;
323
327
  if (type === 'week') {
324
- var _b = (0, utils_1.getWeekStartAndEnd)(date), weekStart = _b.weekStart, weekEnd = _b.weekEnd;
328
+ var _b = (0, utils_1.getWeekStartAndEnd)(date, this.data.firstDayOfSelectWeek), weekStart = _b.weekStart, weekEnd = _b.weekEnd;
325
329
  this.select([
326
330
  Math.max(getTime(weekStart), getTime(this.data.minDate)),
327
331
  Math.min(getTime(weekEnd), getTime(this.data.maxDate)),
@@ -11,7 +11,7 @@ export declare function getMonthEndDay(year: number, month: number): number;
11
11
  export declare function getMonths(minDate: number, maxDate: number): number[];
12
12
  export declare function getYears(minDate: number, maxDate: number): number[];
13
13
  export declare function getCurrentIndex(currentDate: any, months: any): number;
14
- export declare function getWeekStartAndEnd(date: Date): {
14
+ export declare function getWeekStartAndEnd(date: Date, firstDayOfWeek?: number): {
15
15
  weekStart: Date;
16
16
  weekEnd: Date;
17
17
  };
@@ -131,11 +131,16 @@ function getCurrentIndex(currentDate, months) {
131
131
  return findLastGreaterOrEqual(months, currentDate);
132
132
  }
133
133
  exports.getCurrentIndex = getCurrentIndex;
134
- function getWeekStartAndEnd(date) {
134
+ function getWeekStartAndEnd(date, firstDayOfWeek) {
135
+ if (firstDayOfWeek === void 0) { firstDayOfWeek = 1; }
136
+ // firstDayOfWeek: 0(周日) ~ 6(周六)
135
137
  var startOfWeek = new Date(date);
136
138
  var dayOfWeek = startOfWeek.getDay();
137
- var diffToMonday = (dayOfWeek + 6) % 7;
138
- startOfWeek.setDate(startOfWeek.getDate() - diffToMonday);
139
+ var diffToFirst = dayOfWeek - firstDayOfWeek;
140
+ if (diffToFirst < 0) {
141
+ diffToFirst += 7;
142
+ }
143
+ startOfWeek.setDate(startOfWeek.getDate() - diffToFirst);
139
144
  var endOfWeek = new Date(startOfWeek);
140
145
  endOfWeek.setDate(startOfWeek.getDate() + 6);
141
146
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tuya-miniapp/smart-ui",
3
- "version": "2.9.1-beta-0",
3
+ "version": "2.9.1-beta-2",
4
4
  "author": "MiniApp Team",
5
5
  "license": "MIT",
6
6
  "miniprogram": "lib",