@nocobase/utils 1.3.38-beta → 1.4.0-alpha

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/lib/date.d.ts CHANGED
@@ -35,3 +35,4 @@ export declare const moment2str: (value?: dayjs.Dayjs, options?: Moment2strOptio
35
35
  * from https://github.com/moment/moment/blob/dca02edaeceda3fcd52b20b51c130631a058a022/src/lib/units/offset.js#L55-L70
36
36
  */
37
37
  export declare function offsetFromString(string: string | number): number;
38
+ export declare const getPickerFormat: (picker: any) => "YYYY-MM" | "YYYY" | "YYYY[W]W" | "YYYY-MM-DD" | "YYYY[Q]Q";
package/lib/date.js CHANGED
@@ -38,6 +38,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
38
38
  var date_exports = {};
39
39
  __export(date_exports, {
40
40
  getDefaultFormat: () => getDefaultFormat,
41
+ getPickerFormat: () => getPickerFormat,
41
42
  moment2str: () => moment2str,
42
43
  offsetFromString: () => offsetFromString,
43
44
  str2moment: () => str2moment,
@@ -64,7 +65,7 @@ const getDefaultFormat = /* @__PURE__ */ __name((props) => {
64
65
  } else if (props["picker"] === "year") {
65
66
  return "YYYY";
66
67
  } else if (props["picker"] === "week") {
67
- return "YYYY-wo";
68
+ return "YYYY[W]W";
68
69
  }
69
70
  return props["showTime"] ? "YYYY-MM-DD HH:mm:ss" : "YYYY-MM-DD";
70
71
  }, "getDefaultFormat");
@@ -85,22 +86,31 @@ const toLocal = /* @__PURE__ */ __name((value) => {
85
86
  return value.startOf("second").toISOString();
86
87
  }
87
88
  }, "toLocal");
89
+ const convertQuarterToFirstDay = /* @__PURE__ */ __name((quarterStr) => {
90
+ const year = parseInt(quarterStr.slice(0, 4));
91
+ const quarter = parseInt(quarterStr.slice(-1));
92
+ return (0, import_dayjs.dayjs)().quarter(quarter).year(year);
93
+ }, "convertQuarterToFirstDay");
88
94
  const toMoment = /* @__PURE__ */ __name((val, options) => {
89
95
  if (!val) {
90
96
  return;
91
97
  }
92
98
  const offset = options.utcOffset || -1 * (/* @__PURE__ */ new Date()).getTimezoneOffset();
93
99
  const { gmt, picker, utc = true } = options;
94
- if (!utc) {
95
- return (0, import_dayjs.dayjs)(val);
96
- }
97
- if (import_dayjs.dayjs.isDayjs(val)) {
98
- return val.utcOffset(offsetFromString(offset));
99
- }
100
- if (gmt || picker) {
101
- return (0, import_dayjs.dayjs)(val).utcOffset(0);
100
+ if ((0, import_dayjs.dayjs)(val).isValid()) {
101
+ if (!utc) {
102
+ return (0, import_dayjs.dayjs)(val);
103
+ }
104
+ if (import_dayjs.dayjs.isDayjs(val)) {
105
+ return val.utcOffset(offsetFromString(offset));
106
+ }
107
+ if (gmt) {
108
+ return (0, import_dayjs.dayjs)(val).utcOffset(0);
109
+ }
110
+ return (0, import_dayjs.dayjs)(val).utcOffset(offsetFromString(offset));
111
+ } else {
112
+ return convertQuarterToFirstDay(val);
102
113
  }
103
- return (0, import_dayjs.dayjs)(val).utcOffset(offsetFromString(offset));
104
114
  }, "toMoment");
105
115
  const str2moment = /* @__PURE__ */ __name((value, options = {}) => {
106
116
  return Array.isArray(value) ? value.map((val) => {
@@ -178,9 +188,24 @@ function absFloor(number) {
178
188
  }
179
189
  }
180
190
  __name(absFloor, "absFloor");
191
+ const getPickerFormat = /* @__PURE__ */ __name((picker) => {
192
+ switch (picker) {
193
+ case "week":
194
+ return "YYYY[W]W";
195
+ case "month":
196
+ return "YYYY-MM";
197
+ case "quarter":
198
+ return "YYYY[Q]Q";
199
+ case "year":
200
+ return "YYYY";
201
+ default:
202
+ return "YYYY-MM-DD";
203
+ }
204
+ }, "getPickerFormat");
181
205
  // Annotate the CommonJS export names for ESM import in node:
182
206
  0 && (module.exports = {
183
207
  getDefaultFormat,
208
+ getPickerFormat,
184
209
  moment2str,
185
210
  offsetFromString,
186
211
  str2moment,
@@ -191,6 +191,9 @@ const parseFilter = /* @__PURE__ */ __name(async (filter, opts = {}) => {
191
191
  }
192
192
  if (isDateOperator(operator)) {
193
193
  const field = getField == null ? void 0 : getField(path);
194
+ if ((field == null ? void 0 : field.constructor.name) === "DateOnlyField" || (field == null ? void 0 : field.constructor.name) === "DatetimeNoTzField") {
195
+ return value;
196
+ }
194
197
  return dateValueWrapper(value, (field == null ? void 0 : field.timezone) || timezone);
195
198
  }
196
199
  return value;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocobase/utils",
3
- "version": "1.3.38-beta",
3
+ "version": "1.4.0-alpha",
4
4
  "main": "lib/index.js",
5
5
  "types": "./lib/index.d.ts",
6
6
  "license": "AGPL-3.0",
@@ -14,5 +14,5 @@
14
14
  "multer": "^1.4.5-lts.1",
15
15
  "object-path": "^0.11.8"
16
16
  },
17
- "gitHead": "1b9490667c9224cd0b179cbf75e10a581c49b230"
17
+ "gitHead": "f097a2bddec152522b5645bd5d451f4c866d2060"
18
18
  }