@routevn/creator-model 1.10.2 → 1.10.3

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 (2) hide show
  1. package/package.json +1 -1
  2. package/src/model.js +45 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@routevn/creator-model",
3
- "version": "1.10.2",
3
+ "version": "1.10.3",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "license": "MIT",
package/src/model.js CHANGED
@@ -395,6 +395,13 @@ const LAYOUT_ELEMENT_BASE_TYPES = [
395
395
  "container-ref-confirm-dialog-ok",
396
396
  "container-ref-confirm-dialog-cancel",
397
397
  ];
398
+ const SAVE_LOAD_DATE_FORMATS = new Set([
399
+ "DD/MM/YYYY",
400
+ "MM/DD/YYYY",
401
+ "YYYY-MM-DD",
402
+ "DD MMM YYYY",
403
+ "YYYY年MM月DD日",
404
+ ]);
398
405
  export const SCHEMA_VERSION = 10;
399
406
  const LAYOUT_CONTAINER_ELEMENT_TYPES = [
400
407
  "folder",
@@ -3874,6 +3881,7 @@ const validateLayoutElementData = ({
3874
3881
  "border",
3875
3882
  "text",
3876
3883
  "content",
3884
+ "dateFormat",
3877
3885
  "textStyle",
3878
3886
  "displaySpeed",
3879
3887
  "revealEffect",
@@ -3966,6 +3974,27 @@ const validateLayoutElementData = ({
3966
3974
  }
3967
3975
  }
3968
3976
 
3977
+ if (
3978
+ data.dateFormat !== undefined &&
3979
+ !SAVE_LOAD_DATE_FORMATS.has(data.dateFormat)
3980
+ ) {
3981
+ return invalidFromErrorFactory(
3982
+ errorFactory,
3983
+ `${path}.dateFormat must be one of ${Array.from(SAVE_LOAD_DATE_FORMATS).join(", ")} when provided`,
3984
+ );
3985
+ }
3986
+
3987
+ if (
3988
+ data.dateFormat !== undefined &&
3989
+ data.type !== undefined &&
3990
+ data.type !== "text-ref-save-load-slot-date"
3991
+ ) {
3992
+ return invalidFromErrorFactory(
3993
+ errorFactory,
3994
+ `${path}.dateFormat can only be provided for save/load date elements`,
3995
+ );
3996
+ }
3997
+
3969
3998
  if (data.hidden !== undefined && typeof data.hidden !== "boolean") {
3970
3999
  return invalidFromErrorFactory(
3971
4000
  errorFactory,
@@ -4642,6 +4671,7 @@ const validateLayoutElementItems = ({ items, path, errorFactory }) => {
4642
4671
  "border",
4643
4672
  "text",
4644
4673
  "content",
4674
+ "dateFormat",
4645
4675
  "textStyle",
4646
4676
  "displaySpeed",
4647
4677
  "revealEffect",
@@ -12218,6 +12248,21 @@ const validateVisualElementReferenceTargets = ({
12218
12248
  state,
12219
12249
  errorFactory,
12220
12250
  }) => {
12251
+ if (
12252
+ data.dateFormat !== undefined &&
12253
+ data.type !== "text-ref-save-load-slot-date"
12254
+ ) {
12255
+ return invalidFromErrorFactory(
12256
+ errorFactory,
12257
+ `${ownerLabel} element dateFormat can only be provided for save/load date elements`,
12258
+ {
12259
+ [ownerIdField]: ownerId,
12260
+ elementId,
12261
+ field: "dateFormat",
12262
+ },
12263
+ );
12264
+ }
12265
+
12221
12266
  if (data.blur !== undefined && data.type !== "sprite") {
12222
12267
  return invalidFromErrorFactory(
12223
12268
  errorFactory,