@routevn/creator-model 1.2.5 → 1.2.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 (2) hide show
  1. package/package.json +1 -1
  2. package/src/model.js +105 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@routevn/creator-model",
3
- "version": "1.2.5",
3
+ "version": "1.2.7",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "license": "MIT",
package/src/model.js CHANGED
@@ -3298,12 +3298,13 @@ const validateLayoutElementData = ({
3298
3298
 
3299
3299
  if (
3300
3300
  data.direction !== undefined &&
3301
+ data.direction !== "absolute" &&
3301
3302
  data.direction !== "horizontal" &&
3302
3303
  data.direction !== "vertical"
3303
3304
  ) {
3304
3305
  return invalidFromErrorFactory(
3305
3306
  errorFactory,
3306
- `${path}.direction must be 'horizontal' or 'vertical' when provided`,
3307
+ `${path}.direction must be 'absolute', 'horizontal' or 'vertical' when provided`,
3307
3308
  );
3308
3309
  }
3309
3310
 
@@ -3656,6 +3657,21 @@ const validateKeyboardMap = ({ value, path, errorFactory }) => {
3656
3657
  return VALID_RESULT;
3657
3658
  };
3658
3659
 
3660
+ const validatePreviewObject = ({ value, path, errorFactory }) => {
3661
+ if (value === undefined) {
3662
+ return VALID_RESULT;
3663
+ }
3664
+
3665
+ if (!isPlainObject(value)) {
3666
+ return invalidFromErrorFactory(
3667
+ errorFactory,
3668
+ `${path} must be an object when provided`,
3669
+ );
3670
+ }
3671
+
3672
+ return VALID_RESULT;
3673
+ };
3674
+
3659
3675
  const validateLayoutItems = ({ items, path, errorFactory }) => {
3660
3676
  for (const [itemId, item] of Object.entries(items)) {
3661
3677
  const itemPath = `${path}.${itemId}`;
@@ -3681,6 +3697,7 @@ const validateLayoutItems = ({ items, path, errorFactory }) => {
3681
3697
  "layoutType",
3682
3698
  "isFragment",
3683
3699
  "thumbnailFileId",
3700
+ "preview",
3684
3701
  "elements",
3685
3702
  ],
3686
3703
  path: itemPath,
@@ -3729,6 +3746,17 @@ const validateLayoutItems = ({ items, path, errorFactory }) => {
3729
3746
  );
3730
3747
  }
3731
3748
 
3749
+ {
3750
+ const result = validatePreviewObject({
3751
+ value: item.preview,
3752
+ path: `${itemPath}.preview`,
3753
+ errorFactory,
3754
+ });
3755
+ if (result?.valid === false) {
3756
+ return result;
3757
+ }
3758
+ }
3759
+
3732
3760
  if (item.type === "layout") {
3733
3761
  if (!LAYOUT_TYPE_KEYS.includes(item.layoutType)) {
3734
3762
  return invalidFromErrorFactory(
@@ -3786,6 +3814,7 @@ const validateControlItems = ({ items, path, errorFactory }) => {
3786
3814
  "name",
3787
3815
  "description",
3788
3816
  "thumbnailFileId",
3817
+ "preview",
3789
3818
  "elements",
3790
3819
  "keyboard",
3791
3820
  ],
@@ -3835,6 +3864,17 @@ const validateControlItems = ({ items, path, errorFactory }) => {
3835
3864
  );
3836
3865
  }
3837
3866
 
3867
+ {
3868
+ const result = validatePreviewObject({
3869
+ value: item.preview,
3870
+ path: `${itemPath}.preview`,
3871
+ errorFactory,
3872
+ });
3873
+ if (result?.valid === false) {
3874
+ return result;
3875
+ }
3876
+ }
3877
+
3838
3878
  if (item.type === "control") {
3839
3879
  {
3840
3880
  const result = validateNestedCollection({
@@ -8166,6 +8206,7 @@ const validateLayoutCreateData = ({ data, errorFactory }) => {
8166
8206
  "layoutType",
8167
8207
  "isFragment",
8168
8208
  "thumbnailFileId",
8209
+ "preview",
8169
8210
  "elements",
8170
8211
  ],
8171
8212
  path: "payload.data",
@@ -8200,6 +8241,17 @@ const validateLayoutCreateData = ({ data, errorFactory }) => {
8200
8241
  );
8201
8242
  }
8202
8243
 
8244
+ {
8245
+ const result = validatePreviewObject({
8246
+ value: data.preview,
8247
+ path: "payload.data.preview",
8248
+ errorFactory,
8249
+ });
8250
+ if (result?.valid === false) {
8251
+ return result;
8252
+ }
8253
+ }
8254
+
8203
8255
  if (data.type === "layout") {
8204
8256
  if (!LAYOUT_TYPE_KEYS.includes(data.layoutType)) {
8205
8257
  return invalidFromErrorFactory(
@@ -8240,6 +8292,7 @@ const validateLayoutUpdateData = ({ data, errorFactory }) => {
8240
8292
  "layoutType",
8241
8293
  "isFragment",
8242
8294
  "thumbnailFileId",
8295
+ "preview",
8243
8296
  ],
8244
8297
  path: "payload.data",
8245
8298
  errorFactory,
@@ -8280,6 +8333,17 @@ const validateLayoutUpdateData = ({ data, errorFactory }) => {
8280
8333
  );
8281
8334
  }
8282
8335
 
8336
+ {
8337
+ const result = validatePreviewObject({
8338
+ value: data.preview,
8339
+ path: "payload.data.preview",
8340
+ errorFactory,
8341
+ });
8342
+ if (result?.valid === false) {
8343
+ return result;
8344
+ }
8345
+ }
8346
+
8283
8347
  if (
8284
8348
  data.layoutType !== undefined &&
8285
8349
  !LAYOUT_TYPE_KEYS.includes(data.layoutType)
@@ -8324,6 +8388,7 @@ const validateControlCreateData = ({ data, errorFactory }) => {
8324
8388
  "name",
8325
8389
  "description",
8326
8390
  "thumbnailFileId",
8391
+ "preview",
8327
8392
  "elements",
8328
8393
  "keyboard",
8329
8394
  ],
@@ -8359,6 +8424,17 @@ const validateControlCreateData = ({ data, errorFactory }) => {
8359
8424
  );
8360
8425
  }
8361
8426
 
8427
+ {
8428
+ const result = validatePreviewObject({
8429
+ value: data.preview,
8430
+ path: "payload.data.preview",
8431
+ errorFactory,
8432
+ });
8433
+ if (result?.valid === false) {
8434
+ return result;
8435
+ }
8436
+ }
8437
+
8362
8438
  if (data.type === "control") {
8363
8439
  {
8364
8440
  const result = validateNestedCollection({
@@ -8390,7 +8466,13 @@ const validateControlUpdateData = ({ data, errorFactory }) => {
8390
8466
  {
8391
8467
  const result = validateAllowedKeys({
8392
8468
  value: data,
8393
- allowedKeys: ["name", "description", "keyboard", "thumbnailFileId"],
8469
+ allowedKeys: [
8470
+ "name",
8471
+ "description",
8472
+ "keyboard",
8473
+ "thumbnailFileId",
8474
+ "preview",
8475
+ ],
8394
8476
  path: "payload.data",
8395
8477
  errorFactory,
8396
8478
  });
@@ -8430,6 +8512,17 @@ const validateControlUpdateData = ({ data, errorFactory }) => {
8430
8512
  );
8431
8513
  }
8432
8514
 
8515
+ {
8516
+ const result = validatePreviewObject({
8517
+ value: data.preview,
8518
+ path: "payload.data.preview",
8519
+ errorFactory,
8520
+ });
8521
+ if (result?.valid === false) {
8522
+ return result;
8523
+ }
8524
+ }
8525
+
8433
8526
  {
8434
8527
  const result = validateKeyboardMap({
8435
8528
  value: data.keyboard,
@@ -13740,6 +13833,11 @@ const COMMAND_DEFINITIONS = [
13740
13833
  thumbnailFileId: payload.data.thumbnailFileId,
13741
13834
  }
13742
13835
  : {}),
13836
+ ...(payload.data.preview !== undefined
13837
+ ? {
13838
+ preview: structuredClone(payload.data.preview),
13839
+ }
13840
+ : {}),
13743
13841
  elements: structuredClone(payload.data.elements),
13744
13842
  }
13745
13843
  : {}),
@@ -13805,6 +13903,11 @@ const COMMAND_DEFINITIONS = [
13805
13903
  thumbnailFileId: payload.data.thumbnailFileId,
13806
13904
  }
13807
13905
  : {}),
13906
+ ...(payload.data.preview !== undefined
13907
+ ? {
13908
+ preview: structuredClone(payload.data.preview),
13909
+ }
13910
+ : {}),
13808
13911
  elements: structuredClone(payload.data.elements),
13809
13912
  ...(payload.data.keyboard !== undefined
13810
13913
  ? {