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