@evenicanpm/storefront-graphql-codegen 1.1.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.
Files changed (138) hide show
  1. package/README.md +9 -0
  2. package/codegen.ts +26 -0
  3. package/documents/Account/index.ts +1 -0
  4. package/documents/Account/interfaces.ts +124 -0
  5. package/documents/Account/read.ts +22 -0
  6. package/documents/Account/readList.ts +28 -0
  7. package/documents/Account/update.ts +12 -0
  8. package/documents/Address/addressType.ts +12 -0
  9. package/documents/Address/countries.ts +27 -0
  10. package/documents/Address/create.ts +12 -0
  11. package/documents/Address/delete.ts +7 -0
  12. package/documents/Address/fragments.ts +56 -0
  13. package/documents/Address/index.ts +2 -0
  14. package/documents/Address/interfaces.ts +41 -0
  15. package/documents/Address/update.ts +12 -0
  16. package/documents/Cart/add.ts +64 -0
  17. package/documents/Cart/checkoutRead.ts +88 -0
  18. package/documents/Cart/checkoutSubmit.ts +18 -0
  19. package/documents/Cart/createCartAddress.ts +12 -0
  20. package/documents/Cart/deleteLine.ts +64 -0
  21. package/documents/Cart/fragments.ts +204 -0
  22. package/documents/Cart/interfaces.ts +56 -0
  23. package/documents/Cart/read.ts +44 -0
  24. package/documents/Cart/setOrderEmail.ts +9 -0
  25. package/documents/Cart/shippingMethodRead.ts +44 -0
  26. package/documents/Cart/shippingMethodUpdate.ts +64 -0
  27. package/documents/Cart/submit.ts +18 -0
  28. package/documents/Cart/updateCartAddress.ts +9 -0
  29. package/documents/Cart/updateLine.ts +64 -0
  30. package/documents/Catalog/create.ts +15 -0
  31. package/documents/Catalog/delete.ts +9 -0
  32. package/documents/Catalog/deleteProducts.ts +10 -0
  33. package/documents/Catalog/fragments.ts +80 -0
  34. package/documents/Catalog/interfaces.ts +34 -0
  35. package/documents/Catalog/linkMedia/create.ts +20 -0
  36. package/documents/Catalog/linkMedia/delete.ts +9 -0
  37. package/documents/Catalog/linkMedia/update.ts +11 -0
  38. package/documents/Catalog/linkProduct.ts +12 -0
  39. package/documents/Catalog/list.ts +23 -0
  40. package/documents/Catalog/read.ts +56 -0
  41. package/documents/Catalog/removeProduct.ts +11 -0
  42. package/documents/Catalog/save.ts +17 -0
  43. package/documents/Catalog/statusList.ts +12 -0
  44. package/documents/Catalog/update.ts +15 -0
  45. package/documents/Category/fragments.ts +54 -0
  46. package/documents/Category/interfaces.ts +18 -0
  47. package/documents/Category/list.ts +55 -0
  48. package/documents/MediaLibrary/File/create.ts +44 -0
  49. package/documents/MediaLibrary/File/delete.ts +12 -0
  50. package/documents/MediaLibrary/File/read.ts +36 -0
  51. package/documents/MediaLibrary/File/update.ts +43 -0
  52. package/documents/MediaLibrary/Folder/create.ts +24 -0
  53. package/documents/MediaLibrary/Folder/delete.ts +11 -0
  54. package/documents/MediaLibrary/Folder/read.ts +101 -0
  55. package/documents/MediaLibrary/Folder/update.ts +10 -0
  56. package/documents/MediaLibrary/move.ts +44 -0
  57. package/documents/MediaLibrary/search.ts +84 -0
  58. package/documents/Order/fragments.ts +116 -0
  59. package/documents/Order/index.ts +2 -0
  60. package/documents/Order/interfaces.ts +30 -0
  61. package/documents/Order/list.ts +129 -0
  62. package/documents/Order/read.ts +44 -0
  63. package/documents/Product/facets.ts +34 -0
  64. package/documents/Product/fragments.ts +167 -0
  65. package/documents/Product/getAll.ts +77 -0
  66. package/documents/Product/interfaces.ts +45 -0
  67. package/documents/Product/list.ts +248 -0
  68. package/documents/Product/read.ts +70 -0
  69. package/documents/Product/search.ts +170 -0
  70. package/documents/Review/create.ts +22 -0
  71. package/documents/ServerCache/productIndex.ts +11 -0
  72. package/documents/Session/Customer/init.ts +12 -0
  73. package/documents/Session/Customer/logout.ts +11 -0
  74. package/documents/Session/Customer/read.ts +15 -0
  75. package/documents/Session/fragments.ts +69 -0
  76. package/documents/Session/index.ts +8 -0
  77. package/documents/Session/interfaces.ts +11 -0
  78. package/documents/Session/login.ts +36 -0
  79. package/documents/Session/logout.ts +11 -0
  80. package/documents/Session/read.ts +43 -0
  81. package/documents/Settings/ClearCache/clearcache.ts +10 -0
  82. package/documents/Settings/SystemInformation/index.ts +1 -0
  83. package/documents/Settings/SystemInformation/interfaces.ts +16 -0
  84. package/documents/Settings/SystemInformation/system-information.ts +20 -0
  85. package/documents/Settings/aliases.ts +96 -0
  86. package/documents/Settings/claims.ts +124 -0
  87. package/documents/Settings/contacts.ts +133 -0
  88. package/documents/Settings/index.ts +12 -0
  89. package/documents/Settings/indexes.ts +73 -0
  90. package/documents/Settings/roles.ts +93 -0
  91. package/documents/Settings/settingsGroup.ts +266 -0
  92. package/documents/Settings/users.ts +19 -0
  93. package/documents/Settings/words.ts +115 -0
  94. package/documents/Theme/create.ts +46 -0
  95. package/documents/Theme/delete.ts +9 -0
  96. package/documents/Theme/interfaces.ts +63 -0
  97. package/documents/Theme/read.ts +83 -0
  98. package/documents/User/changePassword.ts +11 -0
  99. package/documents/User/counts.ts +8 -0
  100. package/documents/User/fragments.ts +61 -0
  101. package/documents/User/index.ts +2 -0
  102. package/documents/User/interfaces.ts +29 -0
  103. package/documents/User/read.ts +44 -0
  104. package/documents/User/register.ts +11 -0
  105. package/documents/User/resetPassword.ts +11 -0
  106. package/documents/User/update.ts +44 -0
  107. package/documents/WishList/add.ts +10 -0
  108. package/documents/WishList/create.ts +12 -0
  109. package/documents/WishList/delete.ts +7 -0
  110. package/documents/WishList/deleteLine.ts +7 -0
  111. package/documents/WishList/fragments.ts +98 -0
  112. package/documents/WishList/index.ts +2 -0
  113. package/documents/WishList/interfaces.ts +68 -0
  114. package/documents/WishList/list.ts +136 -0
  115. package/documents/WishList/read.ts +44 -0
  116. package/documents/base/interfaces.ts +34 -0
  117. package/documents/base/logger.ts +20 -0
  118. package/documents/base/pageInfoFragments.ts +25 -0
  119. package/documents/base/refresh-token.ts +15 -0
  120. package/documents/core/Logger/create.ts +64 -0
  121. package/documents/core/Logger/delete.ts +14 -0
  122. package/documents/core/Logger/fragments.ts +55 -0
  123. package/documents/core/Logger/index.ts +2 -0
  124. package/documents/core/Logger/interfaces.ts +39 -0
  125. package/documents/core/Logger/list.ts +56 -0
  126. package/documents/core/Logger/read.ts +44 -0
  127. package/documents/core/Logger/update.ts +64 -0
  128. package/documents/core/SampleData/create.ts +76 -0
  129. package/documents/core/SampleData/delete.ts +14 -0
  130. package/documents/core/SampleData/fragments.ts +48 -0
  131. package/documents/core/SampleData/index.ts +7 -0
  132. package/documents/core/SampleData/interfaces.ts +11 -0
  133. package/documents/core/SampleData/list.ts +233 -0
  134. package/documents/core/SampleData/read.ts +44 -0
  135. package/documents/core/SampleData/update.ts +76 -0
  136. package/documents/core/index.ts +2 -0
  137. package/documents/messages/messages.ts +21 -0
  138. package/package.json +22 -0
@@ -0,0 +1,116 @@
1
+ import { gql } from "graphql-request";
2
+
3
+ import { PRODUCT_FRAGMENT_MD, PRODUCT_FRAGMENT_LG } from "../Product/fragments";
4
+ import { ADDRESS_FRAGMENT } from "../Address/fragments";
5
+
6
+ export const ORDER_FRAGMENT_XS = gql`
7
+ fragment OrderFragmentXS on Order {
8
+ id
9
+ orderNumber
10
+ orderDate
11
+ }
12
+ `;
13
+
14
+ export const ORDER_FRAGMENT_SM = gql`
15
+ fragment OrderFragmentSM on Order {
16
+ id
17
+ orderType
18
+ orderStatus
19
+ orderNumber
20
+ orderDate
21
+ itemCount
22
+ subTotal
23
+ taxTotal
24
+ freightTotal
25
+ promotionTotal
26
+ total
27
+ }
28
+ `;
29
+
30
+ export const ORDER_FRAGMENT_MD = gql`
31
+ fragment OrderFragmentMD on Order {
32
+ id
33
+ orderType
34
+ orderStatus
35
+ orderNumber
36
+ orderDate
37
+ itemCount
38
+ subTotal
39
+ taxTotal
40
+ freightTotal
41
+ promotionTotal
42
+ total
43
+ completedCartId
44
+ lines {
45
+ id
46
+ amount
47
+ lineNumber
48
+ price
49
+ quantity
50
+ unitOfMeasure
51
+ productName
52
+ productId
53
+ productCode
54
+ selectedDimensions {
55
+ id
56
+ name
57
+ value
58
+ }
59
+ img {
60
+ cdnURL
61
+ id
62
+ alt
63
+ }
64
+ }
65
+ addresses {
66
+ ...AddressFragment
67
+ }
68
+ }
69
+ ${ADDRESS_FRAGMENT}
70
+ `;
71
+
72
+ export const ORDER_FRAGMENT_LG = gql`
73
+ fragment OrderFragmentLG on Order {
74
+ id
75
+ orderType
76
+ orderStatus
77
+ orderNumber
78
+ orderDate
79
+ itemCount
80
+ subTotal
81
+ taxTotal
82
+ freightTotal
83
+ promotionTotal
84
+ total
85
+ completedCartId
86
+ lines {
87
+ id
88
+ amount
89
+ lineNumber
90
+ price
91
+ quantity
92
+ unitOfMeasure
93
+ productName
94
+ productId
95
+ productCode
96
+ selectedDimensions {
97
+ id
98
+ name
99
+ value
100
+ }
101
+ img {
102
+ cdnURL
103
+ id
104
+ alt
105
+ }
106
+ product {
107
+ ...ProductFragmentLG
108
+ }
109
+ }
110
+ addresses {
111
+ ...AddressFragment
112
+ }
113
+ }
114
+ ${ADDRESS_FRAGMENT}
115
+ ${PRODUCT_FRAGMENT_LG}
116
+ `;
@@ -0,0 +1,2 @@
1
+ export * from "./fragments";
2
+ export * from "./interfaces";
@@ -0,0 +1,30 @@
1
+ import { Address } from "@evenicanpm/e4-shared-client-graphql/Address/interfaces";
2
+ import { Product } from "@evenicanpm/e4-shared-client-graphql/Product/interfaces";
3
+
4
+ export interface OrderLine {
5
+ id: string;
6
+ product: Product;
7
+ lineNumber?: number;
8
+ quantity: number;
9
+ price: number;
10
+ amount: number;
11
+ unitOfMeasure: string;
12
+ selectedDimensions: any[];
13
+ }
14
+
15
+ export interface Order {
16
+ id: string;
17
+ orderType: string;
18
+ orderStatus: string;
19
+ orderNumber: string;
20
+ orderDate: string;
21
+ itemCount: number;
22
+ subTotal: number;
23
+ taxTotal?: number;
24
+ freightTotal?: number;
25
+ promotionTotal?: number;
26
+ total: number;
27
+ lines: OrderLine[];
28
+ addresses: Address[];
29
+ completedCartId: string;
30
+ }
@@ -0,0 +1,129 @@
1
+ import { gql } from "graphql-request";
2
+
3
+ // GraphQL
4
+ // import { PAGE_INFO } from "../base/fragments";
5
+ import {
6
+ ORDER_FRAGMENT_XS,
7
+ ORDER_FRAGMENT_SM,
8
+ ORDER_FRAGMENT_MD,
9
+ ORDER_FRAGMENT_LG,
10
+ } from "./fragments";
11
+
12
+ const PAGE_INFO = gql`
13
+ fragment PageInfo on PageInfo {
14
+ top
15
+ sort
16
+ sortDesc
17
+ search
18
+ skip
19
+ currentPage
20
+ }
21
+ `;
22
+ const ORDER_LIST_XS = gql`
23
+ query e4OrderListXS(
24
+ $id: ID!
25
+ $limit: Int
26
+ $offset: Int
27
+ $orderBy: String
28
+ $filter: Filter
29
+ ) {
30
+ getOrdersByUserId(
31
+ id: $id
32
+ limit: $limit
33
+ offset: $offset
34
+ orderBy: $orderBy
35
+ filter: $filter
36
+ ) {
37
+ recordCount
38
+ pageInfo {
39
+ ...PageInfo
40
+ }
41
+ nodes {
42
+ ...OrderFragmentXS
43
+ }
44
+ }
45
+ }
46
+ ${ORDER_FRAGMENT_XS}
47
+ `;
48
+
49
+ const ORDER_LIST_SM = gql`
50
+ query e4OrderListSM(
51
+ $id: ID!
52
+ $limit: Int
53
+ $offset: Int
54
+ $orderBy: String
55
+ $filter: Filter
56
+ ) {
57
+ getOrdersByUserId(
58
+ id: $id
59
+ limit: $limit
60
+ offset: $offset
61
+ orderBy: $orderBy
62
+ filter: $filter
63
+ ) {
64
+ recordCount
65
+ pageInfo {
66
+ ...PageInfo
67
+ }
68
+ nodes {
69
+ ...OrderFragmentSM
70
+ }
71
+ }
72
+ }
73
+ ${ORDER_FRAGMENT_SM}
74
+ `;
75
+
76
+ const ORDER_LIST_MD = gql`
77
+ query e4OrderListMD(
78
+ $id: ID!
79
+ $limit: Int
80
+ $offset: Int
81
+ $orderBy: String
82
+ $filter: Filter
83
+ ) {
84
+ getOrdersByUserId(
85
+ id: $id
86
+ limit: $limit
87
+ offset: $offset
88
+ orderBy: $orderBy
89
+ filter: $filter
90
+ ) {
91
+ recordCount
92
+ pageInfo {
93
+ ...PageInfo
94
+ }
95
+ nodes {
96
+ ...OrderFragmentMD
97
+ }
98
+ }
99
+ }
100
+ ${ORDER_FRAGMENT_MD}
101
+ ${PAGE_INFO}
102
+ `;
103
+
104
+ const ORDER_LIST_LG = gql`
105
+ query e4OrderListLG(
106
+ $id: ID!
107
+ $limit: Int
108
+ $offset: Int
109
+ $orderBy: String
110
+ $filter: Filter
111
+ ) {
112
+ getOrdersByUserId(
113
+ id: $id
114
+ limit: $limit
115
+ offset: $offset
116
+ orderBy: $orderBy
117
+ filter: $filter
118
+ ) {
119
+ recordCount
120
+ pageInfo {
121
+ ...PageInfo
122
+ }
123
+ nodes {
124
+ ...OrderFragmentLG
125
+ }
126
+ }
127
+ }
128
+ ${ORDER_FRAGMENT_LG}
129
+ `;
@@ -0,0 +1,44 @@
1
+ import { gql } from "graphql-request";
2
+
3
+ import {
4
+ ORDER_FRAGMENT_XS,
5
+ ORDER_FRAGMENT_SM,
6
+ ORDER_FRAGMENT_MD,
7
+ ORDER_FRAGMENT_LG,
8
+ } from "./fragments";
9
+
10
+ const ORDER_READ_XS = gql`
11
+ ${ORDER_FRAGMENT_XS}
12
+ query e4OrderReadXS($id: ID!) {
13
+ getOrderById(id: $id) {
14
+ ...OrderFragmentXS
15
+ }
16
+ }
17
+ `;
18
+
19
+ const ORDER_READ_SM = gql`
20
+ ${ORDER_FRAGMENT_SM}
21
+ query e4OrderReadSM($id: ID!) {
22
+ getOrderById(id: $id) {
23
+ ...OrderFragmentSM
24
+ }
25
+ }
26
+ `;
27
+
28
+ const ORDER_READ_MD = gql`
29
+ ${ORDER_FRAGMENT_MD}
30
+ query e4OrderReadMD($id: ID!) {
31
+ getOrderById(id: $id) {
32
+ ...OrderFragmentMD
33
+ }
34
+ }
35
+ `;
36
+
37
+ const ORDER_READ_LG = gql`
38
+ ${ORDER_FRAGMENT_LG}
39
+ query e4OrderReadLG($id: ID!) {
40
+ getOrderById(id: $id) {
41
+ ...OrderFragmentLG
42
+ }
43
+ }
44
+ `;
@@ -0,0 +1,34 @@
1
+ import { gql } from "graphql-request";
2
+
3
+ const PRODUCT_FACETS = gql`
4
+ query productFacets {
5
+ productEntities {
6
+ recordCount
7
+ pageInfo {
8
+ top
9
+ skip
10
+ sort
11
+ sortDesc
12
+ search
13
+ }
14
+ nodes {
15
+ id
16
+ name
17
+ }
18
+ }
19
+ productStatuses {
20
+ recordCount
21
+ pageInfo {
22
+ top
23
+ skip
24
+ sort
25
+ sortDesc
26
+ search
27
+ }
28
+ nodes {
29
+ id
30
+ name
31
+ }
32
+ }
33
+ }
34
+ `;
@@ -0,0 +1,167 @@
1
+ import { gql } from "graphql-request";
2
+
3
+ export const PRODUCT_FRAGMENT_XS = gql`
4
+ fragment ProductFragmentXS on Product {
5
+ id
6
+ name
7
+ }
8
+ `;
9
+
10
+ export const PRODUCT_FRAGMENT_SM = gql`
11
+ fragment ProductFragmentSM on Product {
12
+ id
13
+ code
14
+ name
15
+ sku
16
+ seoName
17
+ listPrice
18
+ price
19
+ isDimensionedProduct
20
+ img {
21
+ id
22
+ cdnURL
23
+ alt
24
+ }
25
+ }
26
+ `;
27
+
28
+ export const PRODUCT_FRAGMENT_MD = gql`
29
+ fragment ProductFragmentMD on Product {
30
+ id
31
+ name
32
+ code
33
+ sku
34
+ category {
35
+ breadcrumb {
36
+ CategoryId
37
+ Name
38
+ seoName
39
+ }
40
+ }
41
+ seoName
42
+ price
43
+ listPrice
44
+ Available
45
+ uom {
46
+ nodes {
47
+ id
48
+ }
49
+ }
50
+ shortDescription
51
+ longDescription
52
+ img {
53
+ id
54
+ cdnURL
55
+ alt
56
+ }
57
+ Dimensions {
58
+ Label
59
+ AttributeId
60
+ }
61
+ Variants {
62
+ ProductId
63
+ MasterProductId
64
+ Name
65
+ Code
66
+ ListPrice
67
+ Price
68
+ DiscountAmount
69
+ IsGiftCard
70
+ OnHand
71
+ Available
72
+ Attributes {
73
+ AttributeId
74
+ ValueId
75
+ Value
76
+ Name
77
+ }
78
+ }
79
+ attributes {
80
+ AttributeId
81
+ AttributeGroupName
82
+ ValueId
83
+ Value
84
+ Name
85
+ Sort
86
+ }
87
+ }
88
+ `;
89
+
90
+ export const PRODUCT_FRAGMENT_LG = gql`
91
+ fragment ProductFragmentLG on Product {
92
+ id
93
+ name
94
+ code
95
+ sku
96
+ seoName
97
+ price
98
+ listPrice
99
+ Available
100
+ shortDescription
101
+ longDescription
102
+ Dimensions {
103
+ Label
104
+ AttributeId
105
+ }
106
+ Variants {
107
+ ProductId
108
+ MasterProductId
109
+ Name
110
+ Code
111
+ ListPrice
112
+ Price
113
+ DiscountAmount
114
+ IsGiftCard
115
+ OnHand
116
+ Available
117
+ Attributes {
118
+ AttributeId
119
+ ValueId
120
+ Value
121
+ Name
122
+ }
123
+ }
124
+ img {
125
+ id
126
+ cdnURL
127
+ alt
128
+ }
129
+ attributes {
130
+ AttributeId
131
+ AttributeGroupName
132
+ ValueId
133
+ Value
134
+ Name
135
+ Sort
136
+ }
137
+ }
138
+ `;
139
+
140
+ export const ATTRIBUTE_VALUE_FRAGMENT = gql`
141
+ fragment AttributeValueFragment on AttributeValue {
142
+ id
143
+ AttributeId
144
+ AttributeValueId
145
+ AttributeValue
146
+ Count
147
+ IsSelected
148
+ Rank
149
+ }
150
+ `;
151
+
152
+ export const REVIEW_FRAGMENT = gql`
153
+ fragment ProductReview on Product {
154
+ Reviews {
155
+ Body
156
+ Rating
157
+ Title
158
+ Created
159
+ ProductId
160
+ ContactId
161
+ contact {
162
+ firstName
163
+ lastName
164
+ }
165
+ }
166
+ }
167
+ `;
@@ -0,0 +1,77 @@
1
+ import { gql } from "graphql-request";
2
+
3
+ const GET_ALL_PRODUCTS = gql`
4
+ query Query {
5
+ products {
6
+ products {
7
+ name
8
+ sku
9
+ id
10
+ img {
11
+ id
12
+ cdnURL
13
+ alt
14
+ }
15
+ }
16
+ }
17
+ }
18
+ `;
19
+
20
+ const GET_ALL_PRODUCTS_CATEGORIES = gql`
21
+ query AllProducts {
22
+ products {
23
+ products {
24
+ id
25
+ name
26
+ code
27
+ sku
28
+ seoName
29
+ price
30
+ listPrice
31
+ Available
32
+ shortDescription
33
+ longDescription
34
+ category {
35
+ id
36
+ parentId
37
+ name
38
+ }
39
+ img {
40
+ id
41
+ cdnURL
42
+ alt
43
+ }
44
+ Dimensions {
45
+ Label
46
+ AttributeId
47
+ }
48
+ Variants {
49
+ ProductId
50
+ MasterProductId
51
+ Name
52
+ Code
53
+ ListPrice
54
+ Price
55
+ DiscountAmount
56
+ IsGiftCard
57
+ OnHand
58
+ Available
59
+ Attributes {
60
+ AttributeId
61
+ ValueId
62
+ Value
63
+ Name
64
+ }
65
+ }
66
+ attributes {
67
+ AttributeId
68
+ AttributeGroupName
69
+ ValueId
70
+ Value
71
+ Name
72
+ Sort
73
+ }
74
+ }
75
+ }
76
+ }
77
+ `;
@@ -0,0 +1,45 @@
1
+ import { Category, Breadcrumb } from "../Category/interfaces";
2
+
3
+ export interface Product {
4
+ id: string;
5
+ code?: string;
6
+ name?: string;
7
+ productTypeName?: string;
8
+ img?: any;
9
+ masterProductId?: string;
10
+ productEntity?: any;
11
+ seoName?: string;
12
+ sku?: string;
13
+ upc?: string;
14
+ shortDescription?: string;
15
+ longDescription?: string;
16
+ productStatus?: any;
17
+ unitOfMeasure?: string;
18
+ salesEndDate?: string;
19
+ listPrice?: number;
20
+ discountAmount?: number;
21
+ price?: number;
22
+ isDefaultProduct?: boolean;
23
+ isDimensionedProduct?: boolean;
24
+ masterAttributes?: any;
25
+ priceGroupListPrice?: any;
26
+ variants?: any;
27
+ primaryVariantOptions?: any;
28
+ selectedDimensions?: any;
29
+ available?: number;
30
+ attributes?: any;
31
+ modifiedBy?: any;
32
+ created?: string;
33
+ modified?: string;
34
+ Variants?: any;
35
+ Dimensions?: any;
36
+ Available?: number;
37
+ category?: Category[];
38
+ inventory?: any;
39
+ Reviews?: any;
40
+ origin?: any;
41
+ uom?: any;
42
+ isInWishList?: boolean;
43
+ }
44
+
45
+ export type { Category, Breadcrumb };