openxiangda 1.0.38 → 1.0.40

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 (59) hide show
  1. package/README.md +4 -3
  2. package/lib/cli.js +135 -5
  3. package/openxiangda-skills/SKILL.md +8 -5
  4. package/openxiangda-skills/references/best-practices.md +29 -5
  5. package/openxiangda-skills/references/component-guide.md +79 -45
  6. package/openxiangda-skills/references/connector-resources.md +1 -1
  7. package/openxiangda-skills/references/data-views.md +130 -5
  8. package/openxiangda-skills/references/forms/component-registry.md +33 -1
  9. package/openxiangda-skills/references/pages/page-sdk.md +30 -2
  10. package/openxiangda-skills/references/resource-manifest-cheatsheet.md +37 -1
  11. package/openxiangda-skills/skills/openxiangda-core/SKILL.md +2 -2
  12. package/openxiangda-skills/skills/openxiangda-form/SKILL.md +9 -2
  13. package/openxiangda-skills/skills/openxiangda-page/SKILL.md +6 -4
  14. package/package.json +1 -1
  15. package/packages/sdk/dist/runtime/index.cjs +583 -1
  16. package/packages/sdk/dist/runtime/index.cjs.map +1 -1
  17. package/packages/sdk/dist/runtime/index.d.mts +5 -1
  18. package/packages/sdk/dist/runtime/index.d.ts +5 -1
  19. package/packages/sdk/dist/runtime/index.mjs +583 -1
  20. package/packages/sdk/dist/runtime/index.mjs.map +1 -1
  21. package/packages/sdk/src/build-source/scripts/build-forms.mjs +5 -1
  22. package/templates/sy-lowcode-app-workspace/.cursor/rules/openxiangda-form.mdc +4 -0
  23. package/templates/sy-lowcode-app-workspace/.cursor/rules/openxiangda-page.mdc +2 -0
  24. package/templates/sy-lowcode-app-workspace/.cursor/rules/openxiangda.mdc +3 -0
  25. package/templates/sy-lowcode-app-workspace/.qoder/rules/openxiangda-form.md +4 -0
  26. package/templates/sy-lowcode-app-workspace/.qoder/rules/openxiangda-page.md +2 -0
  27. package/templates/sy-lowcode-app-workspace/.qoder/rules/openxiangda.md +3 -0
  28. package/templates/sy-lowcode-app-workspace/AGENTS.md +5 -0
  29. package/templates/sy-lowcode-app-workspace/examples/best-practices/README.md +8 -0
  30. package/templates/sy-lowcode-app-workspace/examples/best-practices/catalog.json +32 -0
  31. package/templates/sy-lowcode-app-workspace/examples/best-practices/decision-guide.md +20 -0
  32. package/templates/sy-lowcode-app-workspace/examples/best-practices/design-style.md +48 -0
  33. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/glass-home-dashboard/App.tsx +8 -0
  34. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/glass-home-dashboard/GlassHomeDashboard.tsx +232 -0
  35. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/glass-home-dashboard/index.tsx +10 -0
  36. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/glass-home-dashboard/page.config.ts +14 -0
  37. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/glass-home-dashboard/styles.css +196 -0
  38. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/mint-analytics-dashboard/App.tsx +8 -0
  39. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/mint-analytics-dashboard/MintAnalyticsDashboard.tsx +279 -0
  40. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/mint-analytics-dashboard/index.tsx +10 -0
  41. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/mint-analytics-dashboard/page.config.ts +14 -0
  42. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/mint-analytics-dashboard/styles.css +163 -0
  43. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/ops-monitor-dashboard/App.tsx +8 -0
  44. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/ops-monitor-dashboard/OpsMonitorDashboard.tsx +306 -0
  45. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/ops-monitor-dashboard/index.tsx +10 -0
  46. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/ops-monitor-dashboard/page.config.ts +14 -0
  47. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/ops-monitor-dashboard/styles.css +248 -0
  48. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/work-order-list-drawer/App.tsx +8 -0
  49. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/work-order-list-drawer/WorkOrderListDrawerPage.tsx +371 -0
  50. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/work-order-list-drawer/index.tsx +10 -0
  51. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/work-order-list-drawer/page.config.ts +14 -0
  52. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/work-order-list-drawer/styles.css +182 -0
  53. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/shared/components/admin-ui-templates/DashboardPrimitives.tsx +832 -0
  54. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/shared/components/admin-ui-templates/chartOptions.ts +140 -0
  55. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/shared/components/admin-ui-templates/sampleData.ts +466 -0
  56. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/shared/components/admin-ui-templates/styles.css +874 -0
  57. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/shared/components/admin-ui-templates/types.ts +150 -0
  58. package/templates/sy-lowcode-app-workspace/src/forms/README.md +4 -0
  59. package/templates/sy-lowcode-app-workspace/src/main.tsx +4 -0
@@ -1166,6 +1166,30 @@ var createPageSdk = (context) => {
1166
1166
  order: Array.isArray(params.order) ? params.order : params.order ? [params.order] : void 0
1167
1167
  }
1168
1168
  });
1169
+ },
1170
+ stats: (code, params = {}) => {
1171
+ const dataViewCode = String(code || "").trim();
1172
+ if (!dataViewCode) {
1173
+ throw new Error("\u6570\u636E\u89C6\u56FE code \u4E0D\u80FD\u4E3A\u7A7A");
1174
+ }
1175
+ return request({
1176
+ path: buildAppPath(
1177
+ context,
1178
+ params.appType,
1179
+ `/v1/data-views/${encodePathSegment(dataViewCode)}/stats.json`
1180
+ ),
1181
+ method: "post",
1182
+ body: {
1183
+ fields: params.fields,
1184
+ filters: serializeSearchExpression(params.filters),
1185
+ having: serializeSearchExpression(params.having),
1186
+ conditionType: params.conditionType,
1187
+ searchKeyWord: params.searchKeyWord,
1188
+ currentPage: params.currentPage,
1189
+ pageSize: params.pageSize,
1190
+ order: Array.isArray(params.order) ? params.order : params.order ? [params.order] : void 0
1191
+ }
1192
+ });
1169
1193
  }
1170
1194
  };
1171
1195
  const notification = {
@@ -1246,7 +1270,8 @@ var createPageSdk = (context) => {
1246
1270
  runtimeParams.formUuid || descriptor.formUuid || ""
1247
1271
  ).trim();
1248
1272
  switch (descriptor.type) {
1249
- case "dataView.query": {
1273
+ case "dataView.query":
1274
+ case "dataView.stats": {
1250
1275
  const dataViewCode = String(
1251
1276
  runtimeParams.code || runtimeParams.dataViewCode || descriptor.code || descriptor.dataViewCode || descriptor.viewCode || descriptor.key || ""
1252
1277
  ).trim();
@@ -1257,11 +1282,22 @@ var createPageSdk = (context) => {
1257
1282
  filters: mergeSearchExpressions(
1258
1283
  descriptor.defaultFilter,
1259
1284
  runtimeParams.filters
1285
+ ),
1286
+ having: mergeSearchExpressions(
1287
+ descriptor.defaultHaving || descriptor.having,
1288
+ runtimeParams.having
1260
1289
  )
1261
1290
  };
1262
1291
  delete queryParams.code;
1263
1292
  delete queryParams.dataViewCode;
1264
1293
  delete queryParams.viewCode;
1294
+ if (descriptor.type === "dataView.stats") {
1295
+ return dataView.stats(
1296
+ dataViewCode,
1297
+ queryParams
1298
+ );
1299
+ }
1300
+ delete queryParams.having;
1265
1301
  return dataView.query(
1266
1302
  dataViewCode,
1267
1303
  queryParams
@@ -1311,6 +1347,550 @@ var createPageSdk = (context) => {
1311
1347
  import { StyleProvider } from "@ant-design/cssinjs";
1312
1348
  import { App as AntdApp, ConfigProvider, message } from "antd";
1313
1349
  import zhCN from "antd/locale/zh_CN.js";
1350
+ import dayjs3 from "dayjs";
1351
+
1352
+ // node_modules/dayjs/esm/constant.js
1353
+ var SECONDS_A_MINUTE = 60;
1354
+ var SECONDS_A_HOUR = SECONDS_A_MINUTE * 60;
1355
+ var SECONDS_A_DAY = SECONDS_A_HOUR * 24;
1356
+ var SECONDS_A_WEEK = SECONDS_A_DAY * 7;
1357
+ var MILLISECONDS_A_SECOND = 1e3;
1358
+ var MILLISECONDS_A_MINUTE = SECONDS_A_MINUTE * MILLISECONDS_A_SECOND;
1359
+ var MILLISECONDS_A_HOUR = SECONDS_A_HOUR * MILLISECONDS_A_SECOND;
1360
+ var MILLISECONDS_A_DAY = SECONDS_A_DAY * MILLISECONDS_A_SECOND;
1361
+ var MILLISECONDS_A_WEEK = SECONDS_A_WEEK * MILLISECONDS_A_SECOND;
1362
+ var MS = "millisecond";
1363
+ var S = "second";
1364
+ var MIN = "minute";
1365
+ var H = "hour";
1366
+ var D = "day";
1367
+ var W = "week";
1368
+ var M = "month";
1369
+ var Q = "quarter";
1370
+ var Y = "year";
1371
+ var DATE = "date";
1372
+ var FORMAT_DEFAULT = "YYYY-MM-DDTHH:mm:ssZ";
1373
+ var INVALID_DATE_STRING = "Invalid Date";
1374
+ var REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/;
1375
+ var REGEX_FORMAT = /\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;
1376
+
1377
+ // node_modules/dayjs/esm/locale/en.js
1378
+ var en_default = {
1379
+ name: "en",
1380
+ weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
1381
+ months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
1382
+ ordinal: function ordinal(n) {
1383
+ var s = ["th", "st", "nd", "rd"];
1384
+ var v = n % 100;
1385
+ return "[" + n + (s[(v - 20) % 10] || s[v] || s[0]) + "]";
1386
+ }
1387
+ };
1388
+
1389
+ // node_modules/dayjs/esm/utils.js
1390
+ var padStart = function padStart2(string, length, pad) {
1391
+ var s = String(string);
1392
+ if (!s || s.length >= length) return string;
1393
+ return "" + Array(length + 1 - s.length).join(pad) + string;
1394
+ };
1395
+ var padZoneStr = function padZoneStr2(instance) {
1396
+ var negMinutes = -instance.utcOffset();
1397
+ var minutes = Math.abs(negMinutes);
1398
+ var hourOffset = Math.floor(minutes / 60);
1399
+ var minuteOffset = minutes % 60;
1400
+ return (negMinutes <= 0 ? "+" : "-") + padStart(hourOffset, 2, "0") + ":" + padStart(minuteOffset, 2, "0");
1401
+ };
1402
+ var monthDiff = function monthDiff2(a, b) {
1403
+ if (a.date() < b.date()) return -monthDiff2(b, a);
1404
+ var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month());
1405
+ var anchor = a.clone().add(wholeMonthDiff, M);
1406
+ var c = b - anchor < 0;
1407
+ var anchor2 = a.clone().add(wholeMonthDiff + (c ? -1 : 1), M);
1408
+ return +(-(wholeMonthDiff + (b - anchor) / (c ? anchor - anchor2 : anchor2 - anchor)) || 0);
1409
+ };
1410
+ var absFloor = function absFloor2(n) {
1411
+ return n < 0 ? Math.ceil(n) || 0 : Math.floor(n);
1412
+ };
1413
+ var prettyUnit = function prettyUnit2(u) {
1414
+ var special = {
1415
+ M,
1416
+ y: Y,
1417
+ w: W,
1418
+ d: D,
1419
+ D: DATE,
1420
+ h: H,
1421
+ m: MIN,
1422
+ s: S,
1423
+ ms: MS,
1424
+ Q
1425
+ };
1426
+ return special[u] || String(u || "").toLowerCase().replace(/s$/, "");
1427
+ };
1428
+ var isUndefined = function isUndefined2(s) {
1429
+ return s === void 0;
1430
+ };
1431
+ var utils_default = {
1432
+ s: padStart,
1433
+ z: padZoneStr,
1434
+ m: monthDiff,
1435
+ a: absFloor,
1436
+ p: prettyUnit,
1437
+ u: isUndefined
1438
+ };
1439
+
1440
+ // node_modules/dayjs/esm/index.js
1441
+ var L = "en";
1442
+ var Ls = {};
1443
+ Ls[L] = en_default;
1444
+ var IS_DAYJS = "$isDayjsObject";
1445
+ var isDayjs = function isDayjs2(d) {
1446
+ return d instanceof Dayjs || !!(d && d[IS_DAYJS]);
1447
+ };
1448
+ var parseLocale = function parseLocale2(preset, object, isLocal) {
1449
+ var l;
1450
+ if (!preset) return L;
1451
+ if (typeof preset === "string") {
1452
+ var presetLower = preset.toLowerCase();
1453
+ if (Ls[presetLower]) {
1454
+ l = presetLower;
1455
+ }
1456
+ if (object) {
1457
+ Ls[presetLower] = object;
1458
+ l = presetLower;
1459
+ }
1460
+ var presetSplit = preset.split("-");
1461
+ if (!l && presetSplit.length > 1) {
1462
+ return parseLocale2(presetSplit[0]);
1463
+ }
1464
+ } else {
1465
+ var name = preset.name;
1466
+ Ls[name] = preset;
1467
+ l = name;
1468
+ }
1469
+ if (!isLocal && l) L = l;
1470
+ return l || !isLocal && L;
1471
+ };
1472
+ var dayjs = function dayjs2(date, c) {
1473
+ if (isDayjs(date)) {
1474
+ return date.clone();
1475
+ }
1476
+ var cfg = typeof c === "object" ? c : {};
1477
+ cfg.date = date;
1478
+ cfg.args = arguments;
1479
+ return new Dayjs(cfg);
1480
+ };
1481
+ var wrapper = function wrapper2(date, instance) {
1482
+ return dayjs(date, {
1483
+ locale: instance.$L,
1484
+ utc: instance.$u,
1485
+ x: instance.$x,
1486
+ $offset: instance.$offset
1487
+ // todo: refactor; do not use this.$offset in you code
1488
+ });
1489
+ };
1490
+ var Utils = utils_default;
1491
+ Utils.l = parseLocale;
1492
+ Utils.i = isDayjs;
1493
+ Utils.w = wrapper;
1494
+ var parseDate = function parseDate2(cfg) {
1495
+ var date = cfg.date, utc = cfg.utc;
1496
+ if (date === null) return /* @__PURE__ */ new Date(NaN);
1497
+ if (Utils.u(date)) return /* @__PURE__ */ new Date();
1498
+ if (date instanceof Date) return new Date(date);
1499
+ if (typeof date === "string" && !/Z$/i.test(date)) {
1500
+ var d = date.match(REGEX_PARSE);
1501
+ if (d) {
1502
+ var m = d[2] - 1 || 0;
1503
+ var ms = (d[7] || "0").substring(0, 3);
1504
+ if (utc) {
1505
+ return new Date(Date.UTC(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms));
1506
+ }
1507
+ return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);
1508
+ }
1509
+ }
1510
+ return new Date(date);
1511
+ };
1512
+ var Dayjs = /* @__PURE__ */ (function() {
1513
+ function Dayjs2(cfg) {
1514
+ this.$L = parseLocale(cfg.locale, null, true);
1515
+ this.parse(cfg);
1516
+ this.$x = this.$x || cfg.x || {};
1517
+ this[IS_DAYJS] = true;
1518
+ }
1519
+ var _proto = Dayjs2.prototype;
1520
+ _proto.parse = function parse(cfg) {
1521
+ this.$d = parseDate(cfg);
1522
+ this.init();
1523
+ };
1524
+ _proto.init = function init() {
1525
+ var $d = this.$d;
1526
+ this.$y = $d.getFullYear();
1527
+ this.$M = $d.getMonth();
1528
+ this.$D = $d.getDate();
1529
+ this.$W = $d.getDay();
1530
+ this.$H = $d.getHours();
1531
+ this.$m = $d.getMinutes();
1532
+ this.$s = $d.getSeconds();
1533
+ this.$ms = $d.getMilliseconds();
1534
+ };
1535
+ _proto.$utils = function $utils() {
1536
+ return Utils;
1537
+ };
1538
+ _proto.isValid = function isValid() {
1539
+ return !(this.$d.toString() === INVALID_DATE_STRING);
1540
+ };
1541
+ _proto.isSame = function isSame(that, units) {
1542
+ var other = dayjs(that);
1543
+ return this.startOf(units) <= other && other <= this.endOf(units);
1544
+ };
1545
+ _proto.isAfter = function isAfter(that, units) {
1546
+ return dayjs(that) < this.startOf(units);
1547
+ };
1548
+ _proto.isBefore = function isBefore(that, units) {
1549
+ return this.endOf(units) < dayjs(that);
1550
+ };
1551
+ _proto.$g = function $g(input, get, set) {
1552
+ if (Utils.u(input)) return this[get];
1553
+ return this.set(set, input);
1554
+ };
1555
+ _proto.unix = function unix() {
1556
+ return Math.floor(this.valueOf() / 1e3);
1557
+ };
1558
+ _proto.valueOf = function valueOf() {
1559
+ return this.$d.getTime();
1560
+ };
1561
+ _proto.startOf = function startOf(units, _startOf) {
1562
+ var _this = this;
1563
+ var isStartOf = !Utils.u(_startOf) ? _startOf : true;
1564
+ var unit = Utils.p(units);
1565
+ var instanceFactory = function instanceFactory2(d, m) {
1566
+ var ins = Utils.w(_this.$u ? Date.UTC(_this.$y, m, d) : new Date(_this.$y, m, d), _this);
1567
+ return isStartOf ? ins : ins.endOf(D);
1568
+ };
1569
+ var instanceFactorySet = function instanceFactorySet2(method, slice) {
1570
+ var argumentStart = [0, 0, 0, 0];
1571
+ var argumentEnd = [23, 59, 59, 999];
1572
+ return Utils.w(_this.toDate()[method].apply(
1573
+ // eslint-disable-line prefer-spread
1574
+ _this.toDate("s"),
1575
+ (isStartOf ? argumentStart : argumentEnd).slice(slice)
1576
+ ), _this);
1577
+ };
1578
+ var $W = this.$W, $M = this.$M, $D = this.$D;
1579
+ var utcPad = "set" + (this.$u ? "UTC" : "");
1580
+ switch (unit) {
1581
+ case Y:
1582
+ return isStartOf ? instanceFactory(1, 0) : instanceFactory(31, 11);
1583
+ case M:
1584
+ return isStartOf ? instanceFactory(1, $M) : instanceFactory(0, $M + 1);
1585
+ case W: {
1586
+ var weekStart = this.$locale().weekStart || 0;
1587
+ var gap = ($W < weekStart ? $W + 7 : $W) - weekStart;
1588
+ return instanceFactory(isStartOf ? $D - gap : $D + (6 - gap), $M);
1589
+ }
1590
+ case D:
1591
+ case DATE:
1592
+ return instanceFactorySet(utcPad + "Hours", 0);
1593
+ case H:
1594
+ return instanceFactorySet(utcPad + "Minutes", 1);
1595
+ case MIN:
1596
+ return instanceFactorySet(utcPad + "Seconds", 2);
1597
+ case S:
1598
+ return instanceFactorySet(utcPad + "Milliseconds", 3);
1599
+ default:
1600
+ return this.clone();
1601
+ }
1602
+ };
1603
+ _proto.endOf = function endOf(arg) {
1604
+ return this.startOf(arg, false);
1605
+ };
1606
+ _proto.$set = function $set(units, _int) {
1607
+ var _C$D$C$DATE$C$M$C$Y$C;
1608
+ var unit = Utils.p(units);
1609
+ var utcPad = "set" + (this.$u ? "UTC" : "");
1610
+ var name = (_C$D$C$DATE$C$M$C$Y$C = {}, _C$D$C$DATE$C$M$C$Y$C[D] = utcPad + "Date", _C$D$C$DATE$C$M$C$Y$C[DATE] = utcPad + "Date", _C$D$C$DATE$C$M$C$Y$C[M] = utcPad + "Month", _C$D$C$DATE$C$M$C$Y$C[Y] = utcPad + "FullYear", _C$D$C$DATE$C$M$C$Y$C[H] = utcPad + "Hours", _C$D$C$DATE$C$M$C$Y$C[MIN] = utcPad + "Minutes", _C$D$C$DATE$C$M$C$Y$C[S] = utcPad + "Seconds", _C$D$C$DATE$C$M$C$Y$C[MS] = utcPad + "Milliseconds", _C$D$C$DATE$C$M$C$Y$C)[unit];
1611
+ var arg = unit === D ? this.$D + (_int - this.$W) : _int;
1612
+ if (unit === M || unit === Y) {
1613
+ var date = this.clone().set(DATE, 1);
1614
+ date.$d[name](arg);
1615
+ date.init();
1616
+ this.$d = date.set(DATE, Math.min(this.$D, date.daysInMonth())).$d;
1617
+ } else if (name) this.$d[name](arg);
1618
+ this.init();
1619
+ return this;
1620
+ };
1621
+ _proto.set = function set(string, _int2) {
1622
+ return this.clone().$set(string, _int2);
1623
+ };
1624
+ _proto.get = function get(unit) {
1625
+ return this[Utils.p(unit)]();
1626
+ };
1627
+ _proto.add = function add(number, units) {
1628
+ var _this2 = this, _C$MIN$C$H$C$S$unit;
1629
+ number = Number(number);
1630
+ var unit = Utils.p(units);
1631
+ var instanceFactorySet = function instanceFactorySet2(n) {
1632
+ var d = dayjs(_this2);
1633
+ return Utils.w(d.date(d.date() + Math.round(n * number)), _this2);
1634
+ };
1635
+ if (unit === M) {
1636
+ return this.set(M, this.$M + number);
1637
+ }
1638
+ if (unit === Y) {
1639
+ return this.set(Y, this.$y + number);
1640
+ }
1641
+ if (unit === D) {
1642
+ return instanceFactorySet(1);
1643
+ }
1644
+ if (unit === W) {
1645
+ return instanceFactorySet(7);
1646
+ }
1647
+ var step = (_C$MIN$C$H$C$S$unit = {}, _C$MIN$C$H$C$S$unit[MIN] = MILLISECONDS_A_MINUTE, _C$MIN$C$H$C$S$unit[H] = MILLISECONDS_A_HOUR, _C$MIN$C$H$C$S$unit[S] = MILLISECONDS_A_SECOND, _C$MIN$C$H$C$S$unit)[unit] || 1;
1648
+ var nextTimeStamp = this.$d.getTime() + number * step;
1649
+ return Utils.w(nextTimeStamp, this);
1650
+ };
1651
+ _proto.subtract = function subtract(number, string) {
1652
+ return this.add(number * -1, string);
1653
+ };
1654
+ _proto.format = function format(formatStr) {
1655
+ var _this3 = this;
1656
+ var locale2 = this.$locale();
1657
+ if (!this.isValid()) return locale2.invalidDate || INVALID_DATE_STRING;
1658
+ var str = formatStr || FORMAT_DEFAULT;
1659
+ var zoneStr = Utils.z(this);
1660
+ var $H = this.$H, $m = this.$m, $M = this.$M;
1661
+ var weekdays = locale2.weekdays, months = locale2.months, meridiem2 = locale2.meridiem;
1662
+ var getShort = function getShort2(arr, index, full, length) {
1663
+ return arr && (arr[index] || arr(_this3, str)) || full[index].slice(0, length);
1664
+ };
1665
+ var get$H = function get$H2(num) {
1666
+ return Utils.s($H % 12 || 12, num, "0");
1667
+ };
1668
+ var meridiemFunc = meridiem2 || function(hour, minute, isLowercase) {
1669
+ var m = hour < 12 ? "AM" : "PM";
1670
+ return isLowercase ? m.toLowerCase() : m;
1671
+ };
1672
+ var matches = function matches2(match) {
1673
+ switch (match) {
1674
+ case "YY":
1675
+ return String(_this3.$y).slice(-2);
1676
+ case "YYYY":
1677
+ return Utils.s(_this3.$y, 4, "0");
1678
+ case "M":
1679
+ return $M + 1;
1680
+ case "MM":
1681
+ return Utils.s($M + 1, 2, "0");
1682
+ case "MMM":
1683
+ return getShort(locale2.monthsShort, $M, months, 3);
1684
+ case "MMMM":
1685
+ return getShort(months, $M);
1686
+ case "D":
1687
+ return _this3.$D;
1688
+ case "DD":
1689
+ return Utils.s(_this3.$D, 2, "0");
1690
+ case "d":
1691
+ return String(_this3.$W);
1692
+ case "dd":
1693
+ return getShort(locale2.weekdaysMin, _this3.$W, weekdays, 2);
1694
+ case "ddd":
1695
+ return getShort(locale2.weekdaysShort, _this3.$W, weekdays, 3);
1696
+ case "dddd":
1697
+ return weekdays[_this3.$W];
1698
+ case "H":
1699
+ return String($H);
1700
+ case "HH":
1701
+ return Utils.s($H, 2, "0");
1702
+ case "h":
1703
+ return get$H(1);
1704
+ case "hh":
1705
+ return get$H(2);
1706
+ case "a":
1707
+ return meridiemFunc($H, $m, true);
1708
+ case "A":
1709
+ return meridiemFunc($H, $m, false);
1710
+ case "m":
1711
+ return String($m);
1712
+ case "mm":
1713
+ return Utils.s($m, 2, "0");
1714
+ case "s":
1715
+ return String(_this3.$s);
1716
+ case "ss":
1717
+ return Utils.s(_this3.$s, 2, "0");
1718
+ case "SSS":
1719
+ return Utils.s(_this3.$ms, 3, "0");
1720
+ case "Z":
1721
+ return zoneStr;
1722
+ // 'ZZ' logic below
1723
+ default:
1724
+ break;
1725
+ }
1726
+ return null;
1727
+ };
1728
+ return str.replace(REGEX_FORMAT, function(match, $1) {
1729
+ return $1 || matches(match) || zoneStr.replace(":", "");
1730
+ });
1731
+ };
1732
+ _proto.utcOffset = function utcOffset() {
1733
+ return -Math.round(this.$d.getTimezoneOffset() / 15) * 15;
1734
+ };
1735
+ _proto.diff = function diff(input, units, _float) {
1736
+ var _this4 = this;
1737
+ var unit = Utils.p(units);
1738
+ var that = dayjs(input);
1739
+ var zoneDelta = (that.utcOffset() - this.utcOffset()) * MILLISECONDS_A_MINUTE;
1740
+ var diff2 = this - that;
1741
+ var getMonth = function getMonth2() {
1742
+ return Utils.m(_this4, that);
1743
+ };
1744
+ var result;
1745
+ switch (unit) {
1746
+ case Y:
1747
+ result = getMonth() / 12;
1748
+ break;
1749
+ case M:
1750
+ result = getMonth();
1751
+ break;
1752
+ case Q:
1753
+ result = getMonth() / 3;
1754
+ break;
1755
+ case W:
1756
+ result = (diff2 - zoneDelta) / MILLISECONDS_A_WEEK;
1757
+ break;
1758
+ case D:
1759
+ result = (diff2 - zoneDelta) / MILLISECONDS_A_DAY;
1760
+ break;
1761
+ case H:
1762
+ result = diff2 / MILLISECONDS_A_HOUR;
1763
+ break;
1764
+ case MIN:
1765
+ result = diff2 / MILLISECONDS_A_MINUTE;
1766
+ break;
1767
+ case S:
1768
+ result = diff2 / MILLISECONDS_A_SECOND;
1769
+ break;
1770
+ default:
1771
+ result = diff2;
1772
+ break;
1773
+ }
1774
+ return _float ? result : Utils.a(result);
1775
+ };
1776
+ _proto.daysInMonth = function daysInMonth() {
1777
+ return this.endOf(M).$D;
1778
+ };
1779
+ _proto.$locale = function $locale() {
1780
+ return Ls[this.$L];
1781
+ };
1782
+ _proto.locale = function locale2(preset, object) {
1783
+ if (!preset) return this.$L;
1784
+ var that = this.clone();
1785
+ var nextLocaleName = parseLocale(preset, object, true);
1786
+ if (nextLocaleName) that.$L = nextLocaleName;
1787
+ return that;
1788
+ };
1789
+ _proto.clone = function clone() {
1790
+ return Utils.w(this.$d, this);
1791
+ };
1792
+ _proto.toDate = function toDate() {
1793
+ return new Date(this.valueOf());
1794
+ };
1795
+ _proto.toJSON = function toJSON() {
1796
+ return this.isValid() ? this.toISOString() : null;
1797
+ };
1798
+ _proto.toISOString = function toISOString() {
1799
+ return this.$d.toISOString();
1800
+ };
1801
+ _proto.toString = function toString() {
1802
+ return this.$d.toUTCString();
1803
+ };
1804
+ return Dayjs2;
1805
+ })();
1806
+ var proto = Dayjs.prototype;
1807
+ dayjs.prototype = proto;
1808
+ [["$ms", MS], ["$s", S], ["$m", MIN], ["$H", H], ["$W", D], ["$M", M], ["$y", Y], ["$D", DATE]].forEach(function(g) {
1809
+ proto[g[1]] = function(input) {
1810
+ return this.$g(input, g[0], g[1]);
1811
+ };
1812
+ });
1813
+ dayjs.extend = function(plugin, option) {
1814
+ if (!plugin.$i) {
1815
+ plugin(option, Dayjs, dayjs);
1816
+ plugin.$i = true;
1817
+ }
1818
+ return dayjs;
1819
+ };
1820
+ dayjs.locale = parseLocale;
1821
+ dayjs.isDayjs = isDayjs;
1822
+ dayjs.unix = function(timestamp) {
1823
+ return dayjs(timestamp * 1e3);
1824
+ };
1825
+ dayjs.en = Ls[L];
1826
+ dayjs.Ls = Ls;
1827
+ dayjs.p = {};
1828
+ var esm_default = dayjs;
1829
+
1830
+ // node_modules/dayjs/esm/locale/zh-cn.js
1831
+ var locale = {
1832
+ name: "zh-cn",
1833
+ weekdays: "\u661F\u671F\u65E5_\u661F\u671F\u4E00_\u661F\u671F\u4E8C_\u661F\u671F\u4E09_\u661F\u671F\u56DB_\u661F\u671F\u4E94_\u661F\u671F\u516D".split("_"),
1834
+ weekdaysShort: "\u5468\u65E5_\u5468\u4E00_\u5468\u4E8C_\u5468\u4E09_\u5468\u56DB_\u5468\u4E94_\u5468\u516D".split("_"),
1835
+ weekdaysMin: "\u65E5_\u4E00_\u4E8C_\u4E09_\u56DB_\u4E94_\u516D".split("_"),
1836
+ months: "\u4E00\u6708_\u4E8C\u6708_\u4E09\u6708_\u56DB\u6708_\u4E94\u6708_\u516D\u6708_\u4E03\u6708_\u516B\u6708_\u4E5D\u6708_\u5341\u6708_\u5341\u4E00\u6708_\u5341\u4E8C\u6708".split("_"),
1837
+ monthsShort: "1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),
1838
+ ordinal: function ordinal2(number, period) {
1839
+ switch (period) {
1840
+ case "W":
1841
+ return number + "\u5468";
1842
+ default:
1843
+ return number + "\u65E5";
1844
+ }
1845
+ },
1846
+ weekStart: 1,
1847
+ yearStart: 4,
1848
+ formats: {
1849
+ LT: "HH:mm",
1850
+ LTS: "HH:mm:ss",
1851
+ L: "YYYY/MM/DD",
1852
+ LL: "YYYY\u5E74M\u6708D\u65E5",
1853
+ LLL: "YYYY\u5E74M\u6708D\u65E5Ah\u70B9mm\u5206",
1854
+ LLLL: "YYYY\u5E74M\u6708D\u65E5ddddAh\u70B9mm\u5206",
1855
+ l: "YYYY/M/D",
1856
+ ll: "YYYY\u5E74M\u6708D\u65E5",
1857
+ lll: "YYYY\u5E74M\u6708D\u65E5 HH:mm",
1858
+ llll: "YYYY\u5E74M\u6708D\u65E5dddd HH:mm"
1859
+ },
1860
+ relativeTime: {
1861
+ future: "%s\u5185",
1862
+ past: "%s\u524D",
1863
+ s: "\u51E0\u79D2",
1864
+ m: "1 \u5206\u949F",
1865
+ mm: "%d \u5206\u949F",
1866
+ h: "1 \u5C0F\u65F6",
1867
+ hh: "%d \u5C0F\u65F6",
1868
+ d: "1 \u5929",
1869
+ dd: "%d \u5929",
1870
+ M: "1 \u4E2A\u6708",
1871
+ MM: "%d \u4E2A\u6708",
1872
+ y: "1 \u5E74",
1873
+ yy: "%d \u5E74"
1874
+ },
1875
+ meridiem: function meridiem(hour, minute) {
1876
+ var hm = hour * 100 + minute;
1877
+ if (hm < 600) {
1878
+ return "\u51CC\u6668";
1879
+ } else if (hm < 900) {
1880
+ return "\u65E9\u4E0A";
1881
+ } else if (hm < 1100) {
1882
+ return "\u4E0A\u5348";
1883
+ } else if (hm < 1300) {
1884
+ return "\u4E2D\u5348";
1885
+ } else if (hm < 1800) {
1886
+ return "\u4E0B\u5348";
1887
+ }
1888
+ return "\u665A\u4E0A";
1889
+ }
1890
+ };
1891
+ esm_default.locale(locale, null, true);
1892
+
1893
+ // packages/sdk/src/runtime/react/createReactPage.tsx
1314
1894
  import React2 from "react";
1315
1895
  import { createRoot } from "react-dom/client";
1316
1896
 
@@ -1384,6 +1964,7 @@ var legacyAntdTheme = {
1384
1964
 
1385
1965
  // packages/sdk/src/runtime/react/createReactPage.tsx
1386
1966
  import { Fragment, jsx as jsx2 } from "react/jsx-runtime";
1967
+ dayjs3.locale("zh-cn");
1387
1968
  var NAMESPACE_ROOT_CLASS = "sy-app-workspace";
1388
1969
  var RUNTIME_PORTAL_ATTR = "data-sy-runtime-portal";
1389
1970
  var PORTAL_CONTAINER_STACK_GLOBAL = "__OPENXIANGDA_PORTAL_CONTAINER_STACK__";
@@ -1549,6 +2130,7 @@ var installAntdStaticHolder = (el, portalContainer, cssIsolation) => {
1549
2130
  return /* @__PURE__ */ jsx2(
1550
2131
  ConfigProvider,
1551
2132
  {
2133
+ locale: zhCN,
1552
2134
  prefixCls: antdOptions.prefixCls,
1553
2135
  iconPrefixCls: antdOptions.iconPrefixCls,
1554
2136
  theme: antdOptions.theme,