@goldenhippo/builder-cart-schemas 0.4.0 → 0.6.0

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.
@@ -1,5 +1,9 @@
1
1
  'use strict';
2
2
 
3
+ var builderSharedSchemas = require('@goldenhippo/builder-shared-schemas');
4
+
5
+ // src/data/index.ts
6
+
3
7
  // src/data/brand-config/sections/header-config.ts
4
8
  var headerOptions = {
5
9
  basic: {
@@ -1273,8 +1277,8 @@ var createFeatureConfig = (gridFilterModelId) => {
1273
1277
  helperText: "Select a product grid filter group to display",
1274
1278
  copyOnAdd: false
1275
1279
  }
1276
- ],
1277
- showIf: `return options.get('productGridFilterType') === 'Custom'`
1280
+ ]
1281
+ //showIf: `return options.get('productGridFilterType') === ('Custom' || '${ProductGridFilterType.STACKED_LIST}')`,
1278
1282
  },
1279
1283
  {
1280
1284
  name: "productGridHideRestricted",
@@ -1317,6 +1321,14 @@ var createFeatureConfig = (gridFilterModelId) => {
1317
1321
  type: "boolean",
1318
1322
  localized: false,
1319
1323
  defaultCollapsed: true
1324
+ },
1325
+ {
1326
+ name: "cartDrawerEnabled",
1327
+ friendlyName: "Enable Cart Drawer",
1328
+ helperText: "Enable or disable the cart drawer experience for the brand",
1329
+ type: "boolean",
1330
+ localized: false,
1331
+ defaultCollapsed: true
1320
1332
  }
1321
1333
  ]
1322
1334
  };
@@ -2670,303 +2682,6 @@ var createBlogCommentModel = (pageModelId) => {
2670
2682
  };
2671
2683
  };
2672
2684
 
2673
- // src/data/product.model.ts
2674
- var createProductModel = (request) => {
2675
- return {
2676
- name: "product",
2677
- displayName: "Product",
2678
- kind: "data",
2679
- helperText: "Product Catalog",
2680
- contentTitleField: "name",
2681
- fields: [
2682
- {
2683
- name: "displayName",
2684
- friendlyName: "Display Name",
2685
- type: "text",
2686
- required: true,
2687
- localized: true,
2688
- defaultCollapsed: true,
2689
- helperText: "This is the name that will be displayed to the customer"
2690
- },
2691
- {
2692
- name: "featuredImage",
2693
- friendlyName: "Featured Image",
2694
- helperText: "Displayed on the product card",
2695
- defaultCollapsed: true,
2696
- type: "file",
2697
- showTemplatePicker: true,
2698
- allowedFileTypes: ["jpeg", "png", "svg", "webp"]
2699
- },
2700
- {
2701
- name: "secondaryImage",
2702
- friendlyName: "Secondary Image",
2703
- helperText: "Displayed on the product card hover for some grids",
2704
- defaultCollapsed: true,
2705
- type: "file",
2706
- showTemplatePicker: true,
2707
- allowedFileTypes: ["jpeg", "png", "svg", "webp"]
2708
- },
2709
- {
2710
- name: "subHeading",
2711
- defaultCollapsed: true,
2712
- friendlyName: "Product Headline",
2713
- helperText: "Subheading (tagline) for the product, displayed on the product card",
2714
- type: "text",
2715
- localized: true
2716
- },
2717
- {
2718
- name: "gridTagline",
2719
- defaultCollapsed: true,
2720
- friendlyName: "Grid Tagline",
2721
- helperText: "By default, we use the Product Headline field. Use this to override the tagline when displayed on the product grid.",
2722
- type: "text",
2723
- required: false,
2724
- localized: true
2725
- },
2726
- {
2727
- name: "gridDescription",
2728
- defaultCollapsed: true,
2729
- friendlyName: "Grid Description",
2730
- helperText: "A small description, used on some product grids as an additional sub-heading or tagline.",
2731
- type: "text",
2732
- required: false,
2733
- localized: true
2734
- },
2735
- {
2736
- name: "shortDescription",
2737
- defaultCollapsed: true,
2738
- friendlyName: "Short Description",
2739
- helperText: "Short description of the product, typically displayed on the PDP",
2740
- type: "html",
2741
- required: false,
2742
- localized: true
2743
- },
2744
- {
2745
- name: "quote",
2746
- friendlyName: "Quote",
2747
- defaultCollapsed: true,
2748
- helperText: "A quote provided by the brand guru or spokesperson",
2749
- type: "html",
2750
- localized: true,
2751
- required: false
2752
- },
2753
- {
2754
- name: "packagingLabels",
2755
- friendlyName: "Packaging Labels",
2756
- defaultCollapsed: true,
2757
- type: "object",
2758
- subFields: [
2759
- {
2760
- name: "singular",
2761
- friendlyName: "Singular",
2762
- defaultCollapsed: true,
2763
- type: "text",
2764
- required: true,
2765
- localized: true,
2766
- helperText: "Provides the name of the packaging for single product (e.g. Unit, Jar, etc.)"
2767
- },
2768
- {
2769
- name: "plural",
2770
- defaultCollapsed: true,
2771
- friendlyName: "Plural",
2772
- type: "text",
2773
- required: true,
2774
- localized: true,
2775
- helperText: "Provides the name of the packaging for multiple quantities of the product (e.g. Units, Jars, etc.)"
2776
- }
2777
- ]
2778
- },
2779
- {
2780
- name: "hidden",
2781
- friendlyName: "Hide Product",
2782
- type: "boolean",
2783
- required: false,
2784
- localized: true,
2785
- defaultCollapsed: true,
2786
- helperText: "When true, this product will not be displayed in product grids or search results for this locale"
2787
- },
2788
- {
2789
- name: "outOfStock",
2790
- friendlyName: "Out of Stock",
2791
- type: "boolean",
2792
- required: false,
2793
- defaultCollapsed: true,
2794
- helperText: "Indicates whether this product is currently out of stock. When true, this product is not eligible for purchase."
2795
- },
2796
- {
2797
- name: "cartOutOfStock",
2798
- friendlyName: "Out of Stock (Site)",
2799
- type: "boolean",
2800
- required: false,
2801
- defaultCollapsed: true,
2802
- helperText: "Indicates that this product should be presented as out of stock on the site, even if it is not truly out of stock. This is used as an override for special cases where the product should not be purchasable on the site while remaining purchasable elsewhere."
2803
- },
2804
- {
2805
- name: "upc",
2806
- defaultCollapsed: true,
2807
- friendlyName: "UPC Code",
2808
- type: "text",
2809
- required: false,
2810
- helperText: "The UPC code of this product"
2811
- },
2812
- {
2813
- name: "reviews",
2814
- friendlyName: "Review Data",
2815
- helperText: "Stores review data for this product. These values are automatically generated and should not be modified.",
2816
- type: "object",
2817
- defaultCollapsed: true,
2818
- subFields: [
2819
- {
2820
- name: "id",
2821
- defaultCollapsed: true,
2822
- friendlyName: "Review ID",
2823
- type: "text",
2824
- required: true,
2825
- localized: false,
2826
- helperText: "ID used by the review service to identify this product. Do not modify this value."
2827
- },
2828
- {
2829
- defaultCollapsed: true,
2830
- name: "count",
2831
- friendlyName: "Review Count",
2832
- type: "number",
2833
- defaultValue: 0,
2834
- required: true,
2835
- localized: false,
2836
- helperText: "The number of reviews for this product. This value is automatically updated by the review service."
2837
- },
2838
- {
2839
- name: "averageRating",
2840
- friendlyName: "Average Rating",
2841
- type: "number",
2842
- defaultCollapsed: true,
2843
- defaultValue: 0,
2844
- required: true,
2845
- localized: false,
2846
- helperText: "The average rating for this product. This value is automatically updated by the review service."
2847
- }
2848
- ]
2849
- },
2850
- {
2851
- name: "tags",
2852
- friendlyName: "Tags",
2853
- type: "list",
2854
- localized: true,
2855
- defaultCollapsed: true,
2856
- subFields: [
2857
- {
2858
- type: "reference",
2859
- modelId: request.tagModelId,
2860
- name: "tag",
2861
- friendlyName: "Tag",
2862
- copyOnAdd: false,
2863
- defaultCollapsed: true
2864
- }
2865
- ]
2866
- },
2867
- {
2868
- name: "categories",
2869
- friendlyName: "Categories",
2870
- type: "list",
2871
- localized: true,
2872
- defaultCollapsed: true,
2873
- subFields: [
2874
- {
2875
- type: "reference",
2876
- modelId: request.categoryModelId,
2877
- name: "category",
2878
- friendlyName: "Category",
2879
- copyOnAdd: false,
2880
- defaultCollapsed: true
2881
- }
2882
- ]
2883
- },
2884
- {
2885
- name: "ingredients",
2886
- friendlyName: "Ingredients",
2887
- type: "list",
2888
- localized: true,
2889
- defaultCollapsed: true,
2890
- subFields: [
2891
- {
2892
- type: "reference",
2893
- modelId: request.ingredientsModelId,
2894
- name: "ingredient",
2895
- friendlyName: "Ingredient",
2896
- copyOnAdd: false,
2897
- defaultCollapsed: true
2898
- }
2899
- ]
2900
- },
2901
- {
2902
- name: "useCases",
2903
- defaultCollapsed: true,
2904
- friendlyName: "Use Cases",
2905
- type: "list",
2906
- localized: true,
2907
- subFields: [
2908
- {
2909
- type: "reference",
2910
- modelId: request.useCaseModelId,
2911
- name: "useCase",
2912
- friendlyName: "Use Case",
2913
- copyOnAdd: false,
2914
- defaultCollapsed: true
2915
- }
2916
- ]
2917
- },
2918
- {
2919
- name: "name",
2920
- friendlyName: "Name",
2921
- type: "text",
2922
- required: true,
2923
- defaultCollapsed: true,
2924
- localized: false,
2925
- helperText: "Internal name for the product, used for identification in the CMS"
2926
- },
2927
- {
2928
- name: "gh",
2929
- friendlyName: "Golden Hippo Integration Data",
2930
- helperText: "Stores integration data for Golden Hippo. Do not modify any of these values.",
2931
- type: "object",
2932
- subFields: [
2933
- {
2934
- name: "slug",
2935
- friendlyName: "Page Slug",
2936
- type: "text",
2937
- required: true,
2938
- localized: false,
2939
- defaultCollapsed: true,
2940
- helperText: "This is the URL slug for this product. This value is unique and required for cross-environment development. Do not modify this value."
2941
- },
2942
- {
2943
- name: "productionId",
2944
- friendlyName: "Production ID",
2945
- type: "text",
2946
- required: true,
2947
- localized: false,
2948
- defaultCollapsed: true,
2949
- helperText: "This is the unique identifier for this product in the production environment. Do not modify this value."
2950
- },
2951
- {
2952
- name: "type",
2953
- friendlyName: "Product Type",
2954
- type: "select",
2955
- required: true,
2956
- localized: false,
2957
- defaultCollapsed: true,
2958
- enum: ["Product", "Bundle", "Trial Size"],
2959
- defaultValue: "Product",
2960
- helperText: "Product Type"
2961
- }
2962
- ],
2963
- defaultCollapsed: true,
2964
- localized: false
2965
- }
2966
- ]
2967
- };
2968
- };
2969
-
2970
2685
  // src/data/product-group.model.ts
2971
2686
  var createProductGroupModel = (productModelId) => {
2972
2687
  return {
@@ -3114,76 +2829,6 @@ var createProductGroupModel = (productModelId) => {
3114
2829
  };
3115
2830
  };
3116
2831
 
3117
- // src/data/product-category.model.ts
3118
- var createCategoryModel = () => ({
3119
- name: "product-category",
3120
- kind: "data",
3121
- displayName: "Product Category",
3122
- helperText: "Categories for products",
3123
- contentTitleField: "name",
3124
- fields: [
3125
- {
3126
- name: "name",
3127
- friendlyName: "Category",
3128
- type: "text",
3129
- required: true,
3130
- defaultCollapsed: true,
3131
- localized: true
3132
- },
3133
- {
3134
- name: "description",
3135
- friendlyName: "Description",
3136
- type: "longText",
3137
- required: false,
3138
- defaultCollapsed: true,
3139
- localized: true
3140
- },
3141
- {
3142
- name: "desktopImage",
3143
- friendlyName: "Desktop Image",
3144
- type: "file",
3145
- defaultCollapsed: true,
3146
- showTemplatePicker: true,
3147
- allowedFileTypes: ["jpeg", "png", "svg", "webp"]
3148
- },
3149
- {
3150
- name: "mobileImage",
3151
- defaultCollapsed: true,
3152
- friendlyName: "Mobile Image",
3153
- type: "file",
3154
- showTemplatePicker: true,
3155
- allowedFileTypes: ["jpeg", "png", "svg", "webp"]
3156
- },
3157
- {
3158
- name: "hidden",
3159
- friendlyName: "Hide Category",
3160
- type: "boolean",
3161
- required: false,
3162
- localized: true,
3163
- defaultCollapsed: true,
3164
- helperText: "When true, this category will not be displayed in product grids or search results for this locale"
3165
- },
3166
- {
3167
- name: "slug",
3168
- friendlyName: "Page Slug",
3169
- type: "text",
3170
- defaultCollapsed: true,
3171
- helperText: 'If this category has a specific web page, provide the path here without a leading slash (e.g. "shop/supplements") for use in breadcrumb navigation. By default, the path "shop" will be used.',
3172
- required: false,
3173
- localized: false
3174
- },
3175
- {
3176
- name: "searchKeys",
3177
- friendlyName: "Search Keys",
3178
- type: "Tags",
3179
- defaultCollapsed: true,
3180
- helperText: 'Used when building links (e.g. "products?category=[Search Key]")',
3181
- required: false,
3182
- localized: false
3183
- }
3184
- ]
3185
- });
3186
-
3187
2832
  // src/data/product-grid-filter-group.model.ts
3188
2833
  var createProductGridConfigModel = (models) => {
3189
2834
  return {
@@ -3298,190 +2943,30 @@ var createProductGridConfigModel = (models) => {
3298
2943
  };
3299
2944
  };
3300
2945
 
3301
- // src/data/product-ingredient.model.ts
3302
- var createIngredientsModel = () => ({
3303
- name: "product-ingredient",
3304
- displayName: "Product Ingredient",
3305
- kind: "data",
3306
- helperText: "Ingredients used in products",
3307
- contentTitleField: "name",
3308
- fields: [
3309
- {
3310
- "@type": "@builder.io/core:Field",
3311
- name: "name",
3312
- friendlyName: "Ingredient",
3313
- type: "text",
3314
- required: true,
3315
- defaultCollapsed: true,
3316
- localized: true,
3317
- defaultValue: {
3318
- "@type": "@builder.io/core:LocalizedValue"
3319
- }
3320
- },
3321
- {
3322
- "@type": "@builder.io/core:Field",
3323
- name: "description",
3324
- friendlyName: "Description",
3325
- type: "longText",
3326
- required: false,
3327
- defaultCollapsed: true,
3328
- localized: true,
3329
- defaultValue: {
3330
- "@type": "@builder.io/core:LocalizedValue"
3331
- }
3332
- },
3333
- {
3334
- "@type": "@builder.io/core:Field",
3335
- name: "image",
3336
- friendlyName: "Image",
3337
- type: "file",
3338
- showTemplatePicker: true,
3339
- defaultCollapsed: true,
3340
- allowedFileTypes: ["jpeg", "png", "svg", "webp"]
3341
- },
3342
- {
3343
- "@type": "@builder.io/core:Field",
3344
- name: "shortDescription",
3345
- friendlyName: "Short Description",
3346
- type: "longText",
3347
- required: false,
3348
- defaultCollapsed: true,
3349
- localized: true,
3350
- defaultValue: {
3351
- "@type": "@builder.io/core:LocalizedValue"
3352
- }
3353
- },
3354
- {
3355
- "@type": "@builder.io/core:Field",
3356
- name: "searchKeys",
3357
- friendlyName: "Search Keys",
3358
- type: "Tags",
3359
- defaultCollapsed: true,
3360
- helperText: 'Used when building links (e.g. "products?category=[Search Key]")',
3361
- required: false,
3362
- localized: false
3363
- }
3364
- ]
2946
+ Object.defineProperty(exports, "createCategoryModel", {
2947
+ enumerable: true,
2948
+ get: function () { return builderSharedSchemas.createCategoryModel; }
3365
2949
  });
3366
-
3367
- // src/data/product-tag.model.ts
3368
- var createProductTagModel = () => ({
3369
- name: "product-tag",
3370
- kind: "data",
3371
- displayName: "Product Tag",
3372
- helperText: "Provides a link between products across categories.",
3373
- contentTitleField: "name",
3374
- fields: [
3375
- {
3376
- name: "name",
3377
- friendlyName: "Tag",
3378
- type: "text",
3379
- required: true,
3380
- defaultCollapsed: true,
3381
- localized: true
3382
- },
3383
- {
3384
- name: "tagColor",
3385
- friendlyName: "Color",
3386
- type: "color",
3387
- required: true,
3388
- defaultCollapsed: true,
3389
- localized: false,
3390
- defaultValue: "gba(255, 233, 214, 1)"
3391
- },
3392
- {
3393
- name: "hidden",
3394
- friendlyName: "Hide Tag",
3395
- type: "boolean",
3396
- required: false,
3397
- localized: true,
3398
- defaultCollapsed: true,
3399
- helperText: "When true, this tag will not be displayed in product grids or search results for this locale"
3400
- },
3401
- {
3402
- name: "image",
3403
- friendlyName: "Tag Image",
3404
- type: "file",
3405
- allowedFileTypes: ["jpeg", "png", "svg", "webp"],
3406
- required: false,
3407
- localized: true,
3408
- defaultCollapsed: true,
3409
- helperText: "For product grids that support tag images, you may provide the image here."
3410
- },
3411
- {
3412
- name: "pluralDisplayName",
3413
- friendlyName: "Plural Display Name",
3414
- defaultCollapsed: true,
3415
- type: "text",
3416
- helperText: 'This is used when grouping/filtering. Allows us to display "Favorites" instead of "Fave", for example.',
3417
- required: false,
3418
- localized: true
3419
- }
3420
- ]
2950
+ Object.defineProperty(exports, "createIngredientsModel", {
2951
+ enumerable: true,
2952
+ get: function () { return builderSharedSchemas.createIngredientsModel; }
3421
2953
  });
3422
-
3423
- // src/data/product-use-case.model.ts
3424
- var createProductUseCaseModel = () => ({
3425
- name: "product-use-case",
3426
- kind: "data",
3427
- displayName: "Product Use Case",
3428
- helperText: "Provides a link between products used for the same goal.",
3429
- contentTitleField: "name",
3430
- fields: [
3431
- {
3432
- name: "name",
3433
- defaultCollapsed: true,
3434
- friendlyName: "Use Case",
3435
- type: "text",
3436
- required: true,
3437
- localized: true
3438
- },
3439
- {
3440
- name: "description",
3441
- friendlyName: "Description",
3442
- type: "longText",
3443
- defaultCollapsed: true,
3444
- required: false,
3445
- localized: true
3446
- },
3447
- {
3448
- name: "searchKeys",
3449
- friendlyName: "Search Keys",
3450
- type: "Tags",
3451
- defaultCollapsed: true,
3452
- helperText: 'Used when building links (e.g. "products?category=[Search Key]")',
3453
- required: false,
3454
- localized: false
3455
- },
3456
- {
3457
- name: "image",
3458
- friendlyName: "Image",
3459
- defaultCollapsed: true,
3460
- type: "file",
3461
- showTemplatePicker: true,
3462
- allowedFileTypes: ["jpeg", "png", "svg", "webp"]
3463
- },
3464
- {
3465
- name: "hidden",
3466
- friendlyName: "Hide Use Case",
3467
- type: "boolean",
3468
- required: false,
3469
- localized: true,
3470
- defaultCollapsed: true,
3471
- helperText: "When true, this use case will not be displayed in product grids or search results for this locale"
3472
- }
3473
- ]
2954
+ Object.defineProperty(exports, "createProductModel", {
2955
+ enumerable: true,
2956
+ get: function () { return builderSharedSchemas.createProductModel; }
2957
+ });
2958
+ Object.defineProperty(exports, "createProductTagModel", {
2959
+ enumerable: true,
2960
+ get: function () { return builderSharedSchemas.createProductTagModel; }
2961
+ });
2962
+ Object.defineProperty(exports, "createProductUseCaseModel", {
2963
+ enumerable: true,
2964
+ get: function () { return builderSharedSchemas.createProductUseCaseModel; }
3474
2965
  });
3475
-
3476
2966
  exports.createBlogCategoryModel = createBlogCategoryModel;
3477
2967
  exports.createBlogCommentModel = createBlogCommentModel;
3478
2968
  exports.createBrandConfigModel = createBrandConfigModel;
3479
- exports.createCategoryModel = createCategoryModel;
3480
- exports.createIngredientsModel = createIngredientsModel;
3481
2969
  exports.createProductGridConfigModel = createProductGridConfigModel;
3482
2970
  exports.createProductGroupModel = createProductGroupModel;
3483
- exports.createProductModel = createProductModel;
3484
- exports.createProductTagModel = createProductTagModel;
3485
- exports.createProductUseCaseModel = createProductUseCaseModel;
3486
2971
  //# sourceMappingURL=index.cjs.map
3487
2972
  //# sourceMappingURL=index.cjs.map