@routevn/creator-model 1.2.5 → 1.2.6

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