@vendure/admin-ui 1.8.0 → 1.8.2

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 (947) hide show
  1. package/LICENSE +9 -0
  2. package/{package/bundles → bundles}/vendure-admin-ui-catalog.umd.js +3 -3
  3. package/{package/bundles → bundles}/vendure-admin-ui-catalog.umd.js.map +1 -1
  4. package/{package/bundles → bundles}/vendure-admin-ui-core.umd.js +32 -2
  5. package/bundles/vendure-admin-ui-core.umd.js.map +1 -0
  6. package/{package/bundles → bundles}/vendure-admin-ui-customer.umd.js +0 -0
  7. package/{package/bundles → bundles}/vendure-admin-ui-customer.umd.js.map +0 -0
  8. package/{package/bundles → bundles}/vendure-admin-ui-dashboard.umd.js +0 -0
  9. package/{package/bundles → bundles}/vendure-admin-ui-dashboard.umd.js.map +1 -1
  10. package/{package/bundles → bundles}/vendure-admin-ui-login.umd.js +0 -0
  11. package/{package/bundles → bundles}/vendure-admin-ui-login.umd.js.map +0 -0
  12. package/{package/bundles → bundles}/vendure-admin-ui-marketing.umd.js +0 -0
  13. package/{package/bundles → bundles}/vendure-admin-ui-marketing.umd.js.map +0 -0
  14. package/{package/bundles → bundles}/vendure-admin-ui-order.umd.js +0 -0
  15. package/{package/bundles → bundles}/vendure-admin-ui-order.umd.js.map +0 -0
  16. package/{package/bundles → bundles}/vendure-admin-ui-settings.umd.js +2 -2
  17. package/bundles/vendure-admin-ui-settings.umd.js.map +1 -0
  18. package/{package/bundles → bundles}/vendure-admin-ui-system.umd.js +0 -0
  19. package/{package/bundles → bundles}/vendure-admin-ui-system.umd.js.map +0 -0
  20. package/{package/bundles → bundles}/vendure-admin-ui.umd.js +0 -0
  21. package/{package/bundles → bundles}/vendure-admin-ui.umd.js.map +0 -0
  22. package/{package/catalog → catalog}/catalog.module.d.ts +0 -0
  23. package/{package/catalog → catalog}/catalog.routes.d.ts +0 -0
  24. package/{package/catalog → catalog}/components/apply-facet-dialog/apply-facet-dialog.component.d.ts +0 -0
  25. package/{package/catalog → catalog}/components/asset-detail/asset-detail.component.d.ts +0 -0
  26. package/{package/catalog → catalog}/components/asset-list/asset-list.component.d.ts +0 -0
  27. package/{package/catalog → catalog}/components/assets/assets.component.d.ts +0 -0
  28. package/{package/catalog → catalog}/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.d.ts +0 -0
  29. package/{package/catalog → catalog}/components/assign-to-channel-dialog/assign-to-channel-dialog.component.d.ts +0 -0
  30. package/{package/catalog → catalog}/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.d.ts +0 -0
  31. package/{package/catalog → catalog}/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.graphql.d.ts +0 -0
  32. package/{package/catalog → catalog}/components/collection-contents/collection-contents.component.d.ts +0 -0
  33. package/{package/catalog → catalog}/components/collection-detail/collection-detail.component.d.ts +0 -0
  34. package/{package/catalog → catalog}/components/collection-list/collection-list-bulk-actions.d.ts +0 -0
  35. package/{package/catalog → catalog}/components/collection-list/collection-list.component.d.ts +0 -0
  36. package/{package/catalog → catalog}/components/collection-tree/array-to-tree.d.ts +0 -0
  37. package/{package/catalog → catalog}/components/collection-tree/collection-tree-node.component.d.ts +0 -0
  38. package/{package/catalog → catalog}/components/collection-tree/collection-tree.component.d.ts +0 -0
  39. package/{package/catalog → catalog}/components/confirm-variant-deletion-dialog/confirm-variant-deletion-dialog.component.d.ts +0 -0
  40. package/{package/catalog → catalog}/components/facet-detail/facet-detail.component.d.ts +0 -0
  41. package/{package/catalog → catalog}/components/facet-list/facet-list-bulk-actions.d.ts +0 -0
  42. package/{package/catalog → catalog}/components/facet-list/facet-list.component.d.ts +0 -0
  43. package/{package/catalog → catalog}/components/generate-product-variants/generate-product-variants.component.d.ts +0 -0
  44. package/{package/catalog → catalog}/components/option-value-input/option-value-input.component.d.ts +0 -0
  45. package/{package/catalog → catalog}/components/product-detail/product-detail.component.d.ts +0 -0
  46. package/{package/catalog → catalog}/components/product-list/product-list-bulk-actions.d.ts +0 -0
  47. package/{package/catalog → catalog}/components/product-list/product-list.component.d.ts +0 -0
  48. package/{package/catalog → catalog}/components/product-options-editor/product-options-editor.component.d.ts +0 -0
  49. package/{package/catalog → catalog}/components/product-variants-editor/product-variants-editor.component.d.ts +0 -0
  50. package/{package/catalog → catalog}/components/product-variants-list/product-variants-list.component.d.ts +0 -0
  51. package/{package/catalog → catalog}/components/product-variants-table/product-variants-table.component.d.ts +0 -0
  52. package/{package/catalog → catalog}/components/update-product-option-dialog/update-product-option-dialog.component.d.ts +0 -0
  53. package/{package/catalog → catalog}/components/variant-price-detail/variant-price-detail.component.d.ts +0 -0
  54. package/{package/catalog → catalog}/package.json +0 -0
  55. package/{package/catalog → catalog}/providers/product-detail/product-detail.service.d.ts +0 -0
  56. package/{package/catalog → catalog}/providers/product-detail/replace-last.d.ts +0 -0
  57. package/{package/catalog → catalog}/providers/routing/asset-resolver.d.ts +0 -0
  58. package/{package/catalog → catalog}/providers/routing/collection-resolver.d.ts +0 -0
  59. package/{package/catalog → catalog}/providers/routing/facet-resolver.d.ts +0 -0
  60. package/{package/catalog → catalog}/providers/routing/product-resolver.d.ts +0 -0
  61. package/{package/catalog → catalog}/providers/routing/product-variants-resolver.d.ts +0 -0
  62. package/{package/catalog → catalog}/public_api.d.ts +0 -0
  63. package/{package/catalog → catalog}/vendure-admin-ui-catalog.d.ts +0 -0
  64. package/catalog/vendure-admin-ui-catalog.metadata.json +1 -0
  65. package/{package/core → core}/app.component.d.ts +0 -0
  66. package/{package/core → core}/app.component.module.d.ts +0 -0
  67. package/{package/core → core}/app.config.d.ts +0 -0
  68. package/{package/core → core}/common/base-detail.component.d.ts +0 -0
  69. package/{package/core → core}/common/base-entity-resolver.d.ts +0 -0
  70. package/{package/core → core}/common/base-list.component.d.ts +0 -0
  71. package/{package/core → core}/common/component-registry-types.d.ts +0 -0
  72. package/{package/core → core}/common/deactivate-aware.d.ts +0 -0
  73. package/{package/core → core}/common/detail-breadcrumb.d.ts +0 -0
  74. package/{package/core → core}/common/generated-types.d.ts +0 -0
  75. package/{package/core → core}/common/introspection-result-wrapper.d.ts +0 -0
  76. package/{package/core → core}/common/introspection-result.d.ts +0 -0
  77. package/{package/core → core}/common/single-search-selection-model.d.ts +0 -0
  78. package/{package/core → core}/common/utilities/bulk-action-utils.d.ts +0 -0
  79. package/{package/core → core}/common/utilities/configurable-operation-utils.d.ts +0 -0
  80. package/{package/core → core}/common/utilities/create-updated-translatable.d.ts +0 -0
  81. package/{package/core → core}/common/utilities/find-translation.d.ts +0 -0
  82. package/{package/core → core}/common/utilities/flatten-facet-values.d.ts +0 -0
  83. package/{package/core → core}/common/utilities/get-default-ui-language.d.ts +0 -0
  84. package/{package/core → core}/common/utilities/interpolate-description.d.ts +0 -0
  85. package/{package/core → core}/common/utilities/selection-manager.d.ts +0 -0
  86. package/{package/core → core}/common/utilities/string-to-color.d.ts +0 -0
  87. package/core/common/version.d.ts +1 -0
  88. package/{package/core → core}/components/app-shell/app-shell.component.d.ts +0 -0
  89. package/{package/core → core}/components/breadcrumb/breadcrumb.component.d.ts +0 -0
  90. package/{package/core → core}/components/channel-switcher/channel-switcher.component.d.ts +0 -0
  91. package/{package/core → core}/components/main-nav/main-nav.component.d.ts +0 -0
  92. package/{package/core → core}/components/notification/notification.component.d.ts +0 -0
  93. package/{package/core → core}/components/overlay-host/overlay-host.component.d.ts +0 -0
  94. package/{package/core → core}/components/theme-switcher/theme-switcher.component.d.ts +0 -0
  95. package/{package/core → core}/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.d.ts +0 -0
  96. package/{package/core → core}/components/user-menu/user-menu.component.d.ts +0 -0
  97. package/{package/core → core}/core.module.d.ts +0 -0
  98. package/{package/core → core}/data/check-jobs-link.d.ts +0 -0
  99. package/{package/core → core}/data/client-state/client-defaults.d.ts +0 -0
  100. package/{package/core → core}/data/client-state/client-resolvers.d.ts +0 -0
  101. package/{package/core → core}/data/data.module.d.ts +0 -0
  102. package/{package/core → core}/data/definitions/administrator-definitions.d.ts +0 -0
  103. package/{package/core → core}/data/definitions/auth-definitions.d.ts +0 -0
  104. package/{package/core → core}/data/definitions/client-definitions.d.ts +0 -0
  105. package/{package/core → core}/data/definitions/collection-definitions.d.ts +0 -0
  106. package/{package/core → core}/data/definitions/customer-definitions.d.ts +0 -0
  107. package/{package/core → core}/data/definitions/facet-definitions.d.ts +0 -0
  108. package/{package/core → core}/data/definitions/order-definitions.d.ts +0 -0
  109. package/{package/core → core}/data/definitions/product-definitions.d.ts +0 -0
  110. package/{package/core → core}/data/definitions/promotion-definitions.d.ts +0 -0
  111. package/{package/core → core}/data/definitions/settings-definitions.d.ts +0 -0
  112. package/{package/core → core}/data/definitions/shared-definitions.d.ts +0 -0
  113. package/{package/core → core}/data/definitions/shipping-definitions.d.ts +0 -0
  114. package/{package/core → core}/data/omit-typename-link.d.ts +0 -0
  115. package/{package/core → core}/data/providers/administrator-data.service.d.ts +0 -0
  116. package/{package/core → core}/data/providers/auth-data.service.d.ts +0 -0
  117. package/{package/core → core}/data/providers/base-data.service.d.ts +0 -0
  118. package/{package/core → core}/data/providers/client-data.service.d.ts +0 -0
  119. package/{package/core → core}/data/providers/collection-data.service.d.ts +0 -0
  120. package/{package/core → core}/data/providers/customer-data.service.d.ts +0 -0
  121. package/{package/core → core}/data/providers/data.service.d.ts +0 -0
  122. package/{package/core → core}/data/providers/facet-data.service.d.ts +0 -0
  123. package/{package/core → core}/data/providers/fetch-adapter.d.ts +0 -0
  124. package/{package/core → core}/data/providers/interceptor.d.ts +0 -0
  125. package/{package/core → core}/data/providers/order-data.service.d.ts +0 -0
  126. package/{package/core → core}/data/providers/product-data.service.d.ts +0 -0
  127. package/{package/core → core}/data/providers/promotion-data.service.d.ts +0 -0
  128. package/{package/core → core}/data/providers/settings-data.service.d.ts +0 -0
  129. package/{package/core → core}/data/providers/shipping-method-data.service.d.ts +0 -0
  130. package/{package/core → core}/data/query-result.d.ts +0 -0
  131. package/{package/core → core}/data/server-config.d.ts +0 -0
  132. package/{package/core → core}/data/utils/add-custom-fields.d.ts +0 -0
  133. package/{package/core → core}/data/utils/get-server-location.d.ts +0 -0
  134. package/{package/core → core}/data/utils/remove-readonly-custom-fields.d.ts +0 -0
  135. package/{package/core → core}/data/utils/transform-relation-custom-field-inputs.d.ts +0 -0
  136. package/{package/core → core}/package.json +0 -0
  137. package/{package/core → core}/providers/auth/auth.service.d.ts +0 -0
  138. package/{package/core → core}/providers/bulk-action-registry/bulk-action-registry.service.d.ts +0 -0
  139. package/{package/core → core}/providers/bulk-action-registry/bulk-action-types.d.ts +0 -0
  140. package/{package/core → core}/providers/bulk-action-registry/register-bulk-action.d.ts +0 -0
  141. package/{package/core → core}/providers/component-registry/component-registry.service.d.ts +0 -0
  142. package/{package/core → core}/providers/custom-detail-component/custom-detail-component-types.d.ts +0 -0
  143. package/{package/core → core}/providers/custom-detail-component/custom-detail-component.service.d.ts +0 -0
  144. package/{package/core → core}/providers/custom-field-component/custom-field-component.service.d.ts +0 -0
  145. package/{package/core → core}/providers/dashboard-widget/dashboard-widget-types.d.ts +0 -0
  146. package/{package/core → core}/providers/dashboard-widget/dashboard-widget.service.d.ts +0 -0
  147. package/{package/core → core}/providers/dashboard-widget/register-dashboard-widget.d.ts +0 -0
  148. package/{package/core → core}/providers/guard/auth.guard.d.ts +0 -0
  149. package/{package/core → core}/providers/health-check/health-check.service.d.ts +0 -0
  150. package/{package/core → core}/providers/i18n/custom-http-loader.d.ts +0 -0
  151. package/{package/core → core}/providers/i18n/custom-message-format-compiler.d.ts +0 -0
  152. package/{package/core → core}/providers/i18n/i18n.service.d.ts +0 -0
  153. package/{package/core → core}/providers/job-queue/job-queue.service.d.ts +0 -0
  154. package/{package/core → core}/providers/local-storage/local-storage.service.d.ts +0 -0
  155. package/{package/core → core}/providers/modal/modal.service.d.ts +0 -0
  156. package/{package/core → core}/providers/nav-builder/nav-builder-types.d.ts +0 -0
  157. package/{package/core → core}/providers/nav-builder/nav-builder.service.d.ts +0 -0
  158. package/{package/core → core}/providers/notification/notification.service.d.ts +0 -0
  159. package/{package/core → core}/providers/overlay-host/overlay-host.service.d.ts +0 -0
  160. package/{package/core → core}/public_api.d.ts +1 -0
  161. package/{package/core → core}/shared/components/action-bar/action-bar.component.d.ts +0 -0
  162. package/{package/core → core}/shared/components/action-bar-items/action-bar-items.component.d.ts +0 -0
  163. package/{package/core → core}/shared/components/address-form/address-form.component.d.ts +0 -0
  164. package/{package/core → core}/shared/components/affixed-input/affixed-input.component.d.ts +0 -0
  165. package/{package/core → core}/shared/components/affixed-input/percentage-suffix-input.component.d.ts +0 -0
  166. package/{package/core → core}/shared/components/asset-file-input/asset-file-input.component.d.ts +0 -0
  167. package/{package/core → core}/shared/components/asset-gallery/asset-gallery.component.d.ts +0 -0
  168. package/{package/core → core}/shared/components/asset-picker-dialog/asset-picker-dialog.component.d.ts +0 -0
  169. package/{package/core → core}/shared/components/asset-preview/asset-preview.component.d.ts +0 -0
  170. package/{package/core → core}/shared/components/asset-preview-dialog/asset-preview-dialog.component.d.ts +0 -0
  171. package/{package/core → core}/shared/components/asset-preview-links/asset-preview-links.component.d.ts +0 -0
  172. package/{package/core → core}/shared/components/asset-search-input/asset-search-input.component.d.ts +0 -0
  173. package/{package/core → core}/shared/components/bulk-action-menu/bulk-action-menu.component.d.ts +0 -0
  174. package/{package/core → core}/shared/components/channel-assignment-control/channel-assignment-control.component.d.ts +0 -0
  175. package/{package/core → core}/shared/components/channel-badge/channel-badge.component.d.ts +0 -0
  176. package/{package/core → core}/shared/components/chip/chip.component.d.ts +0 -0
  177. package/{package/core → core}/shared/components/configurable-input/configurable-input.component.d.ts +0 -0
  178. package/{package/core → core}/shared/components/currency-input/currency-input.component.d.ts +0 -0
  179. package/{package/core → core}/shared/components/custom-detail-component-host/custom-detail-component-host.component.d.ts +0 -0
  180. package/{package/core → core}/shared/components/custom-field-control/custom-field-control.component.d.ts +0 -0
  181. package/{package/core → core}/shared/components/customer-label/customer-label.component.d.ts +0 -0
  182. package/{package/core → core}/shared/components/data-table/data-table-column.component.d.ts +0 -0
  183. package/{package/core → core}/shared/components/data-table/data-table.component.d.ts +0 -0
  184. package/{package/core → core}/shared/components/datetime-picker/constants.d.ts +0 -0
  185. package/{package/core → core}/shared/components/datetime-picker/datetime-picker.component.d.ts +0 -0
  186. package/{package/core → core}/shared/components/datetime-picker/datetime-picker.service.d.ts +0 -0
  187. package/{package/core → core}/shared/components/datetime-picker/types.d.ts +0 -0
  188. package/{package/core → core}/shared/components/dropdown/dropdown-item.directive.d.ts +0 -0
  189. package/{package/core → core}/shared/components/dropdown/dropdown-menu.component.d.ts +0 -0
  190. package/{package/core → core}/shared/components/dropdown/dropdown-trigger.directive.d.ts +0 -0
  191. package/{package/core → core}/shared/components/dropdown/dropdown.component.d.ts +0 -0
  192. package/{package/core → core}/shared/components/edit-note-dialog/edit-note-dialog.component.d.ts +0 -0
  193. package/{package/core → core}/shared/components/empty-placeholder/empty-placeholder.component.d.ts +0 -0
  194. package/{package/core → core}/shared/components/entity-info/entity-info.component.d.ts +0 -0
  195. package/{package/core → core}/shared/components/extension-host/extension-host-config.d.ts +0 -0
  196. package/{package/core → core}/shared/components/extension-host/extension-host.component.d.ts +0 -0
  197. package/{package/core → core}/shared/components/extension-host/extension-host.service.d.ts +0 -0
  198. package/{package/core → core}/shared/components/extension-host/host-external-frame.d.ts +0 -0
  199. package/{package/core → core}/shared/components/facet-value-chip/facet-value-chip.component.d.ts +0 -0
  200. package/{package/core → core}/shared/components/facet-value-selector/facet-value-selector.component.d.ts +0 -0
  201. package/{package/core → core}/shared/components/focal-point-control/focal-point-control.component.d.ts +0 -0
  202. package/{package/core → core}/shared/components/form-field/form-field-control.directive.d.ts +0 -0
  203. package/{package/core → core}/shared/components/form-field/form-field.component.d.ts +0 -0
  204. package/{package/core → core}/shared/components/form-item/form-item.component.d.ts +0 -0
  205. package/{package/core → core}/shared/components/formatted-address/formatted-address.component.d.ts +0 -0
  206. package/{package/core → core}/shared/components/help-tooltip/help-tooltip.component.d.ts +0 -0
  207. package/{package/core → core}/shared/components/history-entry-detail/history-entry-detail.component.d.ts +0 -0
  208. package/{package/core → core}/shared/components/items-per-page-controls/items-per-page-controls.component.d.ts +0 -0
  209. package/{package/core → core}/shared/components/labeled-data/labeled-data.component.d.ts +0 -0
  210. package/{package/core → core}/shared/components/language-selector/language-selector.component.d.ts +0 -0
  211. package/{package/core → core}/shared/components/manage-tags-dialog/manage-tags-dialog.component.d.ts +0 -0
  212. package/{package/core → core}/shared/components/modal-dialog/dialog-buttons.directive.d.ts +0 -0
  213. package/{package/core → core}/shared/components/modal-dialog/dialog-component-outlet.component.d.ts +0 -0
  214. package/{package/core → core}/shared/components/modal-dialog/dialog-title.directive.d.ts +0 -0
  215. package/{package/core → core}/shared/components/modal-dialog/modal-dialog.component.d.ts +0 -0
  216. package/{package/core → core}/shared/components/object-tree/object-tree.component.d.ts +0 -0
  217. package/{package/core → core}/shared/components/order-state-label/order-state-label.component.d.ts +0 -0
  218. package/{package/core → core}/shared/components/pagination-controls/pagination-controls.component.d.ts +0 -0
  219. package/{package/core → core}/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.d.ts +0 -0
  220. package/{package/core → core}/shared/components/product-search-input/product-search-input.component.d.ts +0 -0
  221. package/{package/core → core}/shared/components/product-selector/product-selector.component.d.ts +0 -0
  222. package/{package/core → core}/shared/components/radio-card/radio-card-fieldset.component.d.ts +0 -0
  223. package/{package/core → core}/shared/components/radio-card/radio-card.component.d.ts +0 -0
  224. package/{package/core → core}/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.d.ts +0 -0
  225. package/{package/core → core}/shared/components/rich-text-editor/link-dialog/link-dialog.component.d.ts +0 -0
  226. package/{package/core → core}/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.d.ts +0 -0
  227. package/{package/core → core}/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.d.ts +0 -0
  228. package/{package/core → core}/shared/components/rich-text-editor/prosemirror/custom-nodes.d.ts +0 -0
  229. package/{package/core → core}/shared/components/rich-text-editor/prosemirror/inputrules.d.ts +0 -0
  230. package/{package/core → core}/shared/components/rich-text-editor/prosemirror/keymap.d.ts +0 -0
  231. package/{package/core → core}/shared/components/rich-text-editor/prosemirror/menu/links.d.ts +0 -0
  232. package/{package/core → core}/shared/components/rich-text-editor/prosemirror/menu/menu-common.d.ts +0 -0
  233. package/{package/core → core}/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.d.ts +0 -0
  234. package/{package/core → core}/shared/components/rich-text-editor/prosemirror/menu/menu.d.ts +0 -0
  235. package/{package/core → core}/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.d.ts +0 -0
  236. package/{package/core → core}/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.d.ts +0 -0
  237. package/{package/core → core}/shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin.d.ts +0 -0
  238. package/{package/core → core}/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.d.ts +0 -0
  239. package/{package/core → core}/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.d.ts +0 -0
  240. package/{package/core → core}/shared/components/rich-text-editor/prosemirror/prosemirror.service.d.ts +0 -0
  241. package/{package/core → core}/shared/components/rich-text-editor/prosemirror/types.d.ts +0 -0
  242. package/{package/core → core}/shared/components/rich-text-editor/prosemirror/utils.d.ts +0 -0
  243. package/{package/core → core}/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.d.ts +0 -0
  244. package/{package/core → core}/shared/components/rich-text-editor/rich-text-editor.component.d.ts +0 -0
  245. package/{package/core → core}/shared/components/select-toggle/select-toggle.component.d.ts +0 -0
  246. package/{package/core → core}/shared/components/simple-dialog/simple-dialog.component.d.ts +0 -0
  247. package/{package/core → core}/shared/components/status-badge/status-badge.component.d.ts +0 -0
  248. package/{package/core → core}/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.d.ts +0 -0
  249. package/{package/core → core}/shared/components/table-row-action/table-row-action.component.d.ts +0 -0
  250. package/{package/core → core}/shared/components/tag-selector/tag-selector.component.d.ts +0 -0
  251. package/{package/core → core}/shared/components/timeline-entry/timeline-entry.component.d.ts +0 -0
  252. package/{package/core → core}/shared/components/title-input/title-input.component.d.ts +0 -0
  253. package/{package/core → core}/shared/components/ui-extension-point/ui-extension-point.component.d.ts +0 -0
  254. package/{package/core → core}/shared/directives/disabled.directive.d.ts +0 -0
  255. package/{package/core → core}/shared/directives/if-default-channel-active.directive.d.ts +0 -0
  256. package/{package/core → core}/shared/directives/if-directive-base.d.ts +0 -0
  257. package/{package/core → core}/shared/directives/if-multichannel.directive.d.ts +0 -0
  258. package/{package/core → core}/shared/directives/if-permissions.directive.d.ts +0 -0
  259. package/{package/core → core}/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.d.ts +0 -0
  260. package/{package/core → core}/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.d.ts +0 -0
  261. package/{package/core → core}/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.d.ts +0 -0
  262. package/{package/core → core}/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.d.ts +0 -0
  263. package/{package/core → core}/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.d.ts +0 -0
  264. package/{package/core → core}/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.d.ts +0 -0
  265. package/{package/core → core}/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.d.ts +0 -0
  266. package/{package/core → core}/shared/dynamic-form-inputs/date-form-input/date-form-input.component.d.ts +0 -0
  267. package/{package/core → core}/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.d.ts +0 -0
  268. package/{package/core → core}/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.d.ts +0 -0
  269. package/{package/core → core}/shared/dynamic-form-inputs/number-form-input/number-form-input.component.d.ts +0 -0
  270. package/{package/core → core}/shared/dynamic-form-inputs/password-form-input/password-form-input.component.d.ts +0 -0
  271. package/{package/core → core}/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.d.ts +0 -0
  272. package/{package/core → core}/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.d.ts +0 -0
  273. package/{package/core → core}/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +0 -0
  274. package/{package/core → core}/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.d.ts +0 -0
  275. package/{package/core → core}/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.d.ts +0 -0
  276. package/{package/core → core}/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.d.ts +0 -0
  277. package/{package/core → core}/shared/dynamic-form-inputs/relation-form-input/product/relation-product-input.component.d.ts +0 -0
  278. package/{package/core → core}/shared/dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component.d.ts +0 -0
  279. package/{package/core → core}/shared/dynamic-form-inputs/relation-form-input/relation-card/relation-card.component.d.ts +0 -0
  280. package/{package/core → core}/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.d.ts +0 -0
  281. package/{package/core → core}/shared/dynamic-form-inputs/relation-form-input/relation-selector-dialog/relation-selector-dialog.component.d.ts +0 -0
  282. package/{package/core → core}/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.d.ts +0 -0
  283. package/{package/core → core}/shared/dynamic-form-inputs/select-form-input/select-form-input.component.d.ts +0 -0
  284. package/{package/core → core}/shared/dynamic-form-inputs/text-form-input/text-form-input.component.d.ts +0 -0
  285. package/{package/core → core}/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.d.ts +0 -0
  286. package/{package/core → core}/shared/pipes/asset-preview.pipe.d.ts +0 -0
  287. package/{package/core → core}/shared/pipes/channel-label.pipe.d.ts +0 -0
  288. package/core/shared/pipes/custom-field-description.pipe.d.ts +8 -0
  289. package/{package/core → core}/shared/pipes/custom-field-label.pipe.d.ts +0 -0
  290. package/{package/core → core}/shared/pipes/duration.pipe.d.ts +0 -0
  291. package/{package/core → core}/shared/pipes/file-size.pipe.d.ts +0 -0
  292. package/{package/core → core}/shared/pipes/has-permission.pipe.d.ts +0 -0
  293. package/{package/core → core}/shared/pipes/locale-base.pipe.d.ts +0 -0
  294. package/{package/core → core}/shared/pipes/locale-currency-name.pipe.d.ts +0 -0
  295. package/{package/core → core}/shared/pipes/locale-currency.pipe.d.ts +0 -0
  296. package/{package/core → core}/shared/pipes/locale-date.pipe.d.ts +0 -0
  297. package/{package/core → core}/shared/pipes/locale-language-name.pipe.d.ts +0 -0
  298. package/{package/core → core}/shared/pipes/locale-region-name.pipe.d.ts +0 -0
  299. package/{package/core → core}/shared/pipes/sentence-case.pipe.d.ts +0 -0
  300. package/{package/core → core}/shared/pipes/sort.pipe.d.ts +0 -0
  301. package/{package/core → core}/shared/pipes/state-i18n-token.pipe.d.ts +0 -0
  302. package/{package/core → core}/shared/pipes/string-to-color.pipe.d.ts +0 -0
  303. package/{package/core → core}/shared/pipes/time-ago.pipe.d.ts +0 -0
  304. package/{package/core → core}/shared/providers/routing/can-deactivate-detail-guard.d.ts +0 -0
  305. package/{package/core → core}/shared/shared.module.d.ts +0 -0
  306. package/{package/core → core}/validators/unicode-pattern.validator.d.ts +0 -0
  307. package/{package/core → core}/vendure-admin-ui-core.d.ts +0 -0
  308. package/core/vendure-admin-ui-core.metadata.json +1 -0
  309. package/{package/customer → customer}/components/add-customer-to-group-dialog/add-customer-to-group-dialog.component.d.ts +0 -0
  310. package/{package/customer → customer}/components/address-card/address-card.component.d.ts +0 -0
  311. package/{package/customer → customer}/components/address-detail-dialog/address-detail-dialog.component.d.ts +0 -0
  312. package/{package/customer → customer}/components/customer-detail/customer-detail.component.d.ts +0 -0
  313. package/{package/customer → customer}/components/customer-group-detail-dialog/customer-group-detail-dialog.component.d.ts +0 -0
  314. package/{package/customer → customer}/components/customer-group-list/customer-group-list.component.d.ts +0 -0
  315. package/{package/customer → customer}/components/customer-group-member-list/customer-group-member-list.component.d.ts +0 -0
  316. package/{package/customer → customer}/components/customer-history/customer-history.component.d.ts +0 -0
  317. package/{package/customer → customer}/components/customer-list/customer-list.component.d.ts +0 -0
  318. package/{package/customer → customer}/components/customer-status-label/customer-status-label.component.d.ts +0 -0
  319. package/{package/customer → customer}/components/select-customer-group-dialog/select-customer-group-dialog.component.d.ts +0 -0
  320. package/{package/customer → customer}/customer.module.d.ts +0 -0
  321. package/{package/customer → customer}/customer.routes.d.ts +0 -0
  322. package/{package/customer → customer}/package.json +0 -0
  323. package/{package/customer → customer}/providers/routing/customer-resolver.d.ts +0 -0
  324. package/{package/customer → customer}/public_api.d.ts +0 -0
  325. package/{package/customer → customer}/vendure-admin-ui-customer.d.ts +0 -0
  326. package/{package/customer → customer}/vendure-admin-ui-customer.metadata.json +0 -0
  327. package/{package/dashboard → dashboard}/components/dashboard/dashboard.component.d.ts +0 -0
  328. package/{package/dashboard → dashboard}/components/dashboard-widget/dashboard-widget.component.d.ts +0 -0
  329. package/{package/dashboard → dashboard}/dashboard.module.d.ts +0 -0
  330. package/{package/dashboard → dashboard}/dashboard.routes.d.ts +0 -0
  331. package/{package/dashboard → dashboard}/default-widgets.d.ts +0 -0
  332. package/{package/dashboard → dashboard}/package.json +0 -0
  333. package/{package/dashboard → dashboard}/public_api.d.ts +0 -0
  334. package/{package/dashboard → dashboard}/vendure-admin-ui-dashboard.d.ts +0 -0
  335. package/{package/dashboard → dashboard}/vendure-admin-ui-dashboard.metadata.json +0 -0
  336. package/{package/dashboard → dashboard}/widgets/latest-orders-widget/latest-orders-widget.component.d.ts +0 -0
  337. package/{package/dashboard → dashboard}/widgets/order-summary-widget/order-summary-widget.component.d.ts +0 -0
  338. package/{package/dashboard → dashboard}/widgets/test-widget/test-widget.component.d.ts +0 -0
  339. package/{package/dashboard → dashboard}/widgets/welcome-widget/welcome-widget.component.d.ts +0 -0
  340. package/{package/esm2015 → esm2015}/catalog/catalog.module.js +0 -0
  341. package/{package/esm2015 → esm2015}/catalog/catalog.routes.js +0 -0
  342. package/{package/esm2015 → esm2015}/catalog/components/apply-facet-dialog/apply-facet-dialog.component.js +0 -0
  343. package/{package/esm2015 → esm2015}/catalog/components/asset-detail/asset-detail.component.js +0 -0
  344. package/{package/esm2015 → esm2015}/catalog/components/asset-list/asset-list.component.js +0 -0
  345. package/{package/esm2015 → esm2015}/catalog/components/assets/assets.component.js +0 -0
  346. package/{package/esm2015 → esm2015}/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.js +0 -0
  347. package/{package/esm2015 → esm2015}/catalog/components/assign-to-channel-dialog/assign-to-channel-dialog.component.js +0 -0
  348. package/{package/esm2015 → esm2015}/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.js +0 -0
  349. package/{package/esm2015 → esm2015}/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.graphql.js +0 -0
  350. package/{package/esm2015 → esm2015}/catalog/components/collection-contents/collection-contents.component.js +0 -0
  351. package/{package/esm2015 → esm2015}/catalog/components/collection-detail/collection-detail.component.js +0 -0
  352. package/{package/esm2015 → esm2015}/catalog/components/collection-list/collection-list-bulk-actions.js +0 -0
  353. package/{package/esm2015 → esm2015}/catalog/components/collection-list/collection-list.component.js +2 -2
  354. package/{package/esm2015 → esm2015}/catalog/components/collection-tree/array-to-tree.js +0 -0
  355. package/{package/esm2015 → esm2015}/catalog/components/collection-tree/collection-tree-node.component.js +0 -0
  356. package/{package/esm2015 → esm2015}/catalog/components/collection-tree/collection-tree.component.js +0 -0
  357. package/{package/esm2015 → esm2015}/catalog/components/confirm-variant-deletion-dialog/confirm-variant-deletion-dialog.component.js +0 -0
  358. package/{package/esm2015 → esm2015}/catalog/components/facet-detail/facet-detail.component.js +0 -0
  359. package/{package/esm2015 → esm2015}/catalog/components/facet-list/facet-list-bulk-actions.js +0 -0
  360. package/{package/esm2015 → esm2015}/catalog/components/facet-list/facet-list.component.js +2 -2
  361. package/{package/esm2015 → esm2015}/catalog/components/generate-product-variants/generate-product-variants.component.js +0 -0
  362. package/{package/esm2015 → esm2015}/catalog/components/option-value-input/option-value-input.component.js +0 -0
  363. package/{package/esm2015 → esm2015}/catalog/components/product-detail/product-detail.component.js +0 -0
  364. package/{package/esm2015 → esm2015}/catalog/components/product-list/product-list-bulk-actions.js +0 -0
  365. package/{package/esm2015 → esm2015}/catalog/components/product-list/product-list.component.js +2 -2
  366. package/{package/esm2015 → esm2015}/catalog/components/product-options-editor/product-options-editor.component.js +0 -0
  367. package/{package/esm2015 → esm2015}/catalog/components/product-variants-editor/product-variants-editor.component.js +0 -0
  368. package/{package/esm2015 → esm2015}/catalog/components/product-variants-list/product-variants-list.component.js +0 -0
  369. package/{package/esm2015 → esm2015}/catalog/components/product-variants-table/product-variants-table.component.js +0 -0
  370. package/{package/esm2015 → esm2015}/catalog/components/update-product-option-dialog/update-product-option-dialog.component.js +0 -0
  371. package/{package/esm2015 → esm2015}/catalog/components/variant-price-detail/variant-price-detail.component.js +0 -0
  372. package/{package/esm2015 → esm2015}/catalog/providers/product-detail/product-detail.service.js +0 -0
  373. package/{package/esm2015 → esm2015}/catalog/providers/product-detail/replace-last.js +0 -0
  374. package/{package/esm2015 → esm2015}/catalog/providers/routing/asset-resolver.js +0 -0
  375. package/{package/esm2015 → esm2015}/catalog/providers/routing/collection-resolver.js +0 -0
  376. package/{package/esm2015 → esm2015}/catalog/providers/routing/facet-resolver.js +0 -0
  377. package/{package/esm2015 → esm2015}/catalog/providers/routing/product-resolver.js +0 -0
  378. package/{package/esm2015 → esm2015}/catalog/providers/routing/product-variants-resolver.js +0 -0
  379. package/{package/esm2015 → esm2015}/catalog/public_api.js +0 -0
  380. package/{package/esm2015 → esm2015}/catalog/vendure-admin-ui-catalog.js +0 -0
  381. package/{package/esm2015 → esm2015}/core/app.component.js +0 -0
  382. package/{package/esm2015 → esm2015}/core/app.component.module.js +0 -0
  383. package/{package/esm2015 → esm2015}/core/app.config.js +0 -0
  384. package/{package/esm2015 → esm2015}/core/common/base-detail.component.js +0 -0
  385. package/{package/esm2015 → esm2015}/core/common/base-entity-resolver.js +0 -0
  386. package/{package/esm2015 → esm2015}/core/common/base-list.component.js +0 -0
  387. package/esm2015/core/common/component-registry-types.js +2 -0
  388. package/{package/esm2015 → esm2015}/core/common/deactivate-aware.js +0 -0
  389. package/{package/esm2015 → esm2015}/core/common/detail-breadcrumb.js +0 -0
  390. package/{package/esm2015 → esm2015}/core/common/generated-types.js +0 -0
  391. package/{package/esm2015 → esm2015}/core/common/introspection-result-wrapper.js +0 -0
  392. package/{package/esm2015 → esm2015}/core/common/introspection-result.js +0 -0
  393. package/{package/esm2015 → esm2015}/core/common/single-search-selection-model.js +0 -0
  394. package/{package/esm2015 → esm2015}/core/common/utilities/bulk-action-utils.js +0 -0
  395. package/{package/esm2015 → esm2015}/core/common/utilities/configurable-operation-utils.js +0 -0
  396. package/{package/esm2015 → esm2015}/core/common/utilities/create-updated-translatable.js +0 -0
  397. package/{package/esm2015 → esm2015}/core/common/utilities/find-translation.js +0 -0
  398. package/{package/esm2015 → esm2015}/core/common/utilities/flatten-facet-values.js +0 -0
  399. package/{package/esm2015 → esm2015}/core/common/utilities/get-default-ui-language.js +0 -0
  400. package/{package/esm2015 → esm2015}/core/common/utilities/interpolate-description.js +0 -0
  401. package/{package/esm2015 → esm2015}/core/common/utilities/selection-manager.js +0 -0
  402. package/{package/esm2015 → esm2015}/core/common/utilities/string-to-color.js +0 -0
  403. package/{package/esm2015 → esm2015}/core/common/version.js +2 -2
  404. package/{package/esm2015 → esm2015}/core/components/app-shell/app-shell.component.js +0 -0
  405. package/{package/esm2015 → esm2015}/core/components/breadcrumb/breadcrumb.component.js +0 -0
  406. package/{package/esm2015 → esm2015}/core/components/channel-switcher/channel-switcher.component.js +0 -0
  407. package/{package/esm2015 → esm2015}/core/components/main-nav/main-nav.component.js +0 -0
  408. package/{package/esm2015 → esm2015}/core/components/notification/notification.component.js +0 -0
  409. package/{package/esm2015 → esm2015}/core/components/overlay-host/overlay-host.component.js +0 -0
  410. package/{package/esm2015 → esm2015}/core/components/theme-switcher/theme-switcher.component.js +0 -0
  411. package/{package/esm2015 → esm2015}/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.js +0 -0
  412. package/{package/esm2015 → esm2015}/core/components/user-menu/user-menu.component.js +0 -0
  413. package/{package/esm2015 → esm2015}/core/core.module.js +0 -0
  414. package/{package/esm2015 → esm2015}/core/data/check-jobs-link.js +0 -0
  415. package/{package/esm2015 → esm2015}/core/data/client-state/client-defaults.js +0 -0
  416. package/{package/esm2015 → esm2015}/core/data/client-state/client-resolvers.js +0 -0
  417. package/{package/esm2015 → esm2015}/core/data/data.module.js +0 -0
  418. package/{package/esm2015 → esm2015}/core/data/definitions/administrator-definitions.js +0 -0
  419. package/{package/esm2015 → esm2015}/core/data/definitions/auth-definitions.js +0 -0
  420. package/{package/esm2015 → esm2015}/core/data/definitions/client-definitions.js +0 -0
  421. package/{package/esm2015 → esm2015}/core/data/definitions/collection-definitions.js +0 -0
  422. package/{package/esm2015 → esm2015}/core/data/definitions/customer-definitions.js +0 -0
  423. package/{package/esm2015 → esm2015}/core/data/definitions/facet-definitions.js +0 -0
  424. package/{package/esm2015 → esm2015}/core/data/definitions/order-definitions.js +0 -0
  425. package/{package/esm2015 → esm2015}/core/data/definitions/product-definitions.js +0 -0
  426. package/{package/esm2015 → esm2015}/core/data/definitions/promotion-definitions.js +0 -0
  427. package/{package/esm2015 → esm2015}/core/data/definitions/settings-definitions.js +0 -0
  428. package/{package/esm2015 → esm2015}/core/data/definitions/shared-definitions.js +0 -0
  429. package/{package/esm2015 → esm2015}/core/data/definitions/shipping-definitions.js +0 -0
  430. package/{package/esm2015 → esm2015}/core/data/omit-typename-link.js +0 -0
  431. package/{package/esm2015 → esm2015}/core/data/providers/administrator-data.service.js +0 -0
  432. package/{package/esm2015 → esm2015}/core/data/providers/auth-data.service.js +0 -0
  433. package/{package/esm2015 → esm2015}/core/data/providers/base-data.service.js +0 -0
  434. package/{package/esm2015 → esm2015}/core/data/providers/client-data.service.js +0 -0
  435. package/{package/esm2015 → esm2015}/core/data/providers/collection-data.service.js +0 -0
  436. package/{package/esm2015 → esm2015}/core/data/providers/customer-data.service.js +0 -0
  437. package/{package/esm2015 → esm2015}/core/data/providers/data.service.js +0 -0
  438. package/{package/esm2015 → esm2015}/core/data/providers/facet-data.service.js +0 -0
  439. package/{package/esm2015 → esm2015}/core/data/providers/fetch-adapter.js +0 -0
  440. package/{package/esm2015 → esm2015}/core/data/providers/interceptor.js +0 -0
  441. package/{package/esm2015 → esm2015}/core/data/providers/order-data.service.js +0 -0
  442. package/{package/esm2015 → esm2015}/core/data/providers/product-data.service.js +0 -0
  443. package/{package/esm2015 → esm2015}/core/data/providers/promotion-data.service.js +0 -0
  444. package/{package/esm2015 → esm2015}/core/data/providers/settings-data.service.js +0 -0
  445. package/{package/esm2015 → esm2015}/core/data/providers/shipping-method-data.service.js +0 -0
  446. package/{package/esm2015 → esm2015}/core/data/query-result.js +0 -0
  447. package/{package/esm2015 → esm2015}/core/data/server-config.js +0 -0
  448. package/{package/esm2015 → esm2015}/core/data/utils/add-custom-fields.js +0 -0
  449. package/{package/esm2015 → esm2015}/core/data/utils/get-server-location.js +0 -0
  450. package/{package/esm2015 → esm2015}/core/data/utils/remove-readonly-custom-fields.js +0 -0
  451. package/{package/esm2015 → esm2015}/core/data/utils/transform-relation-custom-field-inputs.js +0 -0
  452. package/{package/esm2015 → esm2015}/core/providers/auth/auth.service.js +0 -0
  453. package/{package/esm2015 → esm2015}/core/providers/bulk-action-registry/bulk-action-registry.service.js +0 -0
  454. package/{package/esm2015 → esm2015}/core/providers/bulk-action-registry/bulk-action-types.js +0 -0
  455. package/{package/esm2015 → esm2015}/core/providers/bulk-action-registry/register-bulk-action.js +0 -0
  456. package/{package/esm2015 → esm2015}/core/providers/component-registry/component-registry.service.js +0 -0
  457. package/{package/esm2015 → esm2015}/core/providers/custom-detail-component/custom-detail-component-types.js +0 -0
  458. package/{package/esm2015 → esm2015}/core/providers/custom-detail-component/custom-detail-component.service.js +0 -0
  459. package/{package/esm2015 → esm2015}/core/providers/custom-field-component/custom-field-component.service.js +0 -0
  460. package/{package/esm2015 → esm2015}/core/providers/dashboard-widget/dashboard-widget-types.js +0 -0
  461. package/{package/esm2015 → esm2015}/core/providers/dashboard-widget/dashboard-widget.service.js +1 -1
  462. package/{package/esm2015 → esm2015}/core/providers/dashboard-widget/register-dashboard-widget.js +0 -0
  463. package/{package/esm2015 → esm2015}/core/providers/guard/auth.guard.js +0 -0
  464. package/{package/esm2015 → esm2015}/core/providers/health-check/health-check.service.js +0 -0
  465. package/{package/esm2015 → esm2015}/core/providers/i18n/custom-http-loader.js +0 -0
  466. package/{package/esm2015 → esm2015}/core/providers/i18n/custom-message-format-compiler.js +0 -0
  467. package/{package/esm2015 → esm2015}/core/providers/i18n/i18n.service.js +0 -0
  468. package/{package/esm2015 → esm2015}/core/providers/job-queue/job-queue.service.js +0 -0
  469. package/{package/esm2015 → esm2015}/core/providers/local-storage/local-storage.service.js +0 -0
  470. package/{package/esm2015 → esm2015}/core/providers/modal/modal.service.js +0 -0
  471. package/{package/esm2015 → esm2015}/core/providers/nav-builder/nav-builder-types.js +0 -0
  472. package/{package/esm2015 → esm2015}/core/providers/nav-builder/nav-builder.service.js +0 -0
  473. package/{package/esm2015 → esm2015}/core/providers/notification/notification.service.js +0 -0
  474. package/{package/esm2015 → esm2015}/core/providers/overlay-host/overlay-host.service.js +0 -0
  475. package/{package/esm2015 → esm2015}/core/public_api.js +2 -1
  476. package/{package/esm2015 → esm2015}/core/shared/components/action-bar/action-bar.component.js +1 -1
  477. package/{package/esm2015 → esm2015}/core/shared/components/action-bar-items/action-bar-items.component.js +0 -0
  478. package/{package/esm2015 → esm2015}/core/shared/components/address-form/address-form.component.js +0 -0
  479. package/{package/esm2015 → esm2015}/core/shared/components/affixed-input/affixed-input.component.js +0 -0
  480. package/{package/esm2015 → esm2015}/core/shared/components/affixed-input/percentage-suffix-input.component.js +0 -0
  481. package/{package/esm2015 → esm2015}/core/shared/components/asset-file-input/asset-file-input.component.js +0 -0
  482. package/{package/esm2015 → esm2015}/core/shared/components/asset-gallery/asset-gallery.component.js +0 -0
  483. package/{package/esm2015 → esm2015}/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.js +0 -0
  484. package/{package/esm2015 → esm2015}/core/shared/components/asset-preview/asset-preview.component.js +0 -0
  485. package/{package/esm2015 → esm2015}/core/shared/components/asset-preview-dialog/asset-preview-dialog.component.js +0 -0
  486. package/{package/esm2015 → esm2015}/core/shared/components/asset-preview-links/asset-preview-links.component.js +0 -0
  487. package/{package/esm2015 → esm2015}/core/shared/components/asset-search-input/asset-search-input.component.js +0 -0
  488. package/{package/esm2015 → esm2015}/core/shared/components/bulk-action-menu/bulk-action-menu.component.js +0 -0
  489. package/{package/esm2015 → esm2015}/core/shared/components/channel-assignment-control/channel-assignment-control.component.js +0 -0
  490. package/{package/esm2015 → esm2015}/core/shared/components/channel-badge/channel-badge.component.js +0 -0
  491. package/{package/esm2015 → esm2015}/core/shared/components/chip/chip.component.js +0 -0
  492. package/{package/esm2015 → esm2015}/core/shared/components/configurable-input/configurable-input.component.js +0 -0
  493. package/{package/esm2015 → esm2015}/core/shared/components/currency-input/currency-input.component.js +0 -0
  494. package/{package/esm2015 → esm2015}/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.js +0 -0
  495. package/{package/esm2015 → esm2015}/core/shared/components/custom-field-control/custom-field-control.component.js +2 -2
  496. package/{package/esm2015 → esm2015}/core/shared/components/customer-label/customer-label.component.js +0 -0
  497. package/{package/esm2015 → esm2015}/core/shared/components/data-table/data-table-column.component.js +0 -0
  498. package/{package/esm2015 → esm2015}/core/shared/components/data-table/data-table.component.js +0 -0
  499. package/{package/esm2015 → esm2015}/core/shared/components/datetime-picker/constants.js +0 -0
  500. package/{package/esm2015 → esm2015}/core/shared/components/datetime-picker/datetime-picker.component.js +0 -0
  501. package/{package/esm2015 → esm2015}/core/shared/components/datetime-picker/datetime-picker.service.js +0 -0
  502. package/{package/esm2015 → esm2015}/core/shared/components/datetime-picker/types.js +0 -0
  503. package/{package/esm2015 → esm2015}/core/shared/components/dropdown/dropdown-item.directive.js +0 -0
  504. package/{package/esm2015 → esm2015}/core/shared/components/dropdown/dropdown-menu.component.js +0 -0
  505. package/{package/esm2015 → esm2015}/core/shared/components/dropdown/dropdown-trigger.directive.js +0 -0
  506. package/{package/esm2015 → esm2015}/core/shared/components/dropdown/dropdown.component.js +0 -0
  507. package/{package/esm2015 → esm2015}/core/shared/components/edit-note-dialog/edit-note-dialog.component.js +0 -0
  508. package/{package/esm2015 → esm2015}/core/shared/components/empty-placeholder/empty-placeholder.component.js +0 -0
  509. package/{package/esm2015 → esm2015}/core/shared/components/entity-info/entity-info.component.js +0 -0
  510. package/{package/esm2015 → esm2015}/core/shared/components/extension-host/extension-host-config.js +0 -0
  511. package/{package/esm2015 → esm2015}/core/shared/components/extension-host/extension-host.component.js +0 -0
  512. package/{package/esm2015 → esm2015}/core/shared/components/extension-host/extension-host.service.js +0 -0
  513. package/{package/esm2015 → esm2015}/core/shared/components/extension-host/host-external-frame.js +0 -0
  514. package/{package/esm2015 → esm2015}/core/shared/components/facet-value-chip/facet-value-chip.component.js +0 -0
  515. package/{package/esm2015 → esm2015}/core/shared/components/facet-value-selector/facet-value-selector.component.js +0 -0
  516. package/{package/esm2015 → esm2015}/core/shared/components/focal-point-control/focal-point-control.component.js +0 -0
  517. package/{package/esm2015 → esm2015}/core/shared/components/form-field/form-field-control.directive.js +0 -0
  518. package/{package/esm2015 → esm2015}/core/shared/components/form-field/form-field.component.js +0 -0
  519. package/{package/esm2015 → esm2015}/core/shared/components/form-item/form-item.component.js +0 -0
  520. package/{package/esm2015 → esm2015}/core/shared/components/formatted-address/formatted-address.component.js +0 -0
  521. package/{package/esm2015 → esm2015}/core/shared/components/help-tooltip/help-tooltip.component.js +0 -0
  522. package/{package/esm2015 → esm2015}/core/shared/components/history-entry-detail/history-entry-detail.component.js +0 -0
  523. package/{package/esm2015 → esm2015}/core/shared/components/items-per-page-controls/items-per-page-controls.component.js +0 -0
  524. package/{package/esm2015 → esm2015}/core/shared/components/labeled-data/labeled-data.component.js +0 -0
  525. package/{package/esm2015 → esm2015}/core/shared/components/language-selector/language-selector.component.js +0 -0
  526. package/{package/esm2015 → esm2015}/core/shared/components/manage-tags-dialog/manage-tags-dialog.component.js +0 -0
  527. package/{package/esm2015 → esm2015}/core/shared/components/modal-dialog/dialog-buttons.directive.js +0 -0
  528. package/{package/esm2015 → esm2015}/core/shared/components/modal-dialog/dialog-component-outlet.component.js +0 -0
  529. package/{package/esm2015 → esm2015}/core/shared/components/modal-dialog/dialog-title.directive.js +0 -0
  530. package/{package/esm2015 → esm2015}/core/shared/components/modal-dialog/modal-dialog.component.js +0 -0
  531. package/{package/esm2015 → esm2015}/core/shared/components/object-tree/object-tree.component.js +0 -0
  532. package/{package/esm2015 → esm2015}/core/shared/components/order-state-label/order-state-label.component.js +0 -0
  533. package/{package/esm2015 → esm2015}/core/shared/components/pagination-controls/pagination-controls.component.js +0 -0
  534. package/{package/esm2015 → esm2015}/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.js +0 -0
  535. package/{package/esm2015 → esm2015}/core/shared/components/product-search-input/product-search-input.component.js +0 -0
  536. package/{package/esm2015 → esm2015}/core/shared/components/product-selector/product-selector.component.js +0 -0
  537. package/{package/esm2015 → esm2015}/core/shared/components/radio-card/radio-card-fieldset.component.js +0 -0
  538. package/{package/esm2015 → esm2015}/core/shared/components/radio-card/radio-card.component.js +0 -0
  539. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.js +0 -0
  540. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/link-dialog/link-dialog.component.js +0 -0
  541. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.js +0 -0
  542. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.js +0 -0
  543. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/prosemirror/custom-nodes.js +0 -0
  544. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/prosemirror/inputrules.js +0 -0
  545. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/prosemirror/keymap.js +0 -0
  546. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/prosemirror/menu/links.js +0 -0
  547. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.js +0 -0
  548. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.js +0 -0
  549. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/prosemirror/menu/menu.js +0 -0
  550. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.js +0 -0
  551. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.js +0 -0
  552. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin.js +0 -0
  553. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.js +0 -0
  554. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.js +0 -0
  555. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.js +0 -0
  556. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/prosemirror/types.js +0 -0
  557. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/prosemirror/utils.js +0 -0
  558. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.js +0 -0
  559. package/{package/esm2015 → esm2015}/core/shared/components/rich-text-editor/rich-text-editor.component.js +0 -0
  560. package/{package/esm2015 → esm2015}/core/shared/components/select-toggle/select-toggle.component.js +0 -0
  561. package/{package/esm2015 → esm2015}/core/shared/components/simple-dialog/simple-dialog.component.js +0 -0
  562. package/{package/esm2015 → esm2015}/core/shared/components/status-badge/status-badge.component.js +0 -0
  563. package/{package/esm2015 → esm2015}/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.js +0 -0
  564. package/{package/esm2015 → esm2015}/core/shared/components/table-row-action/table-row-action.component.js +0 -0
  565. package/{package/esm2015 → esm2015}/core/shared/components/tag-selector/tag-selector.component.js +0 -0
  566. package/{package/esm2015 → esm2015}/core/shared/components/timeline-entry/timeline-entry.component.js +0 -0
  567. package/{package/esm2015 → esm2015}/core/shared/components/title-input/title-input.component.js +0 -0
  568. package/{package/esm2015 → esm2015}/core/shared/components/ui-extension-point/ui-extension-point.component.js +0 -0
  569. package/{package/esm2015 → esm2015}/core/shared/directives/disabled.directive.js +0 -0
  570. package/{package/esm2015 → esm2015}/core/shared/directives/if-default-channel-active.directive.js +0 -0
  571. package/{package/esm2015 → esm2015}/core/shared/directives/if-directive-base.js +0 -0
  572. package/{package/esm2015 → esm2015}/core/shared/directives/if-multichannel.directive.js +0 -0
  573. package/{package/esm2015 → esm2015}/core/shared/directives/if-permissions.directive.js +0 -0
  574. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.js +0 -0
  575. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.js +0 -0
  576. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.js +0 -0
  577. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.js +0 -0
  578. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.js +0 -0
  579. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.js +0 -0
  580. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.js +0 -0
  581. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/date-form-input/date-form-input.component.js +0 -0
  582. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.js +0 -0
  583. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.js +0 -0
  584. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.js +0 -0
  585. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.js +0 -0
  586. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.js +0 -0
  587. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.js +0 -0
  588. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/register-dynamic-input-components.js +0 -0
  589. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.js +0 -0
  590. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.js +0 -0
  591. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.js +0 -0
  592. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/relation-form-input/product/relation-product-input.component.js +0 -0
  593. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component.js +0 -0
  594. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/relation-form-input/relation-card/relation-card.component.js +0 -0
  595. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.js +0 -0
  596. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/relation-form-input/relation-selector-dialog/relation-selector-dialog.component.js +0 -0
  597. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.js +0 -0
  598. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.js +0 -0
  599. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.js +0 -0
  600. package/{package/esm2015 → esm2015}/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.js +0 -0
  601. package/{package/esm2015 → esm2015}/core/shared/pipes/asset-preview.pipe.js +0 -0
  602. package/{package/esm2015 → esm2015}/core/shared/pipes/channel-label.pipe.js +0 -0
  603. package/esm2015/core/shared/pipes/custom-field-description.pipe.js +26 -0
  604. package/{package/esm2015 → esm2015}/core/shared/pipes/custom-field-label.pipe.js +0 -0
  605. package/{package/esm2015 → esm2015}/core/shared/pipes/duration.pipe.js +0 -0
  606. package/{package/esm2015 → esm2015}/core/shared/pipes/file-size.pipe.js +0 -0
  607. package/{package/esm2015 → esm2015}/core/shared/pipes/has-permission.pipe.js +0 -0
  608. package/{package/esm2015 → esm2015}/core/shared/pipes/locale-base.pipe.js +0 -0
  609. package/{package/esm2015 → esm2015}/core/shared/pipes/locale-currency-name.pipe.js +0 -0
  610. package/{package/esm2015 → esm2015}/core/shared/pipes/locale-currency.pipe.js +0 -0
  611. package/{package/esm2015 → esm2015}/core/shared/pipes/locale-date.pipe.js +0 -0
  612. package/{package/esm2015 → esm2015}/core/shared/pipes/locale-language-name.pipe.js +0 -0
  613. package/{package/esm2015 → esm2015}/core/shared/pipes/locale-region-name.pipe.js +0 -0
  614. package/{package/esm2015 → esm2015}/core/shared/pipes/sentence-case.pipe.js +0 -0
  615. package/{package/esm2015 → esm2015}/core/shared/pipes/sort.pipe.js +0 -0
  616. package/{package/esm2015 → esm2015}/core/shared/pipes/state-i18n-token.pipe.js +0 -0
  617. package/{package/esm2015 → esm2015}/core/shared/pipes/string-to-color.pipe.js +0 -0
  618. package/{package/esm2015 → esm2015}/core/shared/pipes/time-ago.pipe.js +0 -0
  619. package/{package/esm2015 → esm2015}/core/shared/providers/routing/can-deactivate-detail-guard.js +0 -0
  620. package/esm2015/core/shared/shared.module.js +289 -0
  621. package/{package/esm2015 → esm2015}/core/validators/unicode-pattern.validator.js +0 -0
  622. package/{package/esm2015 → esm2015}/core/vendure-admin-ui-core.js +0 -0
  623. package/{package/esm2015 → esm2015}/customer/components/add-customer-to-group-dialog/add-customer-to-group-dialog.component.js +0 -0
  624. package/{package/esm2015 → esm2015}/customer/components/address-card/address-card.component.js +0 -0
  625. package/{package/esm2015 → esm2015}/customer/components/address-detail-dialog/address-detail-dialog.component.js +0 -0
  626. package/{package/esm2015 → esm2015}/customer/components/customer-detail/customer-detail.component.js +0 -0
  627. package/{package/esm2015 → esm2015}/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.js +0 -0
  628. package/{package/esm2015 → esm2015}/customer/components/customer-group-list/customer-group-list.component.js +0 -0
  629. package/{package/esm2015 → esm2015}/customer/components/customer-group-member-list/customer-group-member-list.component.js +0 -0
  630. package/{package/esm2015 → esm2015}/customer/components/customer-history/customer-history.component.js +0 -0
  631. package/{package/esm2015 → esm2015}/customer/components/customer-list/customer-list.component.js +0 -0
  632. package/{package/esm2015 → esm2015}/customer/components/customer-status-label/customer-status-label.component.js +0 -0
  633. package/{package/esm2015 → esm2015}/customer/components/select-customer-group-dialog/select-customer-group-dialog.component.js +0 -0
  634. package/{package/esm2015 → esm2015}/customer/customer.module.js +0 -0
  635. package/{package/esm2015 → esm2015}/customer/customer.routes.js +0 -0
  636. package/{package/esm2015 → esm2015}/customer/providers/routing/customer-resolver.js +0 -0
  637. package/{package/esm2015 → esm2015}/customer/public_api.js +0 -0
  638. package/{package/esm2015 → esm2015}/customer/vendure-admin-ui-customer.js +0 -0
  639. package/{package/esm2015 → esm2015}/dashboard/components/dashboard/dashboard.component.js +0 -0
  640. package/{package/esm2015 → esm2015}/dashboard/components/dashboard-widget/dashboard-widget.component.js +0 -0
  641. package/{package/esm2015 → esm2015}/dashboard/dashboard.module.js +1 -1
  642. package/{package/esm2015 → esm2015}/dashboard/dashboard.routes.js +0 -0
  643. package/{package/esm2015 → esm2015}/dashboard/default-widgets.js +0 -0
  644. package/{package/esm2015 → esm2015}/dashboard/public_api.js +0 -0
  645. package/{package/esm2015 → esm2015}/dashboard/vendure-admin-ui-dashboard.js +0 -0
  646. package/{package/esm2015 → esm2015}/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.js +0 -0
  647. package/{package/esm2015 → esm2015}/dashboard/widgets/order-summary-widget/order-summary-widget.component.js +0 -0
  648. package/{package/esm2015 → esm2015}/dashboard/widgets/test-widget/test-widget.component.js +0 -0
  649. package/{package/esm2015 → esm2015}/dashboard/widgets/welcome-widget/welcome-widget.component.js +0 -0
  650. package/{package/esm2015 → esm2015}/login/components/login/login.component.js +0 -0
  651. package/{package/esm2015 → esm2015}/login/login.module.js +0 -0
  652. package/{package/esm2015 → esm2015}/login/login.routes.js +0 -0
  653. package/{package/esm2015 → esm2015}/login/providers/login.guard.js +0 -0
  654. package/{package/esm2015 → esm2015}/login/public_api.js +0 -0
  655. package/{package/esm2015 → esm2015}/login/vendure-admin-ui-login.js +0 -0
  656. package/{package/esm2015 → esm2015}/marketing/components/promotion-detail/promotion-detail.component.js +0 -0
  657. package/{package/esm2015 → esm2015}/marketing/components/promotion-list/promotion-list.component.js +0 -0
  658. package/{package/esm2015 → esm2015}/marketing/marketing.module.js +0 -0
  659. package/{package/esm2015 → esm2015}/marketing/marketing.routes.js +0 -0
  660. package/{package/esm2015 → esm2015}/marketing/providers/routing/promotion-resolver.js +0 -0
  661. package/{package/esm2015 → esm2015}/marketing/public_api.js +0 -0
  662. package/{package/esm2015 → esm2015}/marketing/vendure-admin-ui-marketing.js +0 -0
  663. package/{package/esm2015 → esm2015}/order/components/add-manual-payment-dialog/add-manual-payment-dialog.component.js +0 -0
  664. package/{package/esm2015 → esm2015}/order/components/cancel-order-dialog/cancel-order-dialog.component.js +0 -0
  665. package/{package/esm2015 → esm2015}/order/components/coupon-code-selector/coupon-code-selector.component.js +0 -0
  666. package/{package/esm2015 → esm2015}/order/components/draft-order-detail/draft-order-detail.component.js +0 -0
  667. package/{package/esm2015 → esm2015}/order/components/draft-order-variant-selector/draft-order-variant-selector.component.js +0 -0
  668. package/{package/esm2015 → esm2015}/order/components/fulfill-order-dialog/fulfill-order-dialog.component.js +0 -0
  669. package/{package/esm2015 → esm2015}/order/components/fulfillment-card/fulfillment-card.component.js +0 -0
  670. package/{package/esm2015 → esm2015}/order/components/fulfillment-detail/fulfillment-detail.component.js +0 -0
  671. package/{package/esm2015 → esm2015}/order/components/fulfillment-state-label/fulfillment-state-label.component.js +0 -0
  672. package/{package/esm2015 → esm2015}/order/components/line-fulfillment/line-fulfillment.component.js +0 -0
  673. package/{package/esm2015 → esm2015}/order/components/line-refunds/line-refunds.component.js +0 -0
  674. package/{package/esm2015 → esm2015}/order/components/modification-detail/modification-detail.component.js +0 -0
  675. package/{package/esm2015 → esm2015}/order/components/order-custom-fields-card/order-custom-fields-card.component.js +0 -0
  676. package/{package/esm2015 → esm2015}/order/components/order-detail/order-detail.component.js +0 -0
  677. package/{package/esm2015 → esm2015}/order/components/order-editor/order-editor.component.js +0 -0
  678. package/{package/esm2015 → esm2015}/order/components/order-edits-preview-dialog/order-edits-preview-dialog.component.js +0 -0
  679. package/{package/esm2015 → esm2015}/order/components/order-history/order-history.component.js +0 -0
  680. package/{package/esm2015 → esm2015}/order/components/order-list/order-list.component.js +0 -0
  681. package/{package/esm2015 → esm2015}/order/components/order-payment-card/order-payment-card.component.js +0 -0
  682. package/{package/esm2015 → esm2015}/order/components/order-process-graph/constants.js +0 -0
  683. package/{package/esm2015 → esm2015}/order/components/order-process-graph/order-process-edge.component.js +0 -0
  684. package/{package/esm2015 → esm2015}/order/components/order-process-graph/order-process-graph.component.js +0 -0
  685. package/{package/esm2015 → esm2015}/order/components/order-process-graph/order-process-node.component.js +0 -0
  686. package/{package/esm2015 → esm2015}/order/components/order-process-graph/types.js +0 -0
  687. package/{package/esm2015 → esm2015}/order/components/order-process-graph-dialog/order-process-graph-dialog.component.js +0 -0
  688. package/{package/esm2015 → esm2015}/order/components/order-state-select-dialog/order-state-select-dialog.component.js +0 -0
  689. package/{package/esm2015 → esm2015}/order/components/order-table/order-table.component.js +0 -0
  690. package/{package/esm2015 → esm2015}/order/components/payment-detail/payment-detail.component.js +0 -0
  691. package/{package/esm2015 → esm2015}/order/components/payment-state-label/payment-state-label.component.js +0 -0
  692. package/{package/esm2015 → esm2015}/order/components/refund-order-dialog/refund-order-dialog.component.js +0 -0
  693. package/{package/esm2015 → esm2015}/order/components/refund-state-label/refund-state-label.component.js +0 -0
  694. package/{package/esm2015 → esm2015}/order/components/select-address-dialog/select-address-dialog.component.js +0 -0
  695. package/{package/esm2015 → esm2015}/order/components/select-address-dialog/select-address-dialog.graphql.js +0 -0
  696. package/{package/esm2015 → esm2015}/order/components/select-customer-dialog/select-customer-dialog.component.js +0 -0
  697. package/{package/esm2015 → esm2015}/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.js +0 -0
  698. package/{package/esm2015 → esm2015}/order/components/settle-refund-dialog/settle-refund-dialog.component.js +0 -0
  699. package/{package/esm2015 → esm2015}/order/components/simple-item-list/simple-item-list.component.js +0 -0
  700. package/{package/esm2015 → esm2015}/order/order.module.js +0 -0
  701. package/{package/esm2015 → esm2015}/order/order.routes.js +0 -0
  702. package/{package/esm2015 → esm2015}/order/providers/order-transition.service.js +0 -0
  703. package/{package/esm2015 → esm2015}/order/providers/routing/order-resolver.js +0 -0
  704. package/{package/esm2015 → esm2015}/order/providers/routing/order.guard.js +0 -0
  705. package/{package/esm2015 → esm2015}/order/public_api.js +0 -0
  706. package/{package/esm2015 → esm2015}/order/vendure-admin-ui-order.js +0 -0
  707. package/{package/esm2015 → esm2015}/public_api.js +0 -0
  708. package/{package/esm2015 → esm2015}/settings/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.js +0 -0
  709. package/{package/esm2015 → esm2015}/settings/components/admin-detail/admin-detail.component.js +0 -0
  710. package/{package/esm2015 → esm2015}/settings/components/administrator-list/administrator-list.component.js +0 -0
  711. package/{package/esm2015 → esm2015}/settings/components/channel-detail/channel-detail.component.js +0 -0
  712. package/{package/esm2015 → esm2015}/settings/components/channel-list/channel-list.component.js +0 -0
  713. package/{package/esm2015 → esm2015}/settings/components/country-detail/country-detail.component.js +0 -0
  714. package/{package/esm2015 → esm2015}/settings/components/country-list/country-list.component.js +2 -2
  715. package/{package/esm2015 → esm2015}/settings/components/global-settings/global-settings.component.js +0 -0
  716. package/{package/esm2015 → esm2015}/settings/components/payment-method-detail/payment-method-detail.component.js +0 -0
  717. package/{package/esm2015 → esm2015}/settings/components/payment-method-list/payment-method-list.component.js +0 -0
  718. package/{package/esm2015 → esm2015}/settings/components/permission-grid/permission-grid.component.js +0 -0
  719. package/{package/esm2015 → esm2015}/settings/components/profile/profile.component.js +0 -0
  720. package/{package/esm2015 → esm2015}/settings/components/role-detail/role-detail.component.js +0 -0
  721. package/{package/esm2015 → esm2015}/settings/components/role-list/role-list.component.js +0 -0
  722. package/{package/esm2015 → esm2015}/settings/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.js +0 -0
  723. package/{package/esm2015 → esm2015}/settings/components/shipping-method-detail/shipping-method-detail.component.js +0 -0
  724. package/{package/esm2015 → esm2015}/settings/components/shipping-method-list/shipping-method-list.component.js +0 -0
  725. package/{package/esm2015 → esm2015}/settings/components/shipping-method-test-result/shipping-method-test-result.component.js +0 -0
  726. package/{package/esm2015 → esm2015}/settings/components/tax-category-detail/tax-category-detail.component.js +0 -0
  727. package/{package/esm2015 → esm2015}/settings/components/tax-category-list/tax-category-list.component.js +0 -0
  728. package/{package/esm2015 → esm2015}/settings/components/tax-rate-detail/tax-rate-detail.component.js +0 -0
  729. package/{package/esm2015 → esm2015}/settings/components/tax-rate-list/tax-rate-list.component.js +0 -0
  730. package/{package/esm2015 → esm2015}/settings/components/test-address-form/test-address-form.component.js +0 -0
  731. package/{package/esm2015 → esm2015}/settings/components/test-order-builder/test-order-builder.component.js +0 -0
  732. package/{package/esm2015 → esm2015}/settings/components/zone-detail-dialog/zone-detail-dialog.component.js +2 -2
  733. package/{package/esm2015 → esm2015}/settings/components/zone-list/zone-list.component.js +0 -0
  734. package/{package/esm2015 → esm2015}/settings/components/zone-member-list/zone-member-controls.directive.js +0 -0
  735. package/{package/esm2015 → esm2015}/settings/components/zone-member-list/zone-member-list-header.directive.js +0 -0
  736. package/{package/esm2015 → esm2015}/settings/components/zone-member-list/zone-member-list.component.js +0 -0
  737. package/{package/esm2015 → esm2015}/settings/providers/routing/administrator-resolver.js +0 -0
  738. package/{package/esm2015 → esm2015}/settings/providers/routing/channel-resolver.js +0 -0
  739. package/{package/esm2015 → esm2015}/settings/providers/routing/country-resolver.js +0 -0
  740. package/{package/esm2015 → esm2015}/settings/providers/routing/global-settings-resolver.js +0 -0
  741. package/{package/esm2015 → esm2015}/settings/providers/routing/payment-method-resolver.js +0 -0
  742. package/{package/esm2015 → esm2015}/settings/providers/routing/profile-resolver.js +0 -0
  743. package/{package/esm2015 → esm2015}/settings/providers/routing/role-resolver.js +0 -0
  744. package/{package/esm2015 → esm2015}/settings/providers/routing/shipping-method-resolver.js +0 -0
  745. package/{package/esm2015 → esm2015}/settings/providers/routing/tax-category-resolver.js +0 -0
  746. package/{package/esm2015 → esm2015}/settings/providers/routing/tax-rate-resolver.js +0 -0
  747. package/{package/esm2015 → esm2015}/settings/public_api.js +0 -0
  748. package/{package/esm2015 → esm2015}/settings/settings.module.js +0 -0
  749. package/{package/esm2015 → esm2015}/settings/settings.routes.js +0 -0
  750. package/{package/esm2015 → esm2015}/settings/vendure-admin-ui-settings.js +0 -0
  751. package/{package/esm2015 → esm2015}/system/components/health-check/health-check.component.js +0 -0
  752. package/{package/esm2015 → esm2015}/system/components/job-list/job-list.component.js +0 -0
  753. package/{package/esm2015 → esm2015}/system/components/job-state-label/job-state-label.component.js +0 -0
  754. package/{package/esm2015 → esm2015}/system/public_api.js +0 -0
  755. package/{package/esm2015 → esm2015}/system/system.module.js +0 -0
  756. package/{package/esm2015 → esm2015}/system/system.routes.js +0 -0
  757. package/{package/esm2015 → esm2015}/system/vendure-admin-ui-system.js +0 -0
  758. package/{package/esm2015 → esm2015}/vendure-admin-ui.js +0 -0
  759. package/{package/fesm2015 → fesm2015}/vendure-admin-ui-catalog.js +3 -3
  760. package/{package/fesm2015 → fesm2015}/vendure-admin-ui-catalog.js.map +1 -1
  761. package/{package/fesm2015 → fesm2015}/vendure-admin-ui-core.js +29 -3
  762. package/fesm2015/vendure-admin-ui-core.js.map +1 -0
  763. package/{package/fesm2015 → fesm2015}/vendure-admin-ui-customer.js +0 -0
  764. package/{package/fesm2015 → fesm2015}/vendure-admin-ui-customer.js.map +0 -0
  765. package/{package/fesm2015 → fesm2015}/vendure-admin-ui-dashboard.js +0 -0
  766. package/{package/fesm2015 → fesm2015}/vendure-admin-ui-dashboard.js.map +1 -1
  767. package/{package/fesm2015 → fesm2015}/vendure-admin-ui-login.js +0 -0
  768. package/{package/fesm2015 → fesm2015}/vendure-admin-ui-login.js.map +0 -0
  769. package/{package/fesm2015 → fesm2015}/vendure-admin-ui-marketing.js +0 -0
  770. package/{package/fesm2015 → fesm2015}/vendure-admin-ui-marketing.js.map +0 -0
  771. package/{package/fesm2015 → fesm2015}/vendure-admin-ui-order.js +0 -0
  772. package/{package/fesm2015 → fesm2015}/vendure-admin-ui-order.js.map +0 -0
  773. package/{package/fesm2015 → fesm2015}/vendure-admin-ui-settings.js +2 -2
  774. package/{package/fesm2015 → fesm2015}/vendure-admin-ui-settings.js.map +1 -1
  775. package/{package/fesm2015 → fesm2015}/vendure-admin-ui-system.js +0 -0
  776. package/{package/fesm2015 → fesm2015}/vendure-admin-ui-system.js.map +0 -0
  777. package/{package/fesm2015 → fesm2015}/vendure-admin-ui.js +0 -0
  778. package/{package/fesm2015 → fesm2015}/vendure-admin-ui.js.map +0 -0
  779. package/{package/login → login}/components/login/login.component.d.ts +0 -0
  780. package/{package/login → login}/login.module.d.ts +0 -0
  781. package/{package/login → login}/login.routes.d.ts +0 -0
  782. package/{package/login → login}/package.json +0 -0
  783. package/{package/login → login}/providers/login.guard.d.ts +0 -0
  784. package/{package/login → login}/public_api.d.ts +0 -0
  785. package/{package/login → login}/vendure-admin-ui-login.d.ts +0 -0
  786. package/{package/login → login}/vendure-admin-ui-login.metadata.json +0 -0
  787. package/{package/marketing → marketing}/components/promotion-detail/promotion-detail.component.d.ts +0 -0
  788. package/{package/marketing → marketing}/components/promotion-list/promotion-list.component.d.ts +0 -0
  789. package/{package/marketing → marketing}/marketing.module.d.ts +0 -0
  790. package/{package/marketing → marketing}/marketing.routes.d.ts +0 -0
  791. package/{package/marketing → marketing}/package.json +0 -0
  792. package/{package/marketing → marketing}/providers/routing/promotion-resolver.d.ts +0 -0
  793. package/{package/marketing → marketing}/public_api.d.ts +0 -0
  794. package/{package/marketing → marketing}/vendure-admin-ui-marketing.d.ts +0 -0
  795. package/{package/marketing → marketing}/vendure-admin-ui-marketing.metadata.json +0 -0
  796. package/{package/order → order}/components/add-manual-payment-dialog/add-manual-payment-dialog.component.d.ts +0 -0
  797. package/{package/order → order}/components/cancel-order-dialog/cancel-order-dialog.component.d.ts +0 -0
  798. package/{package/order → order}/components/coupon-code-selector/coupon-code-selector.component.d.ts +0 -0
  799. package/{package/order → order}/components/draft-order-detail/draft-order-detail.component.d.ts +0 -0
  800. package/{package/order → order}/components/draft-order-variant-selector/draft-order-variant-selector.component.d.ts +0 -0
  801. package/{package/order → order}/components/fulfill-order-dialog/fulfill-order-dialog.component.d.ts +0 -0
  802. package/{package/order → order}/components/fulfillment-card/fulfillment-card.component.d.ts +0 -0
  803. package/{package/order → order}/components/fulfillment-detail/fulfillment-detail.component.d.ts +0 -0
  804. package/{package/order → order}/components/fulfillment-state-label/fulfillment-state-label.component.d.ts +0 -0
  805. package/{package/order → order}/components/line-fulfillment/line-fulfillment.component.d.ts +0 -0
  806. package/{package/order → order}/components/line-refunds/line-refunds.component.d.ts +0 -0
  807. package/{package/order → order}/components/modification-detail/modification-detail.component.d.ts +0 -0
  808. package/{package/order → order}/components/order-custom-fields-card/order-custom-fields-card.component.d.ts +0 -0
  809. package/{package/order → order}/components/order-detail/order-detail.component.d.ts +0 -0
  810. package/{package/order → order}/components/order-editor/order-editor.component.d.ts +0 -0
  811. package/{package/order → order}/components/order-edits-preview-dialog/order-edits-preview-dialog.component.d.ts +0 -0
  812. package/{package/order → order}/components/order-history/order-history.component.d.ts +0 -0
  813. package/{package/order → order}/components/order-list/order-list.component.d.ts +0 -0
  814. package/{package/order → order}/components/order-payment-card/order-payment-card.component.d.ts +0 -0
  815. package/{package/order → order}/components/order-process-graph/constants.d.ts +0 -0
  816. package/{package/order → order}/components/order-process-graph/order-process-edge.component.d.ts +0 -0
  817. package/{package/order → order}/components/order-process-graph/order-process-graph.component.d.ts +0 -0
  818. package/{package/order → order}/components/order-process-graph/order-process-node.component.d.ts +0 -0
  819. package/{package/order → order}/components/order-process-graph/types.d.ts +0 -0
  820. package/{package/order → order}/components/order-process-graph-dialog/order-process-graph-dialog.component.d.ts +0 -0
  821. package/{package/order → order}/components/order-state-select-dialog/order-state-select-dialog.component.d.ts +0 -0
  822. package/{package/order → order}/components/order-table/order-table.component.d.ts +0 -0
  823. package/{package/order → order}/components/payment-detail/payment-detail.component.d.ts +0 -0
  824. package/{package/order → order}/components/payment-state-label/payment-state-label.component.d.ts +0 -0
  825. package/{package/order → order}/components/refund-order-dialog/refund-order-dialog.component.d.ts +0 -0
  826. package/{package/order → order}/components/refund-state-label/refund-state-label.component.d.ts +0 -0
  827. package/{package/order → order}/components/select-address-dialog/select-address-dialog.component.d.ts +0 -0
  828. package/{package/order → order}/components/select-address-dialog/select-address-dialog.graphql.d.ts +0 -0
  829. package/{package/order → order}/components/select-customer-dialog/select-customer-dialog.component.d.ts +0 -0
  830. package/{package/order → order}/components/select-shipping-method-dialog/select-shipping-method-dialog.component.d.ts +0 -0
  831. package/{package/order → order}/components/settle-refund-dialog/settle-refund-dialog.component.d.ts +0 -0
  832. package/{package/order → order}/components/simple-item-list/simple-item-list.component.d.ts +0 -0
  833. package/{package/order → order}/order.module.d.ts +0 -0
  834. package/{package/order → order}/order.routes.d.ts +0 -0
  835. package/{package/order → order}/package.json +0 -0
  836. package/{package/order → order}/providers/order-transition.service.d.ts +0 -0
  837. package/{package/order → order}/providers/routing/order-resolver.d.ts +0 -0
  838. package/{package/order → order}/providers/routing/order.guard.d.ts +0 -0
  839. package/{package/order → order}/public_api.d.ts +0 -0
  840. package/{package/order → order}/vendure-admin-ui-order.d.ts +0 -0
  841. package/{package/order → order}/vendure-admin-ui-order.metadata.json +0 -0
  842. package/package.json +11 -48
  843. package/{package/public_api.d.ts → public_api.d.ts} +0 -0
  844. package/{package/settings → settings}/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.d.ts +0 -0
  845. package/{package/settings → settings}/components/admin-detail/admin-detail.component.d.ts +0 -0
  846. package/{package/settings → settings}/components/administrator-list/administrator-list.component.d.ts +0 -0
  847. package/{package/settings → settings}/components/channel-detail/channel-detail.component.d.ts +0 -0
  848. package/{package/settings → settings}/components/channel-list/channel-list.component.d.ts +0 -0
  849. package/{package/settings → settings}/components/country-detail/country-detail.component.d.ts +0 -0
  850. package/{package/settings → settings}/components/country-list/country-list.component.d.ts +0 -0
  851. package/{package/settings → settings}/components/global-settings/global-settings.component.d.ts +0 -0
  852. package/{package/settings → settings}/components/payment-method-detail/payment-method-detail.component.d.ts +0 -0
  853. package/{package/settings → settings}/components/payment-method-list/payment-method-list.component.d.ts +0 -0
  854. package/{package/settings → settings}/components/permission-grid/permission-grid.component.d.ts +0 -0
  855. package/{package/settings → settings}/components/profile/profile.component.d.ts +0 -0
  856. package/{package/settings → settings}/components/role-detail/role-detail.component.d.ts +0 -0
  857. package/{package/settings → settings}/components/role-list/role-list.component.d.ts +0 -0
  858. package/{package/settings → settings}/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.d.ts +0 -0
  859. package/{package/settings → settings}/components/shipping-method-detail/shipping-method-detail.component.d.ts +0 -0
  860. package/{package/settings → settings}/components/shipping-method-list/shipping-method-list.component.d.ts +0 -0
  861. package/{package/settings → settings}/components/shipping-method-test-result/shipping-method-test-result.component.d.ts +0 -0
  862. package/{package/settings → settings}/components/tax-category-detail/tax-category-detail.component.d.ts +0 -0
  863. package/{package/settings → settings}/components/tax-category-list/tax-category-list.component.d.ts +0 -0
  864. package/{package/settings → settings}/components/tax-rate-detail/tax-rate-detail.component.d.ts +0 -0
  865. package/{package/settings → settings}/components/tax-rate-list/tax-rate-list.component.d.ts +0 -0
  866. package/{package/settings → settings}/components/test-address-form/test-address-form.component.d.ts +0 -0
  867. package/{package/settings → settings}/components/test-order-builder/test-order-builder.component.d.ts +0 -0
  868. package/{package/settings → settings}/components/zone-detail-dialog/zone-detail-dialog.component.d.ts +0 -0
  869. package/{package/settings → settings}/components/zone-list/zone-list.component.d.ts +0 -0
  870. package/{package/settings → settings}/components/zone-member-list/zone-member-controls.directive.d.ts +0 -0
  871. package/{package/settings → settings}/components/zone-member-list/zone-member-list-header.directive.d.ts +0 -0
  872. package/{package/settings → settings}/components/zone-member-list/zone-member-list.component.d.ts +0 -0
  873. package/{package/settings → settings}/package.json +0 -0
  874. package/{package/settings → settings}/providers/routing/administrator-resolver.d.ts +0 -0
  875. package/{package/settings → settings}/providers/routing/channel-resolver.d.ts +0 -0
  876. package/{package/settings → settings}/providers/routing/country-resolver.d.ts +0 -0
  877. package/{package/settings → settings}/providers/routing/global-settings-resolver.d.ts +0 -0
  878. package/{package/settings → settings}/providers/routing/payment-method-resolver.d.ts +0 -0
  879. package/{package/settings → settings}/providers/routing/profile-resolver.d.ts +0 -0
  880. package/{package/settings → settings}/providers/routing/role-resolver.d.ts +0 -0
  881. package/{package/settings → settings}/providers/routing/shipping-method-resolver.d.ts +0 -0
  882. package/{package/settings → settings}/providers/routing/tax-category-resolver.d.ts +0 -0
  883. package/{package/settings → settings}/providers/routing/tax-rate-resolver.d.ts +0 -0
  884. package/{package/settings → settings}/public_api.d.ts +0 -0
  885. package/{package/settings → settings}/settings.module.d.ts +0 -0
  886. package/{package/settings → settings}/settings.routes.d.ts +0 -0
  887. package/{package/settings → settings}/vendure-admin-ui-settings.d.ts +0 -0
  888. package/settings/vendure-admin-ui-settings.metadata.json +1 -0
  889. package/{package/static → static}/assets/.gitkeep +0 -0
  890. package/{package/static → static}/assets/logo-300px.png +0 -0
  891. package/{package/static → static}/assets/logo-75px.png +0 -0
  892. package/{package/static → static}/favicon.ico +0 -0
  893. package/{package/static → static}/i18n-messages/cs.json +0 -0
  894. package/{package/static → static}/i18n-messages/de.json +0 -0
  895. package/{package/static → static}/i18n-messages/en.json +0 -0
  896. package/{package/static → static}/i18n-messages/es.json +0 -0
  897. package/{package/static → static}/i18n-messages/fr.json +0 -0
  898. package/{package/static → static}/i18n-messages/it.json +0 -0
  899. package/{package/static → static}/i18n-messages/pl.json +0 -0
  900. package/{package/static → static}/i18n-messages/pt_BR.json +0 -0
  901. package/{package/static → static}/i18n-messages/pt_PT.json +0 -0
  902. package/{package/static → static}/i18n-messages/ru.json +0 -0
  903. package/{package/static → static}/i18n-messages/uk.json +0 -0
  904. package/{package/static → static}/i18n-messages/zh_Hans.json +0 -0
  905. package/{package/static → static}/i18n-messages/zh_Hant.json +0 -0
  906. package/{package/static → static}/index.html +0 -0
  907. package/{package/static → static}/polyfills.ts +0 -0
  908. package/{package/static → static}/styles/_mixins.scss +0 -0
  909. package/{package/static → static}/styles/_variables.scss +0 -0
  910. package/{package/static → static}/styles/global/_forms.scss +0 -0
  911. package/{package/static → static}/styles/global/_overrides.scss +0 -0
  912. package/{package/static → static}/styles/global/_sass-overrides.scss +0 -0
  913. package/{package/static → static}/styles/global/_utilities.scss +0 -0
  914. package/{package/static → static}/styles/styles.scss +0 -0
  915. package/{package/static → static}/styles/theme/dark.scss +0 -0
  916. package/{package/static → static}/styles/theme/default.scss +0 -0
  917. package/{package/static → static}/styles/ui-extension-theme.scss +0 -0
  918. package/{package/static → static}/theme.min.css +0 -0
  919. package/{package/static → static}/vendure-ui-config.json +0 -0
  920. package/{package/system → system}/components/health-check/health-check.component.d.ts +0 -0
  921. package/{package/system → system}/components/job-list/job-list.component.d.ts +0 -0
  922. package/{package/system → system}/components/job-state-label/job-state-label.component.d.ts +0 -0
  923. package/{package/system → system}/package.json +0 -0
  924. package/{package/system → system}/public_api.d.ts +0 -0
  925. package/{package/system → system}/system.module.d.ts +0 -0
  926. package/{package/system → system}/system.routes.d.ts +0 -0
  927. package/{package/system → system}/vendure-admin-ui-system.d.ts +0 -0
  928. package/{package/system → system}/vendure-admin-ui-system.metadata.json +0 -0
  929. package/{package/vendure-admin-ui.d.ts → vendure-admin-ui.d.ts} +0 -0
  930. package/{package/vendure-admin-ui.metadata.json → vendure-admin-ui.metadata.json} +0 -0
  931. package/README.md +0 -49
  932. package/angular.json +0 -196
  933. package/i18n-coverage.json +0 -71
  934. package/package/bundles/vendure-admin-ui-core.umd.js.map +0 -1
  935. package/package/bundles/vendure-admin-ui-settings.umd.js.map +0 -1
  936. package/package/catalog/vendure-admin-ui-catalog.metadata.json +0 -1
  937. package/package/core/common/version.d.ts +0 -1
  938. package/package/core/vendure-admin-ui-core.metadata.json +0 -1
  939. package/package/esm2015/core/common/component-registry-types.js +0 -2
  940. package/package/esm2015/core/shared/shared.module.js +0 -287
  941. package/package/fesm2015/vendure-admin-ui-core.js.map +0 -1
  942. package/package/package.json +0 -59
  943. package/package/settings/vendure-admin-ui-settings.metadata.json +0 -1
  944. package/tsconfig.json +0 -61
  945. package/tsconfig.lib.json +0 -26
  946. package/tsconfig.lib.prod.json +0 -14
  947. package/tslint.json +0 -33
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vendure-admin-ui-core.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/lib/core/src/data/definitions/administrator-definitions.ts","../../src/lib/core/src/data/providers/administrator-data.service.ts","../../src/lib/core/src/data/definitions/shared-definitions.ts","../../src/lib/core/src/data/definitions/auth-definitions.ts","../../src/lib/core/src/data/providers/auth-data.service.ts","../../src/lib/core/src/providers/local-storage/local-storage.service.ts","../../src/lib/core/src/data/definitions/client-definitions.ts","../../src/lib/core/src/data/query-result.ts","../../src/lib/core/src/data/definitions/settings-definitions.ts","../../src/lib/core/src/data/server-config.ts","../../src/lib/core/src/data/utils/add-custom-fields.ts","../../src/lib/core/src/data/utils/remove-readonly-custom-fields.ts","../../src/lib/core/src/data/utils/transform-relation-custom-field-inputs.ts","../../src/lib/core/src/data/providers/base-data.service.ts","../../src/lib/core/src/data/providers/client-data.service.ts","../../src/lib/core/src/data/definitions/product-definitions.ts","../../src/lib/core/src/data/definitions/collection-definitions.ts","../../src/lib/core/src/data/providers/collection-data.service.ts","../../src/lib/core/src/common/generated-types.ts","../../src/lib/core/src/data/definitions/customer-definitions.ts","../../src/lib/core/src/data/providers/customer-data.service.ts","../../src/lib/core/src/data/definitions/facet-definitions.ts","../../src/lib/core/src/data/providers/facet-data.service.ts","../../src/lib/core/src/data/definitions/order-definitions.ts","../../src/lib/core/src/data/providers/order-data.service.ts","../../src/lib/core/src/data/providers/product-data.service.ts","../../src/lib/core/src/data/definitions/promotion-definitions.ts","../../src/lib/core/src/data/providers/promotion-data.service.ts","../../src/lib/core/src/data/providers/settings-data.service.ts","../../src/lib/core/src/data/definitions/shipping-definitions.ts","../../src/lib/core/src/data/providers/shipping-method-data.service.ts","../../src/lib/core/src/data/providers/data.service.ts","../../src/lib/core/src/app.component.ts","../../src/lib/core/src/app.config.ts","../../src/lib/core/src/common/utilities/get-default-ui-language.ts","../../src/lib/core/src/providers/auth/auth.service.ts","../../src/lib/core/src/providers/i18n/i18n.service.ts","../../src/lib/core/src/shared/components/modal-dialog/modal-dialog.component.ts","../../src/lib/core/src/shared/components/simple-dialog/simple-dialog.component.ts","../../src/lib/core/src/providers/overlay-host/overlay-host.service.ts","../../src/lib/core/src/providers/modal/modal.service.ts","../../src/lib/core/src/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.ts","../../src/lib/core/src/components/app-shell/app-shell.component.ts","../../src/lib/core/src/components/breadcrumb/breadcrumb.component.ts","../../src/lib/core/src/components/channel-switcher/channel-switcher.component.ts","../../src/lib/core/src/data/utils/get-server-location.ts","../../src/lib/core/src/providers/health-check/health-check.service.ts","../../src/lib/core/src/providers/job-queue/job-queue.service.ts","../../src/lib/core/src/providers/nav-builder/nav-builder.service.ts","../../src/lib/core/src/components/main-nav/main-nav.component.ts","../../src/lib/core/src/components/notification/notification.component.ts","../../src/lib/core/src/components/overlay-host/overlay-host.component.ts","../../src/lib/core/src/components/theme-switcher/theme-switcher.component.ts","../../src/lib/core/src/components/user-menu/user-menu.component.ts","../../src/lib/core/src/common/introspection-result.ts","../../src/lib/core/src/common/introspection-result-wrapper.ts","../../src/lib/core/src/data/check-jobs-link.ts","../../src/lib/core/src/data/client-state/client-defaults.ts","../../src/lib/core/src/data/client-state/client-resolvers.ts","../../src/lib/core/src/data/omit-typename-link.ts","../../src/lib/core/src/data/providers/fetch-adapter.ts","../../src/lib/core/src/providers/notification/notification.service.ts","../../src/lib/core/src/data/providers/interceptor.ts","../../src/lib/core/src/data/data.module.ts","../../src/lib/core/src/providers/i18n/custom-http-loader.ts","../../src/lib/core/src/providers/i18n/custom-message-format-compiler.ts","../../src/lib/core/src/providers/component-registry/component-registry.service.ts","../../src/lib/core/src/providers/custom-field-component/custom-field-component.service.ts","../../src/lib/core/src/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.ts","../../src/lib/core/src/common/utilities/configurable-operation-utils.ts","../../src/lib/core/src/common/utilities/interpolate-description.ts","../../src/lib/core/src/shared/components/configurable-input/configurable-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/date-form-input/date-form-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/number-form-input/number-form-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/password-form-input/password-form-input.component.ts","../../src/lib/core/src/common/utilities/selection-manager.ts","../../src/lib/core/src/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/select-form-input/select-form-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/text-form-input/text-form-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/register-dynamic-input-components.ts","../../src/lib/core/src/shared/components/action-bar-items/action-bar-items.component.ts","../../src/lib/core/src/shared/components/action-bar/action-bar.component.ts","../../src/lib/core/src/shared/components/address-form/address-form.component.ts","../../src/lib/core/src/shared/components/affixed-input/affixed-input.component.ts","../../src/lib/core/src/shared/components/affixed-input/percentage-suffix-input.component.ts","../../src/lib/core/src/shared/components/asset-file-input/asset-file-input.component.ts","../../src/lib/core/src/shared/components/asset-preview-dialog/asset-preview-dialog.component.ts","../../src/lib/core/src/shared/components/asset-gallery/asset-gallery.component.ts","../../src/lib/core/src/shared/components/asset-picker-dialog/asset-picker-dialog.component.ts","../../src/lib/core/src/shared/components/asset-preview-links/asset-preview-links.component.ts","../../src/lib/core/src/shared/components/manage-tags-dialog/manage-tags-dialog.component.ts","../../src/lib/core/src/shared/components/asset-preview/asset-preview.component.ts","../../src/lib/core/src/common/single-search-selection-model.ts","../../src/lib/core/src/shared/components/asset-search-input/asset-search-input.component.ts","../../src/lib/core/src/providers/bulk-action-registry/bulk-action-registry.service.ts","../../src/lib/core/src/shared/components/bulk-action-menu/bulk-action-menu.component.ts","../../src/lib/core/src/shared/components/channel-assignment-control/channel-assignment-control.component.ts","../../src/lib/core/src/shared/components/channel-badge/channel-badge.component.ts","../../src/lib/core/src/shared/components/chip/chip.component.ts","../../src/lib/core/src/shared/components/currency-input/currency-input.component.ts","../../src/lib/core/src/providers/custom-detail-component/custom-detail-component.service.ts","../../src/lib/core/src/shared/components/custom-detail-component-host/custom-detail-component-host.component.ts","../../src/lib/core/src/shared/components/custom-field-control/custom-field-control.component.ts","../../src/lib/core/src/shared/components/customer-label/customer-label.component.ts","../../src/lib/core/src/shared/components/data-table/data-table-column.component.ts","../../src/lib/core/src/shared/components/data-table/data-table.component.ts","../../src/lib/core/src/shared/components/datetime-picker/constants.ts","../../src/lib/core/src/shared/components/datetime-picker/datetime-picker.service.ts","../../src/lib/core/src/shared/components/datetime-picker/datetime-picker.component.ts","../../src/lib/core/src/shared/components/dropdown/dropdown.component.ts","../../src/lib/core/src/shared/components/dropdown/dropdown-item.directive.ts","../../src/lib/core/src/shared/components/dropdown/dropdown-menu.component.ts","../../src/lib/core/src/shared/components/dropdown/dropdown-trigger.directive.ts","../../src/lib/core/src/shared/components/edit-note-dialog/edit-note-dialog.component.ts","../../src/lib/core/src/shared/components/empty-placeholder/empty-placeholder.component.ts","../../src/lib/core/src/shared/components/entity-info/entity-info.component.ts","../../src/lib/core/src/shared/components/extension-host/extension-host.service.ts","../../src/lib/core/src/shared/components/extension-host/extension-host.component.ts","../../src/lib/core/src/shared/components/facet-value-chip/facet-value-chip.component.ts","../../src/lib/core/src/common/utilities/flatten-facet-values.ts","../../src/lib/core/src/shared/components/facet-value-selector/facet-value-selector.component.ts","../../src/lib/core/src/shared/components/focal-point-control/focal-point-control.component.ts","../../src/lib/core/src/shared/components/form-field/form-field-control.directive.ts","../../src/lib/core/src/shared/components/form-field/form-field.component.ts","../../src/lib/core/src/shared/components/form-item/form-item.component.ts","../../src/lib/core/src/shared/components/formatted-address/formatted-address.component.ts","../../src/lib/core/src/shared/components/help-tooltip/help-tooltip.component.ts","../../src/lib/core/src/shared/components/history-entry-detail/history-entry-detail.component.ts","../../src/lib/core/src/shared/components/items-per-page-controls/items-per-page-controls.component.ts","../../src/lib/core/src/shared/components/labeled-data/labeled-data.component.ts","../../src/lib/core/src/shared/components/language-selector/language-selector.component.ts","../../src/lib/core/src/shared/components/modal-dialog/dialog-buttons.directive.ts","../../src/lib/core/src/shared/components/modal-dialog/dialog-component-outlet.component.ts","../../src/lib/core/src/shared/components/modal-dialog/dialog-title.directive.ts","../../src/lib/core/src/shared/components/object-tree/object-tree.component.ts","../../src/lib/core/src/shared/components/order-state-label/order-state-label.component.ts","../../src/lib/core/src/shared/components/pagination-controls/pagination-controls.component.ts","../../src/lib/core/src/shared/components/product-search-input/product-search-input.component.ts","../../src/lib/core/src/shared/components/product-selector/product-selector.component.ts","../../src/lib/core/src/shared/components/radio-card/radio-card-fieldset.component.ts","../../src/lib/core/src/shared/components/radio-card/radio-card.component.ts","../../src/lib/core/src/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.ts","../../src/lib/core/src/shared/components/rich-text-editor/link-dialog/link-dialog.component.ts","../../src/lib/core/src/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.ts","../../src/lib/core/src/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.ts","../../src/lib/core/src/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.ts","../../src/lib/core/src/shared/components/rich-text-editor/prosemirror/custom-nodes.ts","../../src/lib/core/src/shared/components/rich-text-editor/prosemirror/inputrules.ts","../../src/lib/core/src/shared/components/rich-text-editor/prosemirror/keymap.ts","../../src/lib/core/src/shared/components/rich-text-editor/prosemirror/menu/menu-common.ts","../../src/lib/core/src/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.ts","../../src/lib/core/src/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.ts","../../src/lib/core/src/shared/components/rich-text-editor/prosemirror/menu/links.ts","../../src/lib/core/src/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.ts","../../src/lib/core/src/shared/components/rich-text-editor/prosemirror/menu/menu.ts","../../src/lib/core/src/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.ts","../../src/lib/core/src/shared/components/rich-text-editor/prosemirror/utils.ts","../../src/lib/core/src/shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin.ts","../../src/lib/core/src/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.ts","../../src/lib/core/src/shared/components/rich-text-editor/prosemirror/prosemirror.service.ts","../../src/lib/core/src/shared/components/rich-text-editor/rich-text-editor.component.ts","../../src/lib/core/src/shared/components/select-toggle/select-toggle.component.ts","../../src/lib/core/src/shared/components/status-badge/status-badge.component.ts","../../src/lib/core/src/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.ts","../../src/lib/core/src/shared/components/table-row-action/table-row-action.component.ts","../../src/lib/core/src/shared/components/tag-selector/tag-selector.component.ts","../../src/lib/core/src/shared/components/timeline-entry/timeline-entry.component.ts","../../src/lib/core/src/shared/components/title-input/title-input.component.ts","../../src/lib/core/src/shared/components/ui-extension-point/ui-extension-point.component.ts","../../src/lib/core/src/shared/directives/disabled.directive.ts","../../src/lib/core/src/shared/directives/if-directive-base.ts","../../src/lib/core/src/shared/directives/if-default-channel-active.directive.ts","../../src/lib/core/src/shared/directives/if-multichannel.directive.ts","../../src/lib/core/src/shared/directives/if-permissions.directive.ts","../../src/lib/core/src/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/relation-form-input/relation-selector-dialog/relation-selector-dialog.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/relation-form-input/product/relation-product-input.component.ts","../../src/lib/core/src/shared/dynamic-form-inputs/relation-form-input/relation-card/relation-card.component.ts","../../src/lib/core/src/shared/pipes/asset-preview.pipe.ts","../../src/lib/core/src/shared/pipes/channel-label.pipe.ts","../../src/lib/core/src/shared/pipes/custom-field-description.pipe.ts","../../src/lib/core/src/shared/pipes/custom-field-label.pipe.ts","../../src/lib/core/src/shared/pipes/duration.pipe.ts","../../src/lib/core/src/shared/pipes/file-size.pipe.ts","../../src/lib/core/src/shared/pipes/has-permission.pipe.ts","../../src/lib/core/src/shared/pipes/locale-base.pipe.ts","../../src/lib/core/src/shared/pipes/locale-currency-name.pipe.ts","../../src/lib/core/src/shared/pipes/locale-currency.pipe.ts","../../src/lib/core/src/shared/pipes/locale-date.pipe.ts","../../src/lib/core/src/shared/pipes/locale-language-name.pipe.ts","../../src/lib/core/src/shared/pipes/locale-region-name.pipe.ts","../../src/lib/core/src/shared/pipes/sentence-case.pipe.ts","../../src/lib/core/src/shared/pipes/sort.pipe.ts","../../src/lib/core/src/shared/pipes/state-i18n-token.pipe.ts","../../src/lib/core/src/common/utilities/string-to-color.ts","../../src/lib/core/src/shared/pipes/string-to-color.pipe.ts","../../src/lib/core/src/shared/pipes/time-ago.pipe.ts","../../src/lib/core/src/shared/providers/routing/can-deactivate-detail-guard.ts","../../src/lib/core/src/shared/shared.module.ts","../../src/lib/core/src/core.module.ts","../../src/lib/core/src/app.component.module.ts","../../src/lib/core/src/common/base-detail.component.ts","../../src/lib/core/src/common/base-entity-resolver.ts","../../src/lib/core/src/common/base-list.component.ts","../../src/lib/core/src/common/detail-breadcrumb.ts","../../src/lib/core/src/common/utilities/bulk-action-utils.ts","../../src/lib/core/src/common/utilities/find-translation.ts","../../src/lib/core/src/common/utilities/create-updated-translatable.ts","../../src/lib/core/src/common/version.ts","../../src/lib/core/src/providers/bulk-action-registry/register-bulk-action.ts","../../src/lib/core/src/providers/dashboard-widget/dashboard-widget.service.ts","../../src/lib/core/src/providers/dashboard-widget/register-dashboard-widget.ts","../../src/lib/core/src/providers/guard/auth.guard.ts","../../src/lib/core/src/shared/components/extension-host/extension-host-config.ts","../../src/lib/core/src/shared/components/extension-host/host-external-frame.ts","../../src/lib/core/src/validators/unicode-pattern.validator.ts","../../src/lib/core/src/public_api.ts","../../src/lib/core/src/vendure-admin-ui-core.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { gql } from 'apollo-angular';\r\n\r\nexport const ROLE_FRAGMENT = gql`\r\n fragment Role on Role {\r\n id\r\n createdAt\r\n updatedAt\r\n code\r\n description\r\n permissions\r\n channels {\r\n id\r\n code\r\n token\r\n }\r\n }\r\n`;\r\n\r\nexport const ADMINISTRATOR_FRAGMENT = gql`\r\n fragment Administrator on Administrator {\r\n id\r\n createdAt\r\n updatedAt\r\n firstName\r\n lastName\r\n emailAddress\r\n user {\r\n id\r\n identifier\r\n lastLogin\r\n roles {\r\n ...Role\r\n }\r\n }\r\n }\r\n ${ROLE_FRAGMENT}\r\n`;\r\n\r\nexport const GET_ADMINISTRATORS = gql`\r\n query GetAdministrators($options: AdministratorListOptions) {\r\n administrators(options: $options) {\r\n items {\r\n ...Administrator\r\n }\r\n totalItems\r\n }\r\n }\r\n ${ADMINISTRATOR_FRAGMENT}\r\n`;\r\n\r\nexport const GET_ACTIVE_ADMINISTRATOR = gql`\r\n query GetActiveAdministrator {\r\n activeAdministrator {\r\n ...Administrator\r\n }\r\n }\r\n ${ADMINISTRATOR_FRAGMENT}\r\n`;\r\n\r\nexport const GET_ADMINISTRATOR = gql`\r\n query GetAdministrator($id: ID!) {\r\n administrator(id: $id) {\r\n ...Administrator\r\n }\r\n }\r\n ${ADMINISTRATOR_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_ADMINISTRATOR = gql`\r\n mutation CreateAdministrator($input: CreateAdministratorInput!) {\r\n createAdministrator(input: $input) {\r\n ...Administrator\r\n }\r\n }\r\n ${ADMINISTRATOR_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_ADMINISTRATOR = gql`\r\n mutation UpdateAdministrator($input: UpdateAdministratorInput!) {\r\n updateAdministrator(input: $input) {\r\n ...Administrator\r\n }\r\n }\r\n ${ADMINISTRATOR_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_ACTIVE_ADMINISTRATOR = gql`\r\n mutation UpdateActiveAdministrator($input: UpdateActiveAdministratorInput!) {\r\n updateActiveAdministrator(input: $input) {\r\n ...Administrator\r\n }\r\n }\r\n ${ADMINISTRATOR_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_ADMINISTRATOR = gql`\r\n mutation DeleteAdministrator($id: ID!) {\r\n deleteAdministrator(id: $id) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_ROLES = gql`\r\n query GetRoles($options: RoleListOptions) {\r\n roles(options: $options) {\r\n items {\r\n ...Role\r\n }\r\n totalItems\r\n }\r\n }\r\n ${ROLE_FRAGMENT}\r\n`;\r\n\r\nexport const GET_ROLE = gql`\r\n query GetRole($id: ID!) {\r\n role(id: $id) {\r\n ...Role\r\n }\r\n }\r\n ${ROLE_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_ROLE = gql`\r\n mutation CreateRole($input: CreateRoleInput!) {\r\n createRole(input: $input) {\r\n ...Role\r\n }\r\n }\r\n ${ROLE_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_ROLE = gql`\r\n mutation UpdateRole($input: UpdateRoleInput!) {\r\n updateRole(input: $input) {\r\n ...Role\r\n }\r\n }\r\n ${ROLE_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_ROLE = gql`\r\n mutation DeleteRole($id: ID!) {\r\n deleteRole(id: $id) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const ASSIGN_ROLE_TO_ADMINISTRATOR = gql`\r\n mutation AssignRoleToAdministrator($administratorId: ID!, $roleId: ID!) {\r\n assignRoleToAdministrator(administratorId: $administratorId, roleId: $roleId) {\r\n ...Administrator\r\n }\r\n }\r\n ${ADMINISTRATOR_FRAGMENT}\r\n`;\r\n","import { FetchPolicy } from '@apollo/client';\r\n\r\nimport {\r\n CreateAdministrator,\r\n CreateAdministratorInput,\r\n CreateRole,\r\n CreateRoleInput,\r\n DeleteAdministrator,\r\n DeleteRole,\r\n GetActiveAdministrator,\r\n GetAdministrator,\r\n GetAdministrators,\r\n GetRole,\r\n GetRoles,\r\n UpdateActiveAdministrator,\r\n UpdateActiveAdministratorInput,\r\n UpdateAdministrator,\r\n UpdateAdministratorInput,\r\n UpdateRole,\r\n UpdateRoleInput,\r\n} from '../../common/generated-types';\r\nimport {\r\n CREATE_ADMINISTRATOR,\r\n CREATE_ROLE,\r\n DELETE_ADMINISTRATOR,\r\n DELETE_ROLE,\r\n GET_ACTIVE_ADMINISTRATOR,\r\n GET_ADMINISTRATOR,\r\n GET_ADMINISTRATORS,\r\n GET_ROLE,\r\n GET_ROLES,\r\n UPDATE_ACTIVE_ADMINISTRATOR,\r\n UPDATE_ADMINISTRATOR,\r\n UPDATE_ROLE,\r\n} from '../definitions/administrator-definitions';\r\n\r\nimport { BaseDataService } from './base-data.service';\r\n\r\nexport class AdministratorDataService {\r\n constructor(private baseDataService: BaseDataService) {}\r\n\r\n getAdministrators(take: number = 10, skip: number = 0) {\r\n return this.baseDataService.query<GetAdministrators.Query, GetAdministrators.Variables>(\r\n GET_ADMINISTRATORS,\r\n {\r\n options: {\r\n take,\r\n skip,\r\n },\r\n },\r\n );\r\n }\r\n\r\n getActiveAdministrator() {\r\n return this.baseDataService.query<GetActiveAdministrator.Query>(GET_ACTIVE_ADMINISTRATOR, {});\r\n }\r\n\r\n getAdministrator(id: string) {\r\n return this.baseDataService.query<GetAdministrator.Query, GetAdministrator.Variables>(\r\n GET_ADMINISTRATOR,\r\n {\r\n id,\r\n },\r\n );\r\n }\r\n\r\n createAdministrator(input: CreateAdministratorInput) {\r\n return this.baseDataService.mutate<CreateAdministrator.Mutation, CreateAdministrator.Variables>(\r\n CREATE_ADMINISTRATOR,\r\n { input },\r\n );\r\n }\r\n\r\n updateAdministrator(input: UpdateAdministratorInput) {\r\n return this.baseDataService.mutate<UpdateAdministrator.Mutation, UpdateAdministrator.Variables>(\r\n UPDATE_ADMINISTRATOR,\r\n { input },\r\n );\r\n }\r\n\r\n updateActiveAdministrator(input: UpdateActiveAdministratorInput) {\r\n return this.baseDataService.mutate<\r\n UpdateActiveAdministrator.Mutation,\r\n UpdateActiveAdministrator.Variables\r\n >(UPDATE_ACTIVE_ADMINISTRATOR, { input });\r\n }\r\n\r\n deleteAdministrator(id: string) {\r\n return this.baseDataService.mutate<DeleteAdministrator.Mutation, DeleteAdministrator.Variables>(\r\n DELETE_ADMINISTRATOR,\r\n { id },\r\n );\r\n }\r\n\r\n getRoles(take: number = 10, skip: number = 0) {\r\n return this.baseDataService.query<GetRoles.Query, GetRoles.Variables>(GET_ROLES, {\r\n options: {\r\n take,\r\n skip,\r\n },\r\n });\r\n }\r\n\r\n getRole(id: string) {\r\n return this.baseDataService.query<GetRole.Query, GetRole.Variables>(GET_ROLE, { id });\r\n }\r\n\r\n createRole(input: CreateRoleInput) {\r\n return this.baseDataService.mutate<CreateRole.Mutation, CreateRole.Variables>(CREATE_ROLE, { input });\r\n }\r\n\r\n updateRole(input: UpdateRoleInput) {\r\n return this.baseDataService.mutate<UpdateRole.Mutation, UpdateRole.Variables>(UPDATE_ROLE, { input });\r\n }\r\n\r\n deleteRole(id: string) {\r\n return this.baseDataService.mutate<DeleteRole.Mutation, DeleteRole.Variables>(DELETE_ROLE, { id });\r\n }\r\n}\r\n","import { gql } from 'apollo-angular';\r\n\r\nexport const CONFIGURABLE_OPERATION_FRAGMENT = gql`\r\n fragment ConfigurableOperation on ConfigurableOperation {\r\n args {\r\n name\r\n value\r\n }\r\n code\r\n }\r\n`;\r\n\r\nexport const CONFIGURABLE_OPERATION_DEF_FRAGMENT = gql`\r\n fragment ConfigurableOperationDef on ConfigurableOperationDefinition {\r\n args {\r\n name\r\n type\r\n required\r\n defaultValue\r\n list\r\n ui\r\n label\r\n description\r\n }\r\n code\r\n description\r\n }\r\n`;\r\n\r\nexport const ERROR_RESULT_FRAGMENT = gql`\r\n fragment ErrorResult on ErrorResult {\r\n errorCode\r\n message\r\n }\r\n`;\r\n","import { gql } from 'apollo-angular';\r\n\r\nimport { ERROR_RESULT_FRAGMENT } from './shared-definitions';\r\n\r\nexport const CURRENT_USER_FRAGMENT = gql`\r\n fragment CurrentUser on CurrentUser {\r\n id\r\n identifier\r\n channels {\r\n id\r\n code\r\n token\r\n permissions\r\n }\r\n }\r\n`;\r\n\r\nexport const ATTEMPT_LOGIN = gql`\r\n mutation AttemptLogin($username: String!, $password: String!, $rememberMe: Boolean!) {\r\n login(username: $username, password: $password, rememberMe: $rememberMe) {\r\n ...CurrentUser\r\n ...ErrorResult\r\n }\r\n }\r\n ${CURRENT_USER_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const LOG_OUT = gql`\r\n mutation LogOut {\r\n logout {\r\n success\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_CURRENT_USER = gql`\r\n query GetCurrentUser {\r\n me {\r\n ...CurrentUser\r\n }\r\n }\r\n ${CURRENT_USER_FRAGMENT}\r\n`;\r\n","import { AttemptLogin, GetCurrentUser, LogOut } from '../../common/generated-types';\r\nimport { ATTEMPT_LOGIN, GET_CURRENT_USER, LOG_OUT } from '../definitions/auth-definitions';\r\n\r\nimport { BaseDataService } from './base-data.service';\r\n\r\nexport class AuthDataService {\r\n constructor(private baseDataService: BaseDataService) {}\r\n\r\n currentUser() {\r\n return this.baseDataService.query<GetCurrentUser.Query>(GET_CURRENT_USER);\r\n }\r\n\r\n attemptLogin(username: string, password: string, rememberMe: boolean) {\r\n return this.baseDataService.mutate<AttemptLogin.Mutation, AttemptLogin.Variables>(ATTEMPT_LOGIN, {\r\n username,\r\n password,\r\n rememberMe,\r\n });\r\n }\r\n\r\n logOut() {\r\n return this.baseDataService.mutate<LogOut.Mutation>(LOG_OUT);\r\n }\r\n}\r\n","import { Location } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { LanguageCode } from '../../common/generated-types';\r\nimport { WidgetLayoutDefinition } from '../dashboard-widget/dashboard-widget-types';\r\n\r\nexport type LocalStorageTypeMap = {\r\n activeChannelToken: string;\r\n authToken: string;\r\n uiLanguageCode: LanguageCode;\r\n uiLocale: string | undefined;\r\n contentLanguageCode: LanguageCode;\r\n orderListLastCustomFilters: any;\r\n dashboardWidgetLayout: WidgetLayoutDefinition;\r\n activeTheme: string;\r\n livePreviewCollectionContents: boolean;\r\n};\r\n\r\nexport type LocalStorageLocationBasedTypeMap = {\r\n shippingTestOrder: any;\r\n shippingTestAddress: any;\r\n};\r\n\r\nconst PREFIX = 'vnd_';\r\n\r\n/**\r\n * Wrapper around the browser's LocalStorage / SessionStorage object, for persisting data to the browser.\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LocalStorageService {\r\n constructor(private location: Location) {}\r\n /**\r\n * Set a key-value pair in the browser's LocalStorage\r\n */\r\n public set<K extends keyof LocalStorageTypeMap>(key: K, value: LocalStorageTypeMap[K]): void {\r\n const keyName = this.keyName(key);\r\n localStorage.setItem(keyName, JSON.stringify(value));\r\n }\r\n\r\n /**\r\n * Set a key-value pair specific to the current location (url)\r\n */\r\n public setForCurrentLocation<K extends keyof LocalStorageLocationBasedTypeMap>(\r\n key: K,\r\n value: LocalStorageLocationBasedTypeMap[K],\r\n ) {\r\n const compositeKey = this.getLocationBasedKey(key);\r\n this.set(compositeKey as any, value);\r\n }\r\n\r\n /**\r\n * Set a key-value pair in the browser's SessionStorage\r\n */\r\n public setForSession<K extends keyof LocalStorageTypeMap>(key: K, value: LocalStorageTypeMap[K]): void {\r\n const keyName = this.keyName(key);\r\n sessionStorage.setItem(keyName, JSON.stringify(value));\r\n }\r\n\r\n /**\r\n * Get the value of the given key from the SessionStorage or LocalStorage.\r\n */\r\n public get<K extends keyof LocalStorageTypeMap>(key: K): LocalStorageTypeMap[K] | null {\r\n const keyName = this.keyName(key);\r\n const item = sessionStorage.getItem(keyName) || localStorage.getItem(keyName);\r\n let result: any;\r\n try {\r\n result = JSON.parse(item || 'null');\r\n } catch (e) {\r\n // tslint:disable-next-line:no-console\r\n console.error(`Could not parse the localStorage value for \"${key}\" (${item})`);\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Get the value of the given key for the current location (url)\r\n */\r\n public getForCurrentLocation<K extends keyof LocalStorageLocationBasedTypeMap>(\r\n key: K,\r\n ): LocalStorageLocationBasedTypeMap[K] {\r\n const compositeKey = this.getLocationBasedKey(key);\r\n return this.get(compositeKey as any);\r\n }\r\n\r\n public remove(key: keyof LocalStorageTypeMap): void {\r\n const keyName = this.keyName(key);\r\n sessionStorage.removeItem(keyName);\r\n localStorage.removeItem(keyName);\r\n }\r\n\r\n private getLocationBasedKey(key: string) {\r\n const path = this.location.path();\r\n return key + path;\r\n }\r\n\r\n private keyName(key: keyof LocalStorageTypeMap): string {\r\n return PREFIX + key;\r\n }\r\n}\r\n","import { gql } from 'apollo-angular';\r\n\r\nexport const REQUEST_STARTED = gql`\r\n mutation RequestStarted {\r\n requestStarted @client\r\n }\r\n`;\r\n\r\nexport const REQUEST_COMPLETED = gql`\r\n mutation RequestCompleted {\r\n requestCompleted @client\r\n }\r\n`;\r\n\r\nexport const USER_STATUS_FRAGMENT = gql`\r\n fragment UserStatus on UserStatus {\r\n username\r\n isLoggedIn\r\n loginTime\r\n activeChannelId\r\n permissions\r\n channels {\r\n id\r\n code\r\n token\r\n permissions\r\n }\r\n }\r\n`;\r\n\r\nexport const SET_AS_LOGGED_IN = gql`\r\n mutation SetAsLoggedIn($input: UserStatusInput!) {\r\n setAsLoggedIn(input: $input) @client {\r\n ...UserStatus\r\n }\r\n }\r\n ${USER_STATUS_FRAGMENT}\r\n`;\r\n\r\nexport const SET_AS_LOGGED_OUT = gql`\r\n mutation SetAsLoggedOut {\r\n setAsLoggedOut @client {\r\n ...UserStatus\r\n }\r\n }\r\n ${USER_STATUS_FRAGMENT}\r\n`;\r\n\r\nexport const SET_UI_LANGUAGE_AND_LOCALE = gql`\r\n mutation SetUiLanguage($languageCode: LanguageCode!, $locale: String) {\r\n setUiLanguage(languageCode: $languageCode) @client\r\n setUiLocale(locale: $locale) @client\r\n }\r\n`;\r\n\r\nexport const SET_UI_LOCALE = gql`\r\n mutation SetUiLocale($locale: String) {\r\n setUiLocale(locale: $locale) @client\r\n }\r\n`;\r\n\r\nexport const SET_DISPLAY_UI_EXTENSION_POINTS = gql`\r\n mutation SetDisplayUiExtensionPoints($display: Boolean!) {\r\n setDisplayUiExtensionPoints(display: $display) @client\r\n }\r\n`;\r\n\r\nexport const SET_CONTENT_LANGUAGE = gql`\r\n mutation SetContentLanguage($languageCode: LanguageCode!) {\r\n setContentLanguage(languageCode: $languageCode) @client\r\n }\r\n`;\r\n\r\nexport const SET_UI_THEME = gql`\r\n mutation SetUiTheme($theme: String!) {\r\n setUiTheme(theme: $theme) @client\r\n }\r\n`;\r\n\r\nexport const GET_NEWTORK_STATUS = gql`\r\n query GetNetworkStatus {\r\n networkStatus @client {\r\n inFlightRequests\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_USER_STATUS = gql`\r\n query GetUserStatus {\r\n userStatus @client {\r\n ...UserStatus\r\n }\r\n }\r\n ${USER_STATUS_FRAGMENT}\r\n`;\r\n\r\nexport const GET_UI_STATE = gql`\r\n query GetUiState {\r\n uiState @client {\r\n language\r\n locale\r\n contentLanguage\r\n theme\r\n displayUiExtensionPoints\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_CLIENT_STATE = gql`\r\n query GetClientState {\r\n networkStatus @client {\r\n inFlightRequests\r\n }\r\n userStatus @client {\r\n ...UserStatus\r\n }\r\n uiState @client {\r\n language\r\n locale\r\n contentLanguage\r\n theme\r\n displayUiExtensionPoints\r\n }\r\n }\r\n ${USER_STATUS_FRAGMENT}\r\n`;\r\n\r\nexport const SET_ACTIVE_CHANNEL = gql`\r\n mutation SetActiveChannel($channelId: ID!) {\r\n setActiveChannel(channelId: $channelId) @client {\r\n ...UserStatus\r\n }\r\n }\r\n ${USER_STATUS_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_USER_CHANNELS = gql`\r\n mutation UpdateUserChannels($channels: [CurrentUserChannelInput!]!) {\r\n updateUserChannels(channels: $channels) @client {\r\n ...UserStatus\r\n }\r\n }\r\n ${USER_STATUS_FRAGMENT}\r\n`;\r\n","import { ApolloQueryResult, NetworkStatus } from '@apollo/client/core';\r\nimport { notNullOrUndefined } from '@vendure/common/lib/shared-utils';\r\nimport { Apollo, QueryRef } from 'apollo-angular';\r\nimport { merge, Observable, Subject } from 'rxjs';\r\nimport { distinctUntilChanged, filter, finalize, map, skip, take, takeUntil, tap } from 'rxjs/operators';\r\n\r\nimport { GetUserStatus } from '../common/generated-types';\r\n\r\nimport { GET_USER_STATUS } from './definitions/client-definitions';\r\n\r\n/**\r\n * @description\r\n * This class wraps the Apollo Angular QueryRef object and exposes some getters\r\n * for convenience.\r\n *\r\n * @docsCategory providers\r\n * @docsPage DataService\r\n */\r\nexport class QueryResult<T, V = Record<string, any>> {\r\n constructor(private queryRef: QueryRef<T, V>, private apollo: Apollo) {\r\n this.valueChanges = queryRef.valueChanges;\r\n }\r\n\r\n completed$ = new Subject();\r\n private valueChanges: Observable<ApolloQueryResult<T>>;\r\n\r\n /**\r\n * @description\r\n * Re-fetch this query whenever the active Channel changes.\r\n */\r\n refetchOnChannelChange(): QueryResult<T, V> {\r\n const userStatus$ = this.apollo.watchQuery<GetUserStatus.Query>({\r\n query: GET_USER_STATUS,\r\n }).valueChanges;\r\n const activeChannelId$ = userStatus$.pipe(\r\n map(data => data.data.userStatus.activeChannelId),\r\n filter(notNullOrUndefined),\r\n distinctUntilChanged(),\r\n skip(1),\r\n takeUntil(this.completed$),\r\n );\r\n const loggedOut$ = userStatus$.pipe(\r\n map(data => data.data.userStatus.isLoggedIn),\r\n distinctUntilChanged(),\r\n skip(1),\r\n filter(isLoggedIn => !isLoggedIn),\r\n takeUntil(this.completed$),\r\n );\r\n\r\n this.valueChanges = merge(activeChannelId$, this.queryRef.valueChanges).pipe(\r\n tap(val => {\r\n if (typeof val === 'string') {\r\n new Promise(resolve => setTimeout(resolve, 50)).then(() => this.queryRef.refetch());\r\n }\r\n }),\r\n filter<any>(val => typeof val !== 'string'),\r\n takeUntil(loggedOut$),\r\n takeUntil(this.completed$),\r\n );\r\n this.queryRef.valueChanges = this.valueChanges;\r\n return this;\r\n }\r\n\r\n /**\r\n * @description\r\n * Returns an Observable which emits a single result and then completes.\r\n */\r\n get single$(): Observable<T> {\r\n return this.valueChanges.pipe(\r\n filter(result => result.networkStatus === NetworkStatus.ready),\r\n take(1),\r\n map(result => result.data),\r\n finalize(() => {\r\n this.completed$.next();\r\n this.completed$.complete();\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * @description\r\n * Returns an Observable which emits until unsubscribed.\r\n */\r\n get stream$(): Observable<T> {\r\n return this.valueChanges.pipe(\r\n filter(result => result.networkStatus === NetworkStatus.ready),\r\n map(result => result.data),\r\n finalize(() => {\r\n this.completed$.next();\r\n this.completed$.complete();\r\n }),\r\n );\r\n }\r\n\r\n get ref(): QueryRef<T, V> {\r\n return this.queryRef;\r\n }\r\n\r\n /**\r\n * @description\r\n * Returns a single-result Observable after applying the map function.\r\n */\r\n mapSingle<R>(mapFn: (item: T) => R): Observable<R> {\r\n return this.single$.pipe(map(mapFn));\r\n }\r\n\r\n /**\r\n * @description\r\n * Returns a multiple-result Observable after applying the map function.\r\n */\r\n mapStream<R>(mapFn: (item: T) => R): Observable<R> {\r\n return this.stream$.pipe(map(mapFn));\r\n }\r\n}\r\n","import { gql } from 'apollo-angular';\r\n\r\nimport {\r\n CONFIGURABLE_OPERATION_DEF_FRAGMENT,\r\n CONFIGURABLE_OPERATION_FRAGMENT,\r\n ERROR_RESULT_FRAGMENT,\r\n} from './shared-definitions';\r\n\r\nexport const COUNTRY_FRAGMENT = gql`\r\n fragment Country on Country {\r\n id\r\n createdAt\r\n updatedAt\r\n code\r\n name\r\n enabled\r\n translations {\r\n id\r\n languageCode\r\n name\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_COUNTRY_LIST = gql`\r\n query GetCountryList($options: CountryListOptions) {\r\n countries(options: $options) {\r\n items {\r\n id\r\n code\r\n name\r\n enabled\r\n }\r\n totalItems\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_AVAILABLE_COUNTRIES = gql`\r\n query GetAvailableCountries {\r\n countries(options: { filter: { enabled: { eq: true } } }) {\r\n items {\r\n id\r\n code\r\n name\r\n enabled\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_COUNTRY = gql`\r\n query GetCountry($id: ID!) {\r\n country(id: $id) {\r\n ...Country\r\n }\r\n }\r\n ${COUNTRY_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_COUNTRY = gql`\r\n mutation CreateCountry($input: CreateCountryInput!) {\r\n createCountry(input: $input) {\r\n ...Country\r\n }\r\n }\r\n ${COUNTRY_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_COUNTRY = gql`\r\n mutation UpdateCountry($input: UpdateCountryInput!) {\r\n updateCountry(input: $input) {\r\n ...Country\r\n }\r\n }\r\n ${COUNTRY_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_COUNTRY = gql`\r\n mutation DeleteCountry($id: ID!) {\r\n deleteCountry(id: $id) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const ZONE_FRAGMENT = gql`\r\n fragment Zone on Zone {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n members {\r\n ...Country\r\n }\r\n }\r\n ${COUNTRY_FRAGMENT}\r\n`;\r\n\r\nexport const GET_ZONES = gql`\r\n query GetZones {\r\n zones {\r\n ...Zone\r\n members {\r\n createdAt\r\n updatedAt\r\n id\r\n name\r\n code\r\n enabled\r\n }\r\n }\r\n }\r\n ${ZONE_FRAGMENT}\r\n`;\r\n\r\nexport const GET_ZONE = gql`\r\n query GetZone($id: ID!) {\r\n zone(id: $id) {\r\n ...Zone\r\n }\r\n }\r\n ${ZONE_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_ZONE = gql`\r\n mutation CreateZone($input: CreateZoneInput!) {\r\n createZone(input: $input) {\r\n ...Zone\r\n }\r\n }\r\n ${ZONE_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_ZONE = gql`\r\n mutation UpdateZone($input: UpdateZoneInput!) {\r\n updateZone(input: $input) {\r\n ...Zone\r\n }\r\n }\r\n ${ZONE_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_ZONE = gql`\r\n mutation DeleteZone($id: ID!) {\r\n deleteZone(id: $id) {\r\n message\r\n result\r\n }\r\n }\r\n`;\r\n\r\nexport const ADD_MEMBERS_TO_ZONE = gql`\r\n mutation AddMembersToZone($zoneId: ID!, $memberIds: [ID!]!) {\r\n addMembersToZone(zoneId: $zoneId, memberIds: $memberIds) {\r\n ...Zone\r\n }\r\n }\r\n ${ZONE_FRAGMENT}\r\n`;\r\n\r\nexport const REMOVE_MEMBERS_FROM_ZONE = gql`\r\n mutation RemoveMembersFromZone($zoneId: ID!, $memberIds: [ID!]!) {\r\n removeMembersFromZone(zoneId: $zoneId, memberIds: $memberIds) {\r\n ...Zone\r\n }\r\n }\r\n ${ZONE_FRAGMENT}\r\n`;\r\n\r\nexport const TAX_CATEGORY_FRAGMENT = gql`\r\n fragment TaxCategory on TaxCategory {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n isDefault\r\n }\r\n`;\r\n\r\nexport const GET_TAX_CATEGORIES = gql`\r\n query GetTaxCategories {\r\n taxCategories {\r\n ...TaxCategory\r\n }\r\n }\r\n ${TAX_CATEGORY_FRAGMENT}\r\n`;\r\n\r\nexport const GET_TAX_CATEGORY = gql`\r\n query GetTaxCategory($id: ID!) {\r\n taxCategory(id: $id) {\r\n ...TaxCategory\r\n }\r\n }\r\n ${TAX_CATEGORY_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_TAX_CATEGORY = gql`\r\n mutation CreateTaxCategory($input: CreateTaxCategoryInput!) {\r\n createTaxCategory(input: $input) {\r\n ...TaxCategory\r\n }\r\n }\r\n ${TAX_CATEGORY_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_TAX_CATEGORY = gql`\r\n mutation UpdateTaxCategory($input: UpdateTaxCategoryInput!) {\r\n updateTaxCategory(input: $input) {\r\n ...TaxCategory\r\n }\r\n }\r\n ${TAX_CATEGORY_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_TAX_CATEGORY = gql`\r\n mutation DeleteTaxCategory($id: ID!) {\r\n deleteTaxCategory(id: $id) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const TAX_RATE_FRAGMENT = gql`\r\n fragment TaxRate on TaxRate {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n enabled\r\n value\r\n category {\r\n id\r\n name\r\n }\r\n zone {\r\n id\r\n name\r\n }\r\n customerGroup {\r\n id\r\n name\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_TAX_RATE_LIST = gql`\r\n query GetTaxRateList($options: TaxRateListOptions) {\r\n taxRates(options: $options) {\r\n items {\r\n ...TaxRate\r\n }\r\n totalItems\r\n }\r\n }\r\n ${TAX_RATE_FRAGMENT}\r\n`;\r\n\r\nexport const GET_TAX_RATE_LIST_SIMPLE = gql`\r\n query GetTaxRateListSimple($options: TaxRateListOptions) {\r\n taxRates(options: $options) {\r\n items {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n enabled\r\n value\r\n category {\r\n id\r\n name\r\n }\r\n zone {\r\n id\r\n name\r\n }\r\n }\r\n totalItems\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_TAX_RATE = gql`\r\n query GetTaxRate($id: ID!) {\r\n taxRate(id: $id) {\r\n ...TaxRate\r\n }\r\n }\r\n ${TAX_RATE_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_TAX_RATE = gql`\r\n mutation CreateTaxRate($input: CreateTaxRateInput!) {\r\n createTaxRate(input: $input) {\r\n ...TaxRate\r\n }\r\n }\r\n ${TAX_RATE_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_TAX_RATE = gql`\r\n mutation UpdateTaxRate($input: UpdateTaxRateInput!) {\r\n updateTaxRate(input: $input) {\r\n ...TaxRate\r\n }\r\n }\r\n ${TAX_RATE_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_TAX_RATE = gql`\r\n mutation DeleteTaxRate($id: ID!) {\r\n deleteTaxRate(id: $id) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const CHANNEL_FRAGMENT = gql`\r\n fragment Channel on Channel {\r\n id\r\n createdAt\r\n updatedAt\r\n code\r\n token\r\n pricesIncludeTax\r\n currencyCode\r\n defaultLanguageCode\r\n defaultShippingZone {\r\n id\r\n name\r\n }\r\n defaultTaxZone {\r\n id\r\n name\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_CHANNELS = gql`\r\n query GetChannels {\r\n channels {\r\n ...Channel\r\n }\r\n }\r\n ${CHANNEL_FRAGMENT}\r\n`;\r\n\r\nexport const GET_CHANNEL = gql`\r\n query GetChannel($id: ID!) {\r\n channel(id: $id) {\r\n ...Channel\r\n }\r\n }\r\n ${CHANNEL_FRAGMENT}\r\n`;\r\n\r\nexport const GET_ACTIVE_CHANNEL = gql`\r\n query GetActiveChannel {\r\n activeChannel {\r\n ...Channel\r\n }\r\n }\r\n ${CHANNEL_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_CHANNEL = gql`\r\n mutation CreateChannel($input: CreateChannelInput!) {\r\n createChannel(input: $input) {\r\n ...Channel\r\n ...ErrorResult\r\n }\r\n }\r\n ${CHANNEL_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_CHANNEL = gql`\r\n mutation UpdateChannel($input: UpdateChannelInput!) {\r\n updateChannel(input: $input) {\r\n ...Channel\r\n ...ErrorResult\r\n }\r\n }\r\n ${CHANNEL_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_CHANNEL = gql`\r\n mutation DeleteChannel($id: ID!) {\r\n deleteChannel(id: $id) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const PAYMENT_METHOD_FRAGMENT = gql`\r\n fragment PaymentMethod on PaymentMethod {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n code\r\n description\r\n enabled\r\n checker {\r\n ...ConfigurableOperation\r\n }\r\n handler {\r\n ...ConfigurableOperation\r\n }\r\n }\r\n ${CONFIGURABLE_OPERATION_FRAGMENT}\r\n`;\r\n\r\nexport const GET_PAYMENT_METHOD_LIST = gql`\r\n query GetPaymentMethodList($options: PaymentMethodListOptions!) {\r\n paymentMethods(options: $options) {\r\n items {\r\n ...PaymentMethod\r\n }\r\n totalItems\r\n }\r\n }\r\n ${PAYMENT_METHOD_FRAGMENT}\r\n`;\r\n\r\nexport const GET_PAYMENT_METHOD_OPERATIONS = gql`\r\n query GetPaymentMethodOperations {\r\n paymentMethodEligibilityCheckers {\r\n ...ConfigurableOperationDef\r\n }\r\n paymentMethodHandlers {\r\n ...ConfigurableOperationDef\r\n }\r\n }\r\n ${CONFIGURABLE_OPERATION_DEF_FRAGMENT}\r\n`;\r\n\r\nexport const GET_PAYMENT_METHOD = gql`\r\n query GetPaymentMethod($id: ID!) {\r\n paymentMethod(id: $id) {\r\n ...PaymentMethod\r\n }\r\n }\r\n ${PAYMENT_METHOD_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_PAYMENT_METHOD = gql`\r\n mutation CreatePaymentMethod($input: CreatePaymentMethodInput!) {\r\n createPaymentMethod(input: $input) {\r\n ...PaymentMethod\r\n }\r\n }\r\n ${PAYMENT_METHOD_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_PAYMENT_METHOD = gql`\r\n mutation UpdatePaymentMethod($input: UpdatePaymentMethodInput!) {\r\n updatePaymentMethod(input: $input) {\r\n ...PaymentMethod\r\n }\r\n }\r\n ${PAYMENT_METHOD_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_PAYMENT_METHOD = gql`\r\n mutation DeletePaymentMethod($id: ID!, $force: Boolean) {\r\n deletePaymentMethod(id: $id, force: $force) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const GLOBAL_SETTINGS_FRAGMENT = gql`\r\n fragment GlobalSettings on GlobalSettings {\r\n id\r\n availableLanguages\r\n trackInventory\r\n outOfStockThreshold\r\n serverConfig {\r\n permissions {\r\n name\r\n description\r\n assignable\r\n }\r\n orderProcess {\r\n name\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_GLOBAL_SETTINGS = gql`\r\n query GetGlobalSettings {\r\n globalSettings {\r\n ...GlobalSettings\r\n }\r\n }\r\n ${GLOBAL_SETTINGS_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_GLOBAL_SETTINGS = gql`\r\n mutation UpdateGlobalSettings($input: UpdateGlobalSettingsInput!) {\r\n updateGlobalSettings(input: $input) {\r\n ...GlobalSettings\r\n ...ErrorResult\r\n }\r\n }\r\n ${GLOBAL_SETTINGS_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const CUSTOM_FIELD_CONFIG_FRAGMENT = gql`\r\n fragment CustomFieldConfig on CustomField {\r\n name\r\n type\r\n list\r\n description {\r\n languageCode\r\n value\r\n }\r\n label {\r\n languageCode\r\n value\r\n }\r\n readonly\r\n nullable\r\n ui\r\n }\r\n`;\r\n\r\nexport const STRING_CUSTOM_FIELD_FRAGMENT = gql`\r\n fragment StringCustomField on StringCustomFieldConfig {\r\n ...CustomFieldConfig\r\n pattern\r\n options {\r\n label {\r\n languageCode\r\n value\r\n }\r\n value\r\n }\r\n }\r\n ${CUSTOM_FIELD_CONFIG_FRAGMENT}\r\n`;\r\nexport const LOCALE_STRING_CUSTOM_FIELD_FRAGMENT = gql`\r\n fragment LocaleStringCustomField on LocaleStringCustomFieldConfig {\r\n ...CustomFieldConfig\r\n pattern\r\n }\r\n ${CUSTOM_FIELD_CONFIG_FRAGMENT}\r\n`;\r\nexport const TEXT_CUSTOM_FIELD_FRAGMENT = gql`\r\n fragment TextCustomField on TextCustomFieldConfig {\r\n ...CustomFieldConfig\r\n }\r\n ${CUSTOM_FIELD_CONFIG_FRAGMENT}\r\n`;\r\nexport const BOOLEAN_CUSTOM_FIELD_FRAGMENT = gql`\r\n fragment BooleanCustomField on BooleanCustomFieldConfig {\r\n ...CustomFieldConfig\r\n }\r\n ${CUSTOM_FIELD_CONFIG_FRAGMENT}\r\n`;\r\nexport const INT_CUSTOM_FIELD_FRAGMENT = gql`\r\n fragment IntCustomField on IntCustomFieldConfig {\r\n ...CustomFieldConfig\r\n intMin: min\r\n intMax: max\r\n intStep: step\r\n }\r\n ${CUSTOM_FIELD_CONFIG_FRAGMENT}\r\n`;\r\nexport const FLOAT_CUSTOM_FIELD_FRAGMENT = gql`\r\n fragment FloatCustomField on FloatCustomFieldConfig {\r\n ...CustomFieldConfig\r\n floatMin: min\r\n floatMax: max\r\n floatStep: step\r\n }\r\n ${CUSTOM_FIELD_CONFIG_FRAGMENT}\r\n`;\r\nexport const DATE_TIME_CUSTOM_FIELD_FRAGMENT = gql`\r\n fragment DateTimeCustomField on DateTimeCustomFieldConfig {\r\n ...CustomFieldConfig\r\n datetimeMin: min\r\n datetimeMax: max\r\n datetimeStep: step\r\n }\r\n ${CUSTOM_FIELD_CONFIG_FRAGMENT}\r\n`;\r\nexport const RELATION_CUSTOM_FIELD_FRAGMENT = gql`\r\n fragment RelationCustomField on RelationCustomFieldConfig {\r\n ...CustomFieldConfig\r\n entity\r\n scalarFields\r\n }\r\n ${CUSTOM_FIELD_CONFIG_FRAGMENT}\r\n`;\r\n\r\nexport const ALL_CUSTOM_FIELDS_FRAGMENT = gql`\r\n fragment CustomFields on CustomField {\r\n ... on StringCustomFieldConfig {\r\n ...StringCustomField\r\n }\r\n ... on LocaleStringCustomFieldConfig {\r\n ...LocaleStringCustomField\r\n }\r\n ... on TextCustomFieldConfig {\r\n ...TextCustomField\r\n }\r\n ... on BooleanCustomFieldConfig {\r\n ...BooleanCustomField\r\n }\r\n ... on IntCustomFieldConfig {\r\n ...IntCustomField\r\n }\r\n ... on FloatCustomFieldConfig {\r\n ...FloatCustomField\r\n }\r\n ... on DateTimeCustomFieldConfig {\r\n ...DateTimeCustomField\r\n }\r\n ... on RelationCustomFieldConfig {\r\n ...RelationCustomField\r\n }\r\n }\r\n ${STRING_CUSTOM_FIELD_FRAGMENT}\r\n ${LOCALE_STRING_CUSTOM_FIELD_FRAGMENT}\r\n ${TEXT_CUSTOM_FIELD_FRAGMENT}\r\n ${BOOLEAN_CUSTOM_FIELD_FRAGMENT}\r\n ${INT_CUSTOM_FIELD_FRAGMENT}\r\n ${FLOAT_CUSTOM_FIELD_FRAGMENT}\r\n ${DATE_TIME_CUSTOM_FIELD_FRAGMENT}\r\n ${RELATION_CUSTOM_FIELD_FRAGMENT}\r\n`;\r\n\r\nexport const GET_SERVER_CONFIG = gql`\r\n query GetServerConfig {\r\n globalSettings {\r\n id\r\n serverConfig {\r\n orderProcess {\r\n name\r\n to\r\n }\r\n permittedAssetTypes\r\n permissions {\r\n name\r\n description\r\n assignable\r\n }\r\n customFieldConfig {\r\n Address {\r\n ...CustomFields\r\n }\r\n Administrator {\r\n ...CustomFields\r\n }\r\n Asset {\r\n ...CustomFields\r\n }\r\n Channel {\r\n ...CustomFields\r\n }\r\n Collection {\r\n ...CustomFields\r\n }\r\n Country {\r\n ...CustomFields\r\n }\r\n Customer {\r\n ...CustomFields\r\n }\r\n CustomerGroup {\r\n ...CustomFields\r\n }\r\n Facet {\r\n ...CustomFields\r\n }\r\n FacetValue {\r\n ...CustomFields\r\n }\r\n Fulfillment {\r\n ...CustomFields\r\n }\r\n GlobalSettings {\r\n ...CustomFields\r\n }\r\n Order {\r\n ...CustomFields\r\n }\r\n OrderLine {\r\n ...CustomFields\r\n }\r\n PaymentMethod {\r\n ...CustomFields\r\n }\r\n Product {\r\n ...CustomFields\r\n }\r\n ProductOption {\r\n ...CustomFields\r\n }\r\n ProductOptionGroup {\r\n ...CustomFields\r\n }\r\n ProductVariant {\r\n ...CustomFields\r\n }\r\n Promotion {\r\n ...CustomFields\r\n }\r\n ShippingMethod {\r\n ...CustomFields\r\n }\r\n TaxCategory {\r\n ...CustomFields\r\n }\r\n TaxRate {\r\n ...CustomFields\r\n }\r\n User {\r\n ...CustomFields\r\n }\r\n Zone {\r\n ...CustomFields\r\n }\r\n }\r\n }\r\n }\r\n }\r\n ${ALL_CUSTOM_FIELDS_FRAGMENT}\r\n`;\r\n\r\nexport const JOB_INFO_FRAGMENT = gql`\r\n fragment JobInfo on Job {\r\n id\r\n createdAt\r\n startedAt\r\n settledAt\r\n queueName\r\n state\r\n isSettled\r\n progress\r\n duration\r\n data\r\n result\r\n error\r\n retries\r\n attempts\r\n }\r\n`;\r\n\r\nexport const GET_JOB_INFO = gql`\r\n query GetJobInfo($id: ID!) {\r\n job(jobId: $id) {\r\n ...JobInfo\r\n }\r\n }\r\n ${JOB_INFO_FRAGMENT}\r\n`;\r\n\r\nexport const GET_JOBS_LIST = gql`\r\n query GetAllJobs($options: JobListOptions) {\r\n jobs(options: $options) {\r\n items {\r\n ...JobInfo\r\n }\r\n totalItems\r\n }\r\n }\r\n ${JOB_INFO_FRAGMENT}\r\n`;\r\n\r\nexport const GET_JOBS_BY_ID = gql`\r\n query GetJobsById($ids: [ID!]!) {\r\n jobsById(jobIds: $ids) {\r\n ...JobInfo\r\n }\r\n }\r\n ${JOB_INFO_FRAGMENT}\r\n`;\r\n\r\nexport const GET_JOB_QUEUE_LIST = gql`\r\n query GetJobQueueList {\r\n jobQueues {\r\n name\r\n running\r\n }\r\n }\r\n`;\r\n\r\nexport const CANCEL_JOB = gql`\r\n mutation CancelJob($id: ID!) {\r\n cancelJob(jobId: $id) {\r\n ...JobInfo\r\n }\r\n }\r\n ${JOB_INFO_FRAGMENT}\r\n`;\r\n\r\nexport const REINDEX = gql`\r\n mutation Reindex {\r\n reindex {\r\n ...JobInfo\r\n }\r\n }\r\n ${JOB_INFO_FRAGMENT}\r\n`;\r\n\r\nexport const GET_PENDING_SEARCH_INDEX_UPDATES = gql`\r\n query GetPendingSearchIndexUpdates {\r\n pendingSearchIndexUpdates\r\n }\r\n`;\r\n\r\nexport const RUN_PENDING_SEARCH_INDEX_UPDATES = gql`\r\n mutation RunPendingSearchIndexUpdates {\r\n runPendingSearchIndexUpdates {\r\n success\r\n }\r\n }\r\n`;\r\n","import { Injectable, Injector } from '@angular/core';\r\n\r\nimport {\r\n CustomFieldConfig,\r\n CustomFields,\r\n GetGlobalSettings,\r\n GetServerConfig,\r\n OrderProcessState,\r\n PermissionDefinition,\r\n ServerConfig,\r\n} from '../common/generated-types';\r\n\r\nimport { GET_GLOBAL_SETTINGS, GET_SERVER_CONFIG } from './definitions/settings-definitions';\r\nimport { BaseDataService } from './providers/base-data.service';\r\n\r\nexport function initializeServerConfigService(serverConfigService: ServerConfigService): () => Promise<any> {\r\n return serverConfigService.init();\r\n}\r\n\r\n/**\r\n * A service which fetches the config from the server upon initialization, and then provides that config\r\n * to the components which require it.\r\n */\r\n@Injectable()\r\nexport class ServerConfigService {\r\n private _serverConfig: ServerConfig = {} as any;\r\n\r\n private get baseDataService() {\r\n return this.injector.get<BaseDataService>(BaseDataService);\r\n }\r\n\r\n constructor(private injector: Injector) {}\r\n\r\n /**\r\n * Fetches the ServerConfig. Should be run as part of the app bootstrap process by attaching\r\n * to the Angular APP_INITIALIZER token.\r\n */\r\n init(): () => Promise<any> {\r\n return () => this.getServerConfig();\r\n }\r\n\r\n /**\r\n * Fetch the ServerConfig. Should be run on app init (in case user is already logged in) and on successful login.\r\n */\r\n getServerConfig() {\r\n return this.baseDataService\r\n .query<GetServerConfig.Query>(GET_SERVER_CONFIG)\r\n .single$.toPromise()\r\n .then(\r\n result => {\r\n this._serverConfig = result.globalSettings.serverConfig;\r\n },\r\n err => {\r\n // Let the error fall through to be caught by the http interceptor.\r\n },\r\n );\r\n }\r\n\r\n getAvailableLanguages() {\r\n return this.baseDataService\r\n .query<GetGlobalSettings.Query>(GET_GLOBAL_SETTINGS, {}, 'cache-first')\r\n .mapSingle(res => res.globalSettings.availableLanguages);\r\n }\r\n\r\n /**\r\n * When any of the GlobalSettings are modified, this method should be called to update the Apollo cache.\r\n */\r\n refreshGlobalSettings() {\r\n return this.baseDataService.query<GetGlobalSettings.Query>(GET_GLOBAL_SETTINGS, {}, 'network-only')\r\n .single$;\r\n }\r\n\r\n /**\r\n * Retrieves the custom field configs for the given entity type.\r\n */\r\n getCustomFieldsFor(type: Exclude<keyof CustomFields, '__typename'>): CustomFieldConfig[] {\r\n return this.serverConfig.customFieldConfig[type] || [];\r\n }\r\n\r\n getOrderProcessStates(): OrderProcessState[] {\r\n return this.serverConfig.orderProcess;\r\n }\r\n\r\n getPermittedAssetTypes(): string[] {\r\n return this.serverConfig.permittedAssetTypes;\r\n }\r\n\r\n getPermissionDefinitions(): PermissionDefinition[] {\r\n return this.serverConfig.permissions;\r\n }\r\n\r\n get serverConfig(): ServerConfig {\r\n return this._serverConfig;\r\n }\r\n}\r\n","import {\r\n DefinitionNode,\r\n DocumentNode,\r\n FieldNode,\r\n FragmentDefinitionNode,\r\n Kind,\r\n SelectionNode,\r\n} from 'graphql';\r\n\r\nimport { CustomFields, RelationCustomField, RelationCustomFieldFragment } from '../../common/generated-types';\r\n\r\n/**\r\n * Given a GraphQL AST (DocumentNode), this function looks for fragment definitions and adds and configured\r\n * custom fields to those fragments.\r\n */\r\nexport function addCustomFields(documentNode: DocumentNode, customFields: CustomFields): DocumentNode {\r\n const fragmentDefs = documentNode.definitions.filter(isFragmentDefinition);\r\n\r\n for (const fragmentDef of fragmentDefs) {\r\n let entityType = fragmentDef.typeCondition.name.value as keyof Pick<\r\n CustomFields,\r\n Exclude<keyof CustomFields, '__typename'>\r\n >;\r\n\r\n if (entityType === ('OrderAddress' as any)) {\r\n // OrderAddress is a special case of the Address entity, and shares its custom fields\r\n // so we treat it as an alias\r\n entityType = 'Address';\r\n }\r\n\r\n const customFieldsForType = customFields[entityType];\r\n if (customFieldsForType && customFieldsForType.length) {\r\n (fragmentDef.selectionSet.selections as SelectionNode[]).push({\r\n name: {\r\n kind: Kind.NAME,\r\n value: 'customFields',\r\n },\r\n kind: Kind.FIELD,\r\n selectionSet: {\r\n kind: Kind.SELECTION_SET,\r\n selections: customFieldsForType.map(customField => {\r\n return {\r\n kind: Kind.FIELD,\r\n name: {\r\n kind: Kind.NAME,\r\n value: customField.name,\r\n },\r\n // For \"relation\" custom fields, we need to also select\r\n // all the scalar fields of the related type\r\n ...(customField.type === 'relation'\r\n ? {\r\n selectionSet: {\r\n kind: Kind.SELECTION_SET,\r\n selections: (customField as RelationCustomFieldFragment).scalarFields.map(\r\n f => ({\r\n kind: Kind.FIELD,\r\n name: { kind: Kind.NAME, value: f },\r\n }),\r\n ),\r\n },\r\n }\r\n : {}),\r\n } as FieldNode;\r\n }),\r\n },\r\n });\r\n\r\n const localeStrings = customFieldsForType.filter(field => field.type === 'localeString');\r\n\r\n const translationsField = fragmentDef.selectionSet.selections\r\n .filter(isFieldNode)\r\n .find(field => field.name.value === 'translations');\r\n\r\n if (localeStrings.length && translationsField && translationsField.selectionSet) {\r\n (translationsField.selectionSet.selections as SelectionNode[]).push({\r\n name: {\r\n kind: Kind.NAME,\r\n value: 'customFields',\r\n },\r\n kind: Kind.FIELD,\r\n selectionSet: {\r\n kind: Kind.SELECTION_SET,\r\n selections: localeStrings.map(customField => {\r\n return {\r\n kind: Kind.FIELD,\r\n name: {\r\n kind: Kind.NAME,\r\n value: customField.name,\r\n },\r\n } as FieldNode;\r\n }),\r\n },\r\n });\r\n }\r\n }\r\n }\r\n\r\n return documentNode;\r\n}\r\n\r\nfunction isFragmentDefinition(value: DefinitionNode): value is FragmentDefinitionNode {\r\n return value.kind === Kind.FRAGMENT_DEFINITION;\r\n}\r\n\r\nfunction isFieldNode(value: SelectionNode): value is FieldNode {\r\n return value.kind === Kind.FIELD;\r\n}\r\n","import { simpleDeepClone } from '@vendure/common/lib/simple-deep-clone';\r\nimport { DocumentNode, getOperationAST, NamedTypeNode, TypeNode } from 'graphql';\r\n\r\nimport { CustomFieldConfig } from '../../common/generated-types';\r\n\r\nconst CREATE_ENTITY_REGEX = /Create([A-Za-z]+)Input/;\r\nconst UPDATE_ENTITY_REGEX = /Update([A-Za-z]+)Input/;\r\n\r\ntype InputWithOptionalCustomFields = Record<string, any> & {\r\n customFields?: Record<string, any>;\r\n};\r\ntype InputWithCustomFields = Record<string, any> & {\r\n customFields: Record<string, any>;\r\n};\r\n\r\ntype EntityInput = InputWithOptionalCustomFields & {\r\n translations?: InputWithOptionalCustomFields[];\r\n};\r\n\r\n/**\r\n * Checks the current documentNode for an operation with a variable named \"Create<Entity>Input\" or \"Update<Entity>Input\"\r\n * and if a match is found, returns the <Entity> name.\r\n */\r\nexport function isEntityCreateOrUpdateMutation(documentNode: DocumentNode): string | undefined {\r\n const operationDef = getOperationAST(documentNode, null);\r\n if (operationDef && operationDef.variableDefinitions) {\r\n for (const variableDef of operationDef.variableDefinitions) {\r\n const namedType = extractInputType(variableDef.type);\r\n const inputTypeName = namedType.name.value;\r\n\r\n // special cases which don't follow the usual pattern\r\n if (inputTypeName === 'UpdateActiveAdministratorInput') {\r\n return 'Administrator';\r\n }\r\n if (inputTypeName === 'ModifyOrderInput') {\r\n return 'Order';\r\n }\r\n if (\r\n inputTypeName === 'AddItemToDraftOrderInput' ||\r\n inputTypeName === 'AdjustDraftOrderLineInput'\r\n ) {\r\n return 'OrderLine';\r\n }\r\n\r\n const createMatch = inputTypeName.match(CREATE_ENTITY_REGEX);\r\n if (createMatch) {\r\n return createMatch[1];\r\n }\r\n const updateMatch = inputTypeName.match(UPDATE_ENTITY_REGEX);\r\n if (updateMatch) {\r\n return updateMatch[1];\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction extractInputType(type: TypeNode): NamedTypeNode {\r\n if (type.kind === 'NonNullType') {\r\n return extractInputType(type.type);\r\n }\r\n if (type.kind === 'ListType') {\r\n return extractInputType(type.type);\r\n }\r\n return type;\r\n}\r\n\r\n/**\r\n * Removes any `readonly` custom fields from an entity (including its translations).\r\n * To be used before submitting the entity for a create or update request.\r\n */\r\nexport function removeReadonlyCustomFields(\r\n variables: { input?: EntityInput | EntityInput[] } | EntityInput | EntityInput[],\r\n customFieldConfig: CustomFieldConfig[],\r\n): { input?: EntityInput | EntityInput[] } | EntityInput | EntityInput[] {\r\n if (!Array.isArray(variables)) {\r\n if (Array.isArray(variables.input)) {\r\n for (const input of variables.input) {\r\n removeReadonly(input, customFieldConfig);\r\n }\r\n } else {\r\n removeReadonly(variables.input, customFieldConfig);\r\n }\r\n } else {\r\n for (const input of variables) {\r\n removeReadonly(input, customFieldConfig);\r\n }\r\n }\r\n return removeReadonly(variables, customFieldConfig);\r\n}\r\n\r\nfunction removeReadonly(input: InputWithOptionalCustomFields, customFieldConfig: CustomFieldConfig[]) {\r\n for (const field of customFieldConfig) {\r\n if (field.readonly) {\r\n if (field.type === 'localeString') {\r\n if (hasTranslations(input)) {\r\n for (const translation of input.translations) {\r\n if (\r\n hasCustomFields(translation) &&\r\n translation.customFields[field.name] !== undefined\r\n ) {\r\n delete translation.customFields[field.name];\r\n }\r\n }\r\n }\r\n } else {\r\n if (hasCustomFields(input) && input.customFields[field.name] !== undefined) {\r\n delete input.customFields[field.name];\r\n }\r\n }\r\n }\r\n }\r\n return input;\r\n}\r\n\r\nfunction hasCustomFields(input: any): input is InputWithCustomFields {\r\n return input != null && input.hasOwnProperty('customFields');\r\n}\r\n\r\nfunction hasTranslations(input: any): input is { translations: InputWithOptionalCustomFields[] } {\r\n return input != null && input.hasOwnProperty('translations');\r\n}\r\n","import { getGraphQlInputName } from '@vendure/common/lib/shared-utils';\r\nimport { simpleDeepClone } from '@vendure/common/lib/simple-deep-clone';\r\n\r\nimport { CustomFieldConfig } from '../../common/generated-types';\r\n\r\n/**\r\n * Transforms any custom field \"relation\" type inputs into the corresponding `<name>Id` format,\r\n * as expected by the server.\r\n */\r\nexport function transformRelationCustomFieldInputs<\r\n T extends { input?: Record<string, any> | Array<Record<string, any>> } & Record<string, any> = any\r\n>(variables: T, customFieldConfig: CustomFieldConfig[]): T {\r\n if (variables.input) {\r\n if (Array.isArray(variables.input)) {\r\n for (const item of variables.input) {\r\n transformRelations(item, customFieldConfig);\r\n }\r\n } else {\r\n transformRelations(variables.input, customFieldConfig);\r\n }\r\n }\r\n return transformRelations(variables, customFieldConfig);\r\n}\r\n\r\n/**\r\n * @description\r\n * When persisting custom fields, we need to send just the IDs of the relations,\r\n * rather than the objects themselves.\r\n */\r\nfunction transformRelations<T>(input: T, customFieldConfig: CustomFieldConfig[]) {\r\n for (const field of customFieldConfig) {\r\n if (field.type === 'relation') {\r\n if (hasCustomFields(input)) {\r\n const entityValue = input.customFields[field.name];\r\n if (input.customFields.hasOwnProperty(field.name)) {\r\n delete input.customFields[field.name];\r\n input.customFields[getGraphQlInputName(field)] =\r\n field.list && Array.isArray(entityValue)\r\n ? entityValue.map(v => v?.id)\r\n : entityValue === null\r\n ? null\r\n : entityValue?.id;\r\n }\r\n }\r\n }\r\n }\r\n return input;\r\n}\r\n\r\nfunction hasCustomFields(input: any): input is { customFields: { [key: string]: any } } {\r\n return input != null && input.hasOwnProperty('customFields') && typeof input.customFields === 'object';\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { DataProxy, MutationUpdaterFn, WatchQueryFetchPolicy } from '@apollo/client/core';\r\nimport { simpleDeepClone } from '@vendure/common/lib/simple-deep-clone';\r\nimport { Apollo } from 'apollo-angular';\r\nimport { DocumentNode } from 'graphql/language/ast';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { CustomFields } from '../../common/generated-types';\r\nimport { LocalStorageService } from '../../providers/local-storage/local-storage.service';\r\nimport { QueryResult } from '../query-result';\r\nimport { ServerConfigService } from '../server-config';\r\nimport { addCustomFields } from '../utils/add-custom-fields';\r\nimport {\r\n isEntityCreateOrUpdateMutation,\r\n removeReadonlyCustomFields,\r\n} from '../utils/remove-readonly-custom-fields';\r\nimport { transformRelationCustomFieldInputs } from '../utils/transform-relation-custom-field-inputs';\r\n\r\n@Injectable()\r\nexport class BaseDataService {\r\n constructor(\r\n private apollo: Apollo,\r\n private httpClient: HttpClient,\r\n private localStorageService: LocalStorageService,\r\n private serverConfigService: ServerConfigService,\r\n ) {}\r\n\r\n private get customFields(): CustomFields {\r\n return this.serverConfigService.serverConfig.customFieldConfig || {};\r\n }\r\n\r\n /**\r\n * Performs a GraphQL watch query\r\n */\r\n query<T, V = Record<string, any>>(\r\n query: DocumentNode,\r\n variables?: V,\r\n fetchPolicy: WatchQueryFetchPolicy = 'cache-and-network',\r\n ): QueryResult<T, V> {\r\n const withCustomFields = addCustomFields(query, this.customFields);\r\n const queryRef = this.apollo.watchQuery<T, V>({\r\n query: withCustomFields,\r\n variables,\r\n fetchPolicy,\r\n });\r\n const queryResult = new QueryResult<T, any>(queryRef, this.apollo);\r\n return queryResult;\r\n }\r\n\r\n /**\r\n * Performs a GraphQL mutation\r\n */\r\n mutate<T, V = Record<string, any>>(\r\n mutation: DocumentNode,\r\n variables?: V,\r\n update?: MutationUpdaterFn<T>,\r\n ): Observable<T> {\r\n const withCustomFields = addCustomFields(mutation, this.customFields);\r\n const withoutReadonlyFields = this.prepareCustomFields(mutation, variables);\r\n\r\n return this.apollo\r\n .mutate<T, V>({\r\n mutation: withCustomFields,\r\n variables: withoutReadonlyFields,\r\n update,\r\n })\r\n .pipe(map(result => result.data as T));\r\n }\r\n\r\n private prepareCustomFields<V>(mutation: DocumentNode, variables: V): V {\r\n const entity = isEntityCreateOrUpdateMutation(mutation);\r\n if (entity) {\r\n const customFieldConfig = this.customFields[entity];\r\n if (variables && customFieldConfig) {\r\n let variablesClone = simpleDeepClone(variables as any);\r\n variablesClone = removeReadonlyCustomFields(variablesClone, customFieldConfig);\r\n variablesClone = transformRelationCustomFieldInputs(variablesClone, customFieldConfig);\r\n return variablesClone;\r\n }\r\n }\r\n return variables;\r\n }\r\n}\r\n","import {\r\n CurrentUserChannel,\r\n CurrentUserChannelInput,\r\n GetNetworkStatus,\r\n GetUiState,\r\n GetUserStatus,\r\n LanguageCode,\r\n RequestCompleted,\r\n RequestStarted,\r\n SetActiveChannel,\r\n SetAsLoggedIn,\r\n SetContentLanguage,\r\n SetDisplayUiExtensionPoints,\r\n SetUiLanguage,\r\n SetUiLocale,\r\n SetUiTheme,\r\n UpdateUserChannels,\r\n} from '../../common/generated-types';\r\nimport {\r\n GET_NEWTORK_STATUS,\r\n GET_UI_STATE,\r\n GET_USER_STATUS,\r\n REQUEST_COMPLETED,\r\n REQUEST_STARTED,\r\n SET_ACTIVE_CHANNEL,\r\n SET_AS_LOGGED_IN,\r\n SET_AS_LOGGED_OUT,\r\n SET_CONTENT_LANGUAGE,\r\n SET_DISPLAY_UI_EXTENSION_POINTS,\r\n SET_UI_LANGUAGE_AND_LOCALE,\r\n SET_UI_LOCALE,\r\n SET_UI_THEME,\r\n UPDATE_USER_CHANNELS,\r\n} from '../definitions/client-definitions';\r\n\r\nimport { BaseDataService } from './base-data.service';\r\n\r\n/**\r\n * Note: local queries all have a fetch-policy of \"cache-first\" explicitly specified due to:\r\n * https://github.com/apollographql/apollo-link-state/issues/236\r\n */\r\nexport class ClientDataService {\r\n constructor(private baseDataService: BaseDataService) {}\r\n\r\n startRequest() {\r\n return this.baseDataService.mutate<RequestStarted.Mutation>(REQUEST_STARTED);\r\n }\r\n\r\n completeRequest() {\r\n return this.baseDataService.mutate<RequestCompleted.Mutation>(REQUEST_COMPLETED);\r\n }\r\n\r\n getNetworkStatus() {\r\n return this.baseDataService.query<GetNetworkStatus.Query>(GET_NEWTORK_STATUS, {}, 'cache-first');\r\n }\r\n\r\n loginSuccess(username: string, activeChannelId: string, channels: CurrentUserChannel[]) {\r\n return this.baseDataService.mutate<SetAsLoggedIn.Mutation, SetAsLoggedIn.Variables>(\r\n SET_AS_LOGGED_IN,\r\n {\r\n input: {\r\n username,\r\n loginTime: Date.now().toString(),\r\n activeChannelId,\r\n channels,\r\n },\r\n },\r\n );\r\n }\r\n\r\n logOut() {\r\n return this.baseDataService.mutate(SET_AS_LOGGED_OUT);\r\n }\r\n\r\n userStatus() {\r\n return this.baseDataService.query<GetUserStatus.Query>(GET_USER_STATUS, {}, 'cache-first');\r\n }\r\n\r\n uiState() {\r\n return this.baseDataService.query<GetUiState.Query>(GET_UI_STATE, {}, 'cache-first');\r\n }\r\n\r\n setUiLanguage(languageCode: LanguageCode, locale?: string) {\r\n return this.baseDataService.mutate<SetUiLanguage.Mutation, SetUiLanguage.Variables>(\r\n SET_UI_LANGUAGE_AND_LOCALE,\r\n {\r\n languageCode,\r\n locale,\r\n },\r\n );\r\n }\r\n\r\n setUiLocale(locale: string | undefined) {\r\n return this.baseDataService.mutate<SetUiLocale.Mutation, SetUiLocale.Variables>(SET_UI_LOCALE, {\r\n locale,\r\n });\r\n }\r\n\r\n setContentLanguage(languageCode: LanguageCode) {\r\n return this.baseDataService.mutate<SetContentLanguage.Mutation, SetContentLanguage.Variables>(\r\n SET_CONTENT_LANGUAGE,\r\n {\r\n languageCode,\r\n },\r\n );\r\n }\r\n\r\n setUiTheme(theme: string) {\r\n return this.baseDataService.mutate<SetUiTheme.Mutation, SetUiTheme.Variables>(SET_UI_THEME, {\r\n theme,\r\n });\r\n }\r\n\r\n setDisplayUiExtensionPoints(display: boolean) {\r\n return this.baseDataService.mutate<\r\n SetDisplayUiExtensionPoints.Mutation,\r\n SetDisplayUiExtensionPoints.Variables\r\n >(SET_DISPLAY_UI_EXTENSION_POINTS, {\r\n display,\r\n });\r\n }\r\n\r\n setActiveChannel(channelId: string) {\r\n return this.baseDataService.mutate<SetActiveChannel.Mutation, SetActiveChannel.Variables>(\r\n SET_ACTIVE_CHANNEL,\r\n {\r\n channelId,\r\n },\r\n );\r\n }\r\n\r\n updateUserChannels(channels: CurrentUserChannelInput[]) {\r\n return this.baseDataService.mutate<UpdateUserChannels.Mutation, UpdateUserChannels.Variables>(\r\n UPDATE_USER_CHANNELS,\r\n {\r\n channels,\r\n },\r\n );\r\n }\r\n}\r\n","import { gql } from 'apollo-angular';\r\n\r\nimport { ERROR_RESULT_FRAGMENT } from './shared-definitions';\r\n\r\nexport const ASSET_FRAGMENT = gql`\r\n fragment Asset on Asset {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n fileSize\r\n mimeType\r\n type\r\n preview\r\n source\r\n width\r\n height\r\n focalPoint {\r\n x\r\n y\r\n }\r\n }\r\n`;\r\n\r\nexport const TAG_FRAGMENT = gql`\r\n fragment Tag on Tag {\r\n id\r\n value\r\n }\r\n`;\r\n\r\nexport const PRODUCT_OPTION_GROUP_FRAGMENT = gql`\r\n fragment ProductOptionGroup on ProductOptionGroup {\r\n id\r\n createdAt\r\n updatedAt\r\n code\r\n languageCode\r\n name\r\n translations {\r\n id\r\n languageCode\r\n name\r\n }\r\n }\r\n`;\r\n\r\nexport const PRODUCT_OPTION_FRAGMENT = gql`\r\n fragment ProductOption on ProductOption {\r\n id\r\n createdAt\r\n updatedAt\r\n code\r\n languageCode\r\n name\r\n groupId\r\n translations {\r\n id\r\n languageCode\r\n name\r\n }\r\n }\r\n`;\r\n\r\nexport const PRODUCT_VARIANT_FRAGMENT = gql`\r\n fragment ProductVariant on ProductVariant {\r\n id\r\n createdAt\r\n updatedAt\r\n enabled\r\n languageCode\r\n name\r\n price\r\n currencyCode\r\n priceWithTax\r\n stockOnHand\r\n stockAllocated\r\n trackInventory\r\n outOfStockThreshold\r\n useGlobalOutOfStockThreshold\r\n taxRateApplied {\r\n id\r\n name\r\n value\r\n }\r\n taxCategory {\r\n id\r\n name\r\n }\r\n sku\r\n options {\r\n ...ProductOption\r\n }\r\n facetValues {\r\n id\r\n code\r\n name\r\n facet {\r\n id\r\n name\r\n }\r\n }\r\n featuredAsset {\r\n ...Asset\r\n }\r\n assets {\r\n ...Asset\r\n }\r\n translations {\r\n id\r\n languageCode\r\n name\r\n }\r\n channels {\r\n id\r\n code\r\n }\r\n }\r\n ${PRODUCT_OPTION_FRAGMENT}\r\n ${ASSET_FRAGMENT}\r\n`;\r\n\r\nexport const PRODUCT_DETAIL_FRAGMENT = gql`\r\n fragment ProductDetail on Product {\r\n id\r\n createdAt\r\n updatedAt\r\n enabled\r\n languageCode\r\n name\r\n slug\r\n description\r\n featuredAsset {\r\n ...Asset\r\n }\r\n assets {\r\n ...Asset\r\n }\r\n translations {\r\n id\r\n languageCode\r\n name\r\n slug\r\n description\r\n }\r\n optionGroups {\r\n ...ProductOptionGroup\r\n }\r\n facetValues {\r\n id\r\n code\r\n name\r\n facet {\r\n id\r\n name\r\n }\r\n }\r\n channels {\r\n id\r\n code\r\n }\r\n }\r\n ${PRODUCT_OPTION_GROUP_FRAGMENT}\r\n ${ASSET_FRAGMENT}\r\n`;\r\n\r\nexport const PRODUCT_OPTION_GROUP_WITH_OPTIONS_FRAGMENT = gql`\r\n fragment ProductOptionGroupWithOptions on ProductOptionGroup {\r\n id\r\n createdAt\r\n updatedAt\r\n languageCode\r\n code\r\n name\r\n translations {\r\n id\r\n name\r\n }\r\n options {\r\n id\r\n languageCode\r\n name\r\n code\r\n translations {\r\n name\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const UPDATE_PRODUCT = gql`\r\n mutation UpdateProduct($input: UpdateProductInput!, $variantListOptions: ProductVariantListOptions) {\r\n updateProduct(input: $input) {\r\n ...ProductDetail\r\n variantList(options: $variantListOptions) {\r\n items {\r\n ...ProductVariant\r\n }\r\n totalItems\r\n }\r\n }\r\n }\r\n ${PRODUCT_DETAIL_FRAGMENT}\r\n ${PRODUCT_VARIANT_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_PRODUCT = gql`\r\n mutation CreateProduct($input: CreateProductInput!, $variantListOptions: ProductVariantListOptions) {\r\n createProduct(input: $input) {\r\n ...ProductDetail\r\n variantList(options: $variantListOptions) {\r\n items {\r\n ...ProductVariant\r\n }\r\n totalItems\r\n }\r\n }\r\n }\r\n ${PRODUCT_DETAIL_FRAGMENT}\r\n ${PRODUCT_VARIANT_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_PRODUCT = gql`\r\n mutation DeleteProduct($id: ID!) {\r\n deleteProduct(id: $id) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const DELETE_PRODUCTS = gql`\r\n mutation DeleteProducts($ids: [ID!]!) {\r\n deleteProducts(ids: $ids) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const CREATE_PRODUCT_VARIANTS = gql`\r\n mutation CreateProductVariants($input: [CreateProductVariantInput!]!) {\r\n createProductVariants(input: $input) {\r\n ...ProductVariant\r\n }\r\n }\r\n ${PRODUCT_VARIANT_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_PRODUCT_VARIANTS = gql`\r\n mutation UpdateProductVariants($input: [UpdateProductVariantInput!]!) {\r\n updateProductVariants(input: $input) {\r\n ...ProductVariant\r\n }\r\n }\r\n ${PRODUCT_VARIANT_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_PRODUCT_OPTION_GROUP = gql`\r\n mutation CreateProductOptionGroup($input: CreateProductOptionGroupInput!) {\r\n createProductOptionGroup(input: $input) {\r\n ...ProductOptionGroupWithOptions\r\n }\r\n }\r\n ${PRODUCT_OPTION_GROUP_WITH_OPTIONS_FRAGMENT}\r\n`;\r\n\r\nexport const GET_PRODUCT_OPTION_GROUP = gql`\r\n query GetProductOptionGroup($id: ID!) {\r\n productOptionGroup(id: $id) {\r\n ...ProductOptionGroupWithOptions\r\n }\r\n }\r\n ${PRODUCT_OPTION_GROUP_WITH_OPTIONS_FRAGMENT}\r\n`;\r\n\r\nexport const ADD_OPTION_TO_GROUP = gql`\r\n mutation AddOptionToGroup($input: CreateProductOptionInput!) {\r\n createProductOption(input: $input) {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n code\r\n groupId\r\n }\r\n }\r\n`;\r\n\r\nexport const ADD_OPTION_GROUP_TO_PRODUCT = gql`\r\n mutation AddOptionGroupToProduct($productId: ID!, $optionGroupId: ID!) {\r\n addOptionGroupToProduct(productId: $productId, optionGroupId: $optionGroupId) {\r\n id\r\n createdAt\r\n updatedAt\r\n optionGroups {\r\n id\r\n createdAt\r\n updatedAt\r\n code\r\n options {\r\n id\r\n createdAt\r\n updatedAt\r\n code\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const REMOVE_OPTION_GROUP_FROM_PRODUCT = gql`\r\n mutation RemoveOptionGroupFromProduct($productId: ID!, $optionGroupId: ID!) {\r\n removeOptionGroupFromProduct(productId: $productId, optionGroupId: $optionGroupId) {\r\n ... on Product {\r\n id\r\n createdAt\r\n updatedAt\r\n optionGroups {\r\n id\r\n createdAt\r\n updatedAt\r\n code\r\n options {\r\n id\r\n createdAt\r\n updatedAt\r\n code\r\n }\r\n }\r\n }\r\n ...ErrorResult\r\n }\r\n }\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const GET_PRODUCT_WITH_VARIANTS = gql`\r\n query GetProductWithVariants($id: ID!, $variantListOptions: ProductVariantListOptions) {\r\n product(id: $id) {\r\n ...ProductDetail\r\n variantList(options: $variantListOptions) {\r\n items {\r\n ...ProductVariant\r\n }\r\n totalItems\r\n }\r\n }\r\n }\r\n ${PRODUCT_DETAIL_FRAGMENT}\r\n ${PRODUCT_VARIANT_FRAGMENT}\r\n`;\r\n\r\nexport const GET_PRODUCT_SIMPLE = gql`\r\n query GetProductSimple($id: ID!) {\r\n product(id: $id) {\r\n id\r\n name\r\n featuredAsset {\r\n ...Asset\r\n }\r\n }\r\n }\r\n ${ASSET_FRAGMENT}\r\n`;\r\n\r\nexport const GET_PRODUCT_LIST = gql`\r\n query GetProductList($options: ProductListOptions) {\r\n products(options: $options) {\r\n items {\r\n id\r\n createdAt\r\n updatedAt\r\n enabled\r\n languageCode\r\n name\r\n slug\r\n featuredAsset {\r\n id\r\n createdAt\r\n updatedAt\r\n preview\r\n }\r\n }\r\n totalItems\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_PRODUCT_OPTION_GROUPS = gql`\r\n query GetProductOptionGroups($filterTerm: String) {\r\n productOptionGroups(filterTerm: $filterTerm) {\r\n id\r\n createdAt\r\n updatedAt\r\n languageCode\r\n code\r\n name\r\n options {\r\n id\r\n createdAt\r\n updatedAt\r\n languageCode\r\n code\r\n name\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_ASSET_LIST = gql`\r\n query GetAssetList($options: AssetListOptions) {\r\n assets(options: $options) {\r\n items {\r\n ...Asset\r\n tags {\r\n ...Tag\r\n }\r\n }\r\n totalItems\r\n }\r\n }\r\n ${ASSET_FRAGMENT}\r\n ${TAG_FRAGMENT}\r\n`;\r\n\r\nexport const GET_ASSET = gql`\r\n query GetAsset($id: ID!) {\r\n asset(id: $id) {\r\n ...Asset\r\n tags {\r\n ...Tag\r\n }\r\n }\r\n }\r\n ${ASSET_FRAGMENT}\r\n ${TAG_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_ASSETS = gql`\r\n mutation CreateAssets($input: [CreateAssetInput!]!) {\r\n createAssets(input: $input) {\r\n ...Asset\r\n ... on Asset {\r\n tags {\r\n ...Tag\r\n }\r\n }\r\n ... on ErrorResult {\r\n message\r\n }\r\n }\r\n }\r\n ${ASSET_FRAGMENT}\r\n ${TAG_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_ASSET = gql`\r\n mutation UpdateAsset($input: UpdateAssetInput!) {\r\n updateAsset(input: $input) {\r\n ...Asset\r\n tags {\r\n ...Tag\r\n }\r\n }\r\n }\r\n ${ASSET_FRAGMENT}\r\n ${TAG_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_ASSETS = gql`\r\n mutation DeleteAssets($input: DeleteAssetsInput!) {\r\n deleteAssets(input: $input) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const SEARCH_PRODUCTS = gql`\r\n query SearchProducts($input: SearchInput!) {\r\n search(input: $input) {\r\n totalItems\r\n items {\r\n enabled\r\n productId\r\n productName\r\n productAsset {\r\n id\r\n preview\r\n focalPoint {\r\n x\r\n y\r\n }\r\n }\r\n productVariantId\r\n productVariantName\r\n productVariantAsset {\r\n id\r\n preview\r\n focalPoint {\r\n x\r\n y\r\n }\r\n }\r\n sku\r\n channelIds\r\n }\r\n facetValues {\r\n count\r\n facetValue {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n facet {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const PRODUCT_SELECTOR_SEARCH = gql`\r\n query ProductSelectorSearch($term: String!, $take: Int!) {\r\n search(input: { groupByProduct: false, term: $term, take: $take }) {\r\n items {\r\n productVariantId\r\n productVariantName\r\n productAsset {\r\n id\r\n preview\r\n focalPoint {\r\n x\r\n y\r\n }\r\n }\r\n price {\r\n ... on SinglePrice {\r\n value\r\n }\r\n }\r\n priceWithTax {\r\n ... on SinglePrice {\r\n value\r\n }\r\n }\r\n sku\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const UPDATE_PRODUCT_OPTION_GROUP = gql`\r\n mutation UpdateProductOptionGroup($input: UpdateProductOptionGroupInput!) {\r\n updateProductOptionGroup(input: $input) {\r\n ...ProductOptionGroup\r\n }\r\n }\r\n ${PRODUCT_OPTION_GROUP_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_PRODUCT_OPTION = gql`\r\n mutation UpdateProductOption($input: UpdateProductOptionInput!) {\r\n updateProductOption(input: $input) {\r\n ...ProductOption\r\n }\r\n }\r\n ${PRODUCT_OPTION_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_PRODUCT_OPTION = gql`\r\n mutation DeleteProductOption($id: ID!) {\r\n deleteProductOption(id: $id) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const DELETE_PRODUCT_VARIANT = gql`\r\n mutation DeleteProductVariant($id: ID!) {\r\n deleteProductVariant(id: $id) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_PRODUCT_VARIANT_OPTIONS = gql`\r\n query GetProductVariantOptions($id: ID!) {\r\n product(id: $id) {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n optionGroups {\r\n ...ProductOptionGroup\r\n options {\r\n ...ProductOption\r\n }\r\n }\r\n variants {\r\n id\r\n createdAt\r\n updatedAt\r\n enabled\r\n name\r\n sku\r\n price\r\n stockOnHand\r\n enabled\r\n options {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n code\r\n groupId\r\n }\r\n }\r\n }\r\n }\r\n ${PRODUCT_OPTION_GROUP_FRAGMENT}\r\n ${PRODUCT_OPTION_FRAGMENT}\r\n`;\r\n\r\nexport const ASSIGN_PRODUCTS_TO_CHANNEL = gql`\r\n mutation AssignProductsToChannel($input: AssignProductsToChannelInput!) {\r\n assignProductsToChannel(input: $input) {\r\n id\r\n channels {\r\n id\r\n code\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const ASSIGN_VARIANTS_TO_CHANNEL = gql`\r\n mutation AssignVariantsToChannel($input: AssignProductVariantsToChannelInput!) {\r\n assignProductVariantsToChannel(input: $input) {\r\n id\r\n channels {\r\n id\r\n code\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const REMOVE_PRODUCTS_FROM_CHANNEL = gql`\r\n mutation RemoveProductsFromChannel($input: RemoveProductsFromChannelInput!) {\r\n removeProductsFromChannel(input: $input) {\r\n id\r\n channels {\r\n id\r\n code\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const REMOVE_VARIANTS_FROM_CHANNEL = gql`\r\n mutation RemoveVariantsFromChannel($input: RemoveProductVariantsFromChannelInput!) {\r\n removeProductVariantsFromChannel(input: $input) {\r\n id\r\n channels {\r\n id\r\n code\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_PRODUCT_VARIANT = gql`\r\n query GetProductVariant($id: ID!) {\r\n productVariant(id: $id) {\r\n id\r\n name\r\n sku\r\n stockOnHand\r\n stockAllocated\r\n stockLevel\r\n useGlobalOutOfStockThreshold\r\n featuredAsset {\r\n id\r\n preview\r\n focalPoint {\r\n x\r\n y\r\n }\r\n }\r\n price\r\n priceWithTax\r\n product {\r\n id\r\n featuredAsset {\r\n id\r\n preview\r\n focalPoint {\r\n x\r\n y\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_PRODUCT_VARIANT_LIST_SIMPLE = gql`\r\n query GetProductVariantListSimple($options: ProductVariantListOptions!, $productId: ID) {\r\n productVariants(options: $options, productId: $productId) {\r\n items {\r\n id\r\n name\r\n sku\r\n featuredAsset {\r\n id\r\n preview\r\n focalPoint {\r\n x\r\n y\r\n }\r\n }\r\n product {\r\n id\r\n featuredAsset {\r\n id\r\n preview\r\n focalPoint {\r\n x\r\n y\r\n }\r\n }\r\n }\r\n }\r\n totalItems\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_PRODUCT_VARIANT_LIST = gql`\r\n query GetProductVariantList($options: ProductVariantListOptions!, $productId: ID) {\r\n productVariants(options: $options, productId: $productId) {\r\n items {\r\n ...ProductVariant\r\n }\r\n totalItems\r\n }\r\n }\r\n ${PRODUCT_VARIANT_FRAGMENT}\r\n`;\r\n\r\nexport const GET_TAG_LIST = gql`\r\n query GetTagList($options: TagListOptions) {\r\n tags(options: $options) {\r\n items {\r\n ...Tag\r\n }\r\n totalItems\r\n }\r\n }\r\n ${TAG_FRAGMENT}\r\n`;\r\n\r\nexport const GET_TAG = gql`\r\n query GetTag($id: ID!) {\r\n tag(id: $id) {\r\n ...Tag\r\n }\r\n }\r\n ${TAG_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_TAG = gql`\r\n mutation CreateTag($input: CreateTagInput!) {\r\n createTag(input: $input) {\r\n ...Tag\r\n }\r\n }\r\n ${TAG_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_TAG = gql`\r\n mutation UpdateTag($input: UpdateTagInput!) {\r\n updateTag(input: $input) {\r\n ...Tag\r\n }\r\n }\r\n ${TAG_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_TAG = gql`\r\n mutation DeleteTag($id: ID!) {\r\n deleteTag(id: $id) {\r\n message\r\n result\r\n }\r\n }\r\n`;\r\n","import { gql } from 'apollo-angular';\r\n\r\nimport { ASSET_FRAGMENT } from './product-definitions';\r\nimport { CONFIGURABLE_OPERATION_DEF_FRAGMENT, CONFIGURABLE_OPERATION_FRAGMENT } from './shared-definitions';\r\n\r\nexport const GET_COLLECTION_FILTERS = gql`\r\n query GetCollectionFilters {\r\n collectionFilters {\r\n ...ConfigurableOperationDef\r\n }\r\n }\r\n ${CONFIGURABLE_OPERATION_DEF_FRAGMENT}\r\n`;\r\n\r\nexport const COLLECTION_FRAGMENT = gql`\r\n fragment Collection on Collection {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n slug\r\n description\r\n isPrivate\r\n languageCode\r\n breadcrumbs {\r\n id\r\n name\r\n slug\r\n }\r\n featuredAsset {\r\n ...Asset\r\n }\r\n assets {\r\n ...Asset\r\n }\r\n filters {\r\n ...ConfigurableOperation\r\n }\r\n translations {\r\n id\r\n languageCode\r\n name\r\n slug\r\n description\r\n }\r\n parent {\r\n id\r\n name\r\n }\r\n children {\r\n id\r\n name\r\n }\r\n }\r\n ${ASSET_FRAGMENT}\r\n ${CONFIGURABLE_OPERATION_FRAGMENT}\r\n`;\r\n\r\nexport const GET_COLLECTION_LIST = gql`\r\n query GetCollectionList($options: CollectionListOptions) {\r\n collections(options: $options) {\r\n items {\r\n id\r\n name\r\n slug\r\n description\r\n isPrivate\r\n featuredAsset {\r\n ...Asset\r\n }\r\n parent {\r\n id\r\n }\r\n }\r\n totalItems\r\n }\r\n }\r\n ${ASSET_FRAGMENT}\r\n`;\r\n\r\nexport const GET_COLLECTION = gql`\r\n query GetCollection($id: ID!) {\r\n collection(id: $id) {\r\n ...Collection\r\n }\r\n }\r\n ${COLLECTION_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_COLLECTION = gql`\r\n mutation CreateCollection($input: CreateCollectionInput!) {\r\n createCollection(input: $input) {\r\n ...Collection\r\n }\r\n }\r\n ${COLLECTION_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_COLLECTION = gql`\r\n mutation UpdateCollection($input: UpdateCollectionInput!) {\r\n updateCollection(input: $input) {\r\n ...Collection\r\n }\r\n }\r\n ${COLLECTION_FRAGMENT}\r\n`;\r\n\r\nexport const MOVE_COLLECTION = gql`\r\n mutation MoveCollection($input: MoveCollectionInput!) {\r\n moveCollection(input: $input) {\r\n ...Collection\r\n }\r\n }\r\n ${COLLECTION_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_COLLECTION = gql`\r\n mutation DeleteCollection($id: ID!) {\r\n deleteCollection(id: $id) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const DELETE_COLLECTIONS = gql`\r\n mutation DeleteCollections($ids: [ID!]!) {\r\n deleteCollections(ids: $ids) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_COLLECTION_CONTENTS = gql`\r\n query GetCollectionContents($id: ID!, $options: ProductVariantListOptions) {\r\n collection(id: $id) {\r\n id\r\n name\r\n productVariants(options: $options) {\r\n items {\r\n id\r\n productId\r\n name\r\n sku\r\n }\r\n totalItems\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const PREVIEW_COLLECTION_CONTENTS = gql`\r\n query PreviewCollectionContents(\r\n $input: PreviewCollectionVariantsInput!\r\n $options: ProductVariantListOptions\r\n ) {\r\n previewCollectionVariants(input: $input, options: $options) {\r\n items {\r\n id\r\n productId\r\n name\r\n sku\r\n }\r\n totalItems\r\n }\r\n }\r\n`;\r\n\r\nexport const ASSIGN_COLLECTIONS_TO_CHANNEL = gql`\r\n mutation AssignCollectionsToChannel($input: AssignCollectionsToChannelInput!) {\r\n assignCollectionsToChannel(input: $input) {\r\n id\r\n name\r\n }\r\n }\r\n`;\r\n\r\nexport const REMOVE_COLLECTIONS_FROM_CHANNEL = gql`\r\n mutation RemoveCollectionsFromChannel($input: RemoveCollectionsFromChannelInput!) {\r\n removeCollectionsFromChannel(input: $input) {\r\n id\r\n name\r\n }\r\n }\r\n`;\r\n","import { pick } from '@vendure/common/lib/pick';\r\nimport { from } from 'rxjs';\r\nimport { bufferCount, concatMap } from 'rxjs/operators';\r\n\r\nimport {\r\n AssignCollectionsToChannelInput,\r\n AssignCollectionsToChannelMutation,\r\n AssignCollectionsToChannelMutationVariables,\r\n CollectionFilterParameter,\r\n CreateCollection,\r\n CreateCollectionInput,\r\n DeleteCollection,\r\n DeleteCollectionsMutation,\r\n DeleteCollectionsMutationVariables,\r\n GetCollection,\r\n GetCollectionContents,\r\n GetCollectionFilters,\r\n GetCollectionList,\r\n MoveCollection,\r\n MoveCollectionInput,\r\n PreviewCollectionContentsQuery,\r\n PreviewCollectionContentsQueryVariables,\r\n PreviewCollectionVariantsInput,\r\n ProductVariantListOptions,\r\n RemoveCollectionsFromChannelInput,\r\n RemoveCollectionsFromChannelMutation,\r\n RemoveCollectionsFromChannelMutationVariables,\r\n UpdateCollection,\r\n UpdateCollectionInput,\r\n} from '../../common/generated-types';\r\nimport {\r\n ASSIGN_COLLECTIONS_TO_CHANNEL,\r\n CREATE_COLLECTION,\r\n DELETE_COLLECTION,\r\n DELETE_COLLECTIONS,\r\n GET_COLLECTION,\r\n GET_COLLECTION_CONTENTS,\r\n GET_COLLECTION_FILTERS,\r\n GET_COLLECTION_LIST,\r\n MOVE_COLLECTION,\r\n PREVIEW_COLLECTION_CONTENTS,\r\n REMOVE_COLLECTIONS_FROM_CHANNEL,\r\n UPDATE_COLLECTION,\r\n} from '../definitions/collection-definitions';\r\n\r\nimport { BaseDataService } from './base-data.service';\r\n\r\nexport class CollectionDataService {\r\n constructor(private baseDataService: BaseDataService) {}\r\n\r\n getCollectionFilters() {\r\n return this.baseDataService.query<GetCollectionFilters.Query>(GET_COLLECTION_FILTERS);\r\n }\r\n\r\n getCollections(take: number = 10, skip: number = 0) {\r\n return this.baseDataService.query<GetCollectionList.Query, GetCollectionList.Variables>(\r\n GET_COLLECTION_LIST,\r\n {\r\n options: {\r\n take,\r\n skip,\r\n },\r\n },\r\n );\r\n }\r\n\r\n getCollection(id: string) {\r\n return this.baseDataService.query<GetCollection.Query, GetCollection.Variables>(GET_COLLECTION, {\r\n id,\r\n });\r\n }\r\n\r\n createCollection(input: CreateCollectionInput) {\r\n return this.baseDataService.mutate<CreateCollection.Mutation, CreateCollection.Variables>(\r\n CREATE_COLLECTION,\r\n {\r\n input: pick(input, [\r\n 'translations',\r\n 'parentId',\r\n 'assetIds',\r\n 'featuredAssetId',\r\n 'filters',\r\n 'customFields',\r\n ]),\r\n },\r\n );\r\n }\r\n\r\n updateCollection(input: UpdateCollectionInput) {\r\n return this.baseDataService.mutate<UpdateCollection.Mutation, UpdateCollection.Variables>(\r\n UPDATE_COLLECTION,\r\n {\r\n input: pick(input, [\r\n 'id',\r\n 'isPrivate',\r\n 'translations',\r\n 'assetIds',\r\n 'featuredAssetId',\r\n 'filters',\r\n 'customFields',\r\n ]),\r\n },\r\n );\r\n }\r\n\r\n moveCollection(inputs: MoveCollectionInput[]) {\r\n return from(inputs).pipe(\r\n concatMap(input =>\r\n this.baseDataService.mutate<MoveCollection.Mutation, MoveCollection.Variables>(\r\n MOVE_COLLECTION,\r\n { input },\r\n ),\r\n ),\r\n bufferCount(inputs.length),\r\n );\r\n }\r\n\r\n deleteCollection(id: string) {\r\n return this.baseDataService.mutate<DeleteCollection.Mutation, DeleteCollection.Variables>(\r\n DELETE_COLLECTION,\r\n {\r\n id,\r\n },\r\n );\r\n }\r\n\r\n deleteCollections(ids: string[]) {\r\n return this.baseDataService.mutate<DeleteCollectionsMutation, DeleteCollectionsMutationVariables>(\r\n DELETE_COLLECTIONS,\r\n {\r\n ids,\r\n },\r\n );\r\n }\r\n\r\n previewCollectionVariants(input: PreviewCollectionVariantsInput, options: ProductVariantListOptions) {\r\n return this.baseDataService.query<\r\n PreviewCollectionContentsQuery,\r\n PreviewCollectionContentsQueryVariables\r\n >(PREVIEW_COLLECTION_CONTENTS, { input, options });\r\n }\r\n\r\n getCollectionContents(id: string, take: number = 10, skip: number = 0, filterTerm?: string) {\r\n const filter = filterTerm\r\n ? ({ name: { contains: filterTerm } } as CollectionFilterParameter)\r\n : undefined;\r\n return this.baseDataService.query<GetCollectionContents.Query, GetCollectionContents.Variables>(\r\n GET_COLLECTION_CONTENTS,\r\n {\r\n id,\r\n options: {\r\n skip,\r\n take,\r\n filter,\r\n },\r\n },\r\n );\r\n }\r\n\r\n assignCollectionsToChannel(input: AssignCollectionsToChannelInput) {\r\n return this.baseDataService.mutate<\r\n AssignCollectionsToChannelMutation,\r\n AssignCollectionsToChannelMutationVariables\r\n >(ASSIGN_COLLECTIONS_TO_CHANNEL, {\r\n input,\r\n });\r\n }\r\n\r\n removeCollectionsFromChannel(input: RemoveCollectionsFromChannelInput) {\r\n return this.baseDataService.mutate<\r\n RemoveCollectionsFromChannelMutation,\r\n RemoveCollectionsFromChannelMutationVariables\r\n >(REMOVE_COLLECTIONS_FROM_CHANNEL, {\r\n input,\r\n });\r\n }\r\n}\r\n","// tslint:disable\r\nexport type Maybe<T> = T | null;\r\nexport type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };\r\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };\r\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };\r\n/** All built-in and custom scalars, mapped to their actual values */\r\nexport type Scalars = {\r\n ID: string;\r\n String: string;\r\n Boolean: boolean;\r\n Int: number;\r\n Float: number;\r\n /** A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. */\r\n DateTime: any;\r\n /** The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). */\r\n JSON: any;\r\n /** The `Upload` scalar type represents a file upload. */\r\n Upload: any;\r\n};\r\n\r\n\r\nexport type AddFulfillmentToOrderResult = Fulfillment | EmptyOrderLineSelectionError | ItemsAlreadyFulfilledError | InsufficientStockOnHandError | InvalidFulfillmentHandlerError | FulfillmentStateTransitionError | CreateFulfillmentError;\r\n\r\nexport type AddItemInput = {\r\n productVariantId: Scalars['ID'];\r\n quantity: Scalars['Int'];\r\n};\r\n\r\nexport type AddItemToDraftOrderInput = {\r\n productVariantId: Scalars['ID'];\r\n quantity: Scalars['Int'];\r\n};\r\n\r\nexport type AddManualPaymentToOrderResult = Order | ManualPaymentStateError;\r\n\r\nexport type AddNoteToCustomerInput = {\r\n id: Scalars['ID'];\r\n note: Scalars['String'];\r\n isPublic: Scalars['Boolean'];\r\n};\r\n\r\nexport type AddNoteToOrderInput = {\r\n id: Scalars['ID'];\r\n note: Scalars['String'];\r\n isPublic: Scalars['Boolean'];\r\n};\r\n\r\nexport type Address = Node & {\r\n __typename?: 'Address';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n fullName?: Maybe<Scalars['String']>;\r\n company?: Maybe<Scalars['String']>;\r\n streetLine1: Scalars['String'];\r\n streetLine2?: Maybe<Scalars['String']>;\r\n city?: Maybe<Scalars['String']>;\r\n province?: Maybe<Scalars['String']>;\r\n postalCode?: Maybe<Scalars['String']>;\r\n country: Country;\r\n phoneNumber?: Maybe<Scalars['String']>;\r\n defaultShippingAddress?: Maybe<Scalars['Boolean']>;\r\n defaultBillingAddress?: Maybe<Scalars['Boolean']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type AdjustDraftOrderLineInput = {\r\n orderLineId: Scalars['ID'];\r\n quantity: Scalars['Int'];\r\n};\r\n\r\nexport type AdjustOrderLineInput = {\r\n orderLineId: Scalars['ID'];\r\n quantity: Scalars['Int'];\r\n};\r\n\r\nexport type Adjustment = {\r\n __typename?: 'Adjustment';\r\n adjustmentSource: Scalars['String'];\r\n type: AdjustmentType;\r\n description: Scalars['String'];\r\n amount: Scalars['Int'];\r\n};\r\n\r\nexport enum AdjustmentType {\r\n PROMOTION = 'PROMOTION',\r\n DISTRIBUTED_ORDER_PROMOTION = 'DISTRIBUTED_ORDER_PROMOTION',\r\n OTHER = 'OTHER'\r\n}\r\n\r\nexport type Administrator = Node & {\r\n __typename?: 'Administrator';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n firstName: Scalars['String'];\r\n lastName: Scalars['String'];\r\n emailAddress: Scalars['String'];\r\n user: User;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type AdministratorFilterParameter = {\r\n id?: Maybe<IdOperators>;\r\n createdAt?: Maybe<DateOperators>;\r\n updatedAt?: Maybe<DateOperators>;\r\n firstName?: Maybe<StringOperators>;\r\n lastName?: Maybe<StringOperators>;\r\n emailAddress?: Maybe<StringOperators>;\r\n};\r\n\r\nexport type AdministratorList = PaginatedList & {\r\n __typename?: 'AdministratorList';\r\n items: Array<Administrator>;\r\n totalItems: Scalars['Int'];\r\n};\r\n\r\nexport type AdministratorListOptions = {\r\n /** Skips the first n results, for use in pagination */\r\n skip?: Maybe<Scalars['Int']>;\r\n /** Takes n results, for use in pagination */\r\n take?: Maybe<Scalars['Int']>;\r\n /** Specifies which properties to sort the results by */\r\n sort?: Maybe<AdministratorSortParameter>;\r\n /** Allows the results to be filtered */\r\n filter?: Maybe<AdministratorFilterParameter>;\r\n /** Specifies whether multiple \"filter\" arguments should be combines with a logical AND or OR operation. Defaults to AND. */\r\n filterOperator?: Maybe<LogicalOperator>;\r\n};\r\n\r\nexport type AdministratorPaymentInput = {\r\n paymentMethod?: Maybe<Scalars['String']>;\r\n metadata?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type AdministratorRefundInput = {\r\n paymentId: Scalars['ID'];\r\n reason?: Maybe<Scalars['String']>;\r\n};\r\n\r\nexport type AdministratorSortParameter = {\r\n id?: Maybe<SortOrder>;\r\n createdAt?: Maybe<SortOrder>;\r\n updatedAt?: Maybe<SortOrder>;\r\n firstName?: Maybe<SortOrder>;\r\n lastName?: Maybe<SortOrder>;\r\n emailAddress?: Maybe<SortOrder>;\r\n};\r\n\r\nexport type Allocation = Node & StockMovement & {\r\n __typename?: 'Allocation';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n productVariant: ProductVariant;\r\n type: StockMovementType;\r\n quantity: Scalars['Int'];\r\n orderLine: OrderLine;\r\n};\r\n\r\n/** Returned if an attempting to refund an OrderItem which has already been refunded */\r\nexport type AlreadyRefundedError = ErrorResult & {\r\n __typename?: 'AlreadyRefundedError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n refundId: Scalars['ID'];\r\n};\r\n\r\nexport type ApplyCouponCodeResult = Order | CouponCodeExpiredError | CouponCodeInvalidError | CouponCodeLimitError;\r\n\r\nexport type Asset = Node & {\r\n __typename?: 'Asset';\r\n tags: Array<Tag>;\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n name: Scalars['String'];\r\n type: AssetType;\r\n fileSize: Scalars['Int'];\r\n mimeType: Scalars['String'];\r\n width: Scalars['Int'];\r\n height: Scalars['Int'];\r\n source: Scalars['String'];\r\n preview: Scalars['String'];\r\n focalPoint?: Maybe<Coordinate>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type AssetFilterParameter = {\r\n id?: Maybe<IdOperators>;\r\n createdAt?: Maybe<DateOperators>;\r\n updatedAt?: Maybe<DateOperators>;\r\n name?: Maybe<StringOperators>;\r\n type?: Maybe<StringOperators>;\r\n fileSize?: Maybe<NumberOperators>;\r\n mimeType?: Maybe<StringOperators>;\r\n width?: Maybe<NumberOperators>;\r\n height?: Maybe<NumberOperators>;\r\n source?: Maybe<StringOperators>;\r\n preview?: Maybe<StringOperators>;\r\n};\r\n\r\nexport type AssetList = PaginatedList & {\r\n __typename?: 'AssetList';\r\n items: Array<Asset>;\r\n totalItems: Scalars['Int'];\r\n};\r\n\r\nexport type AssetListOptions = {\r\n tags?: Maybe<Array<Scalars['String']>>;\r\n tagsOperator?: Maybe<LogicalOperator>;\r\n /** Skips the first n results, for use in pagination */\r\n skip?: Maybe<Scalars['Int']>;\r\n /** Takes n results, for use in pagination */\r\n take?: Maybe<Scalars['Int']>;\r\n /** Specifies which properties to sort the results by */\r\n sort?: Maybe<AssetSortParameter>;\r\n /** Allows the results to be filtered */\r\n filter?: Maybe<AssetFilterParameter>;\r\n /** Specifies whether multiple \"filter\" arguments should be combines with a logical AND or OR operation. Defaults to AND. */\r\n filterOperator?: Maybe<LogicalOperator>;\r\n};\r\n\r\nexport type AssetSortParameter = {\r\n id?: Maybe<SortOrder>;\r\n createdAt?: Maybe<SortOrder>;\r\n updatedAt?: Maybe<SortOrder>;\r\n name?: Maybe<SortOrder>;\r\n fileSize?: Maybe<SortOrder>;\r\n mimeType?: Maybe<SortOrder>;\r\n width?: Maybe<SortOrder>;\r\n height?: Maybe<SortOrder>;\r\n source?: Maybe<SortOrder>;\r\n preview?: Maybe<SortOrder>;\r\n};\r\n\r\nexport enum AssetType {\r\n IMAGE = 'IMAGE',\r\n VIDEO = 'VIDEO',\r\n BINARY = 'BINARY'\r\n}\r\n\r\nexport type AssignAssetsToChannelInput = {\r\n assetIds: Array<Scalars['ID']>;\r\n channelId: Scalars['ID'];\r\n};\r\n\r\nexport type AssignCollectionsToChannelInput = {\r\n collectionIds: Array<Scalars['ID']>;\r\n channelId: Scalars['ID'];\r\n};\r\n\r\nexport type AssignFacetsToChannelInput = {\r\n facetIds: Array<Scalars['ID']>;\r\n channelId: Scalars['ID'];\r\n};\r\n\r\nexport type AssignProductVariantsToChannelInput = {\r\n productVariantIds: Array<Scalars['ID']>;\r\n channelId: Scalars['ID'];\r\n priceFactor?: Maybe<Scalars['Float']>;\r\n};\r\n\r\nexport type AssignProductsToChannelInput = {\r\n productIds: Array<Scalars['ID']>;\r\n channelId: Scalars['ID'];\r\n priceFactor?: Maybe<Scalars['Float']>;\r\n};\r\n\r\nexport type AssignPromotionsToChannelInput = {\r\n promotionIds: Array<Scalars['ID']>;\r\n channelId: Scalars['ID'];\r\n};\r\n\r\nexport type AuthenticationInput = {\r\n native?: Maybe<NativeAuthInput>;\r\n};\r\n\r\nexport type AuthenticationMethod = Node & {\r\n __typename?: 'AuthenticationMethod';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n strategy: Scalars['String'];\r\n};\r\n\r\nexport type AuthenticationResult = CurrentUser | InvalidCredentialsError;\r\n\r\nexport type BooleanCustomFieldConfig = CustomField & {\r\n __typename?: 'BooleanCustomFieldConfig';\r\n name: Scalars['String'];\r\n type: Scalars['String'];\r\n list: Scalars['Boolean'];\r\n label?: Maybe<Array<LocalizedString>>;\r\n description?: Maybe<Array<LocalizedString>>;\r\n readonly?: Maybe<Scalars['Boolean']>;\r\n internal?: Maybe<Scalars['Boolean']>;\r\n nullable?: Maybe<Scalars['Boolean']>;\r\n ui?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\n/** Operators for filtering on a list of Boolean fields */\r\nexport type BooleanListOperators = {\r\n inList: Scalars['Boolean'];\r\n};\r\n\r\n/** Operators for filtering on a Boolean field */\r\nexport type BooleanOperators = {\r\n eq?: Maybe<Scalars['Boolean']>;\r\n};\r\n\r\n/** Returned if an attempting to cancel lines from an Order which is still active */\r\nexport type CancelActiveOrderError = ErrorResult & {\r\n __typename?: 'CancelActiveOrderError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n orderState: Scalars['String'];\r\n};\r\n\r\nexport type CancelOrderInput = {\r\n /** The id of the order to be cancelled */\r\n orderId: Scalars['ID'];\r\n /** Optionally specify which OrderLines to cancel. If not provided, all OrderLines will be cancelled */\r\n lines?: Maybe<Array<OrderLineInput>>;\r\n /** Specify whether the shipping charges should also be cancelled. Defaults to false */\r\n cancelShipping?: Maybe<Scalars['Boolean']>;\r\n reason?: Maybe<Scalars['String']>;\r\n};\r\n\r\nexport type CancelOrderResult = Order | EmptyOrderLineSelectionError | QuantityTooGreatError | MultipleOrderError | CancelActiveOrderError | OrderStateTransitionError;\r\n\r\n/** Returned if the Payment cancellation fails */\r\nexport type CancelPaymentError = ErrorResult & {\r\n __typename?: 'CancelPaymentError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n paymentErrorMessage: Scalars['String'];\r\n};\r\n\r\nexport type CancelPaymentResult = Payment | CancelPaymentError | PaymentStateTransitionError;\r\n\r\nexport type Cancellation = Node & StockMovement & {\r\n __typename?: 'Cancellation';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n productVariant: ProductVariant;\r\n type: StockMovementType;\r\n quantity: Scalars['Int'];\r\n orderLine: OrderLine;\r\n};\r\n\r\nexport type Channel = Node & {\r\n __typename?: 'Channel';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n code: Scalars['String'];\r\n token: Scalars['String'];\r\n defaultTaxZone?: Maybe<Zone>;\r\n defaultShippingZone?: Maybe<Zone>;\r\n defaultLanguageCode: LanguageCode;\r\n currencyCode: CurrencyCode;\r\n pricesIncludeTax: Scalars['Boolean'];\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\n/**\r\n * Returned when the default LanguageCode of a Channel is no longer found in the `availableLanguages`\r\n * of the GlobalSettings\r\n */\r\nexport type ChannelDefaultLanguageError = ErrorResult & {\r\n __typename?: 'ChannelDefaultLanguageError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n language: Scalars['String'];\r\n channelCode: Scalars['String'];\r\n};\r\n\r\nexport type Collection = Node & {\r\n __typename?: 'Collection';\r\n isPrivate: Scalars['Boolean'];\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n languageCode?: Maybe<LanguageCode>;\r\n name: Scalars['String'];\r\n slug: Scalars['String'];\r\n breadcrumbs: Array<CollectionBreadcrumb>;\r\n position: Scalars['Int'];\r\n description: Scalars['String'];\r\n featuredAsset?: Maybe<Asset>;\r\n assets: Array<Asset>;\r\n parent?: Maybe<Collection>;\r\n children?: Maybe<Array<Collection>>;\r\n filters: Array<ConfigurableOperation>;\r\n translations: Array<CollectionTranslation>;\r\n productVariants: ProductVariantList;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\n\r\nexport type CollectionProductVariantsArgs = {\r\n options?: Maybe<ProductVariantListOptions>;\r\n};\r\n\r\nexport type CollectionBreadcrumb = {\r\n __typename?: 'CollectionBreadcrumb';\r\n id: Scalars['ID'];\r\n name: Scalars['String'];\r\n slug: Scalars['String'];\r\n};\r\n\r\nexport type CollectionFilterParameter = {\r\n isPrivate?: Maybe<BooleanOperators>;\r\n id?: Maybe<IdOperators>;\r\n createdAt?: Maybe<DateOperators>;\r\n updatedAt?: Maybe<DateOperators>;\r\n languageCode?: Maybe<StringOperators>;\r\n name?: Maybe<StringOperators>;\r\n slug?: Maybe<StringOperators>;\r\n position?: Maybe<NumberOperators>;\r\n description?: Maybe<StringOperators>;\r\n};\r\n\r\nexport type CollectionList = PaginatedList & {\r\n __typename?: 'CollectionList';\r\n items: Array<Collection>;\r\n totalItems: Scalars['Int'];\r\n};\r\n\r\nexport type CollectionListOptions = {\r\n /** Skips the first n results, for use in pagination */\r\n skip?: Maybe<Scalars['Int']>;\r\n /** Takes n results, for use in pagination */\r\n take?: Maybe<Scalars['Int']>;\r\n /** Specifies which properties to sort the results by */\r\n sort?: Maybe<CollectionSortParameter>;\r\n /** Allows the results to be filtered */\r\n filter?: Maybe<CollectionFilterParameter>;\r\n /** Specifies whether multiple \"filter\" arguments should be combines with a logical AND or OR operation. Defaults to AND. */\r\n filterOperator?: Maybe<LogicalOperator>;\r\n};\r\n\r\n/**\r\n * Which Collections are present in the products returned\r\n * by the search, and in what quantity.\r\n */\r\nexport type CollectionResult = {\r\n __typename?: 'CollectionResult';\r\n collection: Collection;\r\n count: Scalars['Int'];\r\n};\r\n\r\nexport type CollectionSortParameter = {\r\n id?: Maybe<SortOrder>;\r\n createdAt?: Maybe<SortOrder>;\r\n updatedAt?: Maybe<SortOrder>;\r\n name?: Maybe<SortOrder>;\r\n slug?: Maybe<SortOrder>;\r\n position?: Maybe<SortOrder>;\r\n description?: Maybe<SortOrder>;\r\n};\r\n\r\nexport type CollectionTranslation = {\r\n __typename?: 'CollectionTranslation';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n languageCode: LanguageCode;\r\n name: Scalars['String'];\r\n slug: Scalars['String'];\r\n description: Scalars['String'];\r\n};\r\n\r\nexport type ConfigArg = {\r\n __typename?: 'ConfigArg';\r\n name: Scalars['String'];\r\n value: Scalars['String'];\r\n};\r\n\r\nexport type ConfigArgDefinition = {\r\n __typename?: 'ConfigArgDefinition';\r\n name: Scalars['String'];\r\n type: Scalars['String'];\r\n list: Scalars['Boolean'];\r\n required: Scalars['Boolean'];\r\n defaultValue?: Maybe<Scalars['JSON']>;\r\n label?: Maybe<Scalars['String']>;\r\n description?: Maybe<Scalars['String']>;\r\n ui?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type ConfigArgInput = {\r\n name: Scalars['String'];\r\n /** A JSON stringified representation of the actual value */\r\n value: Scalars['String'];\r\n};\r\n\r\nexport type ConfigurableOperation = {\r\n __typename?: 'ConfigurableOperation';\r\n code: Scalars['String'];\r\n args: Array<ConfigArg>;\r\n};\r\n\r\nexport type ConfigurableOperationDefinition = {\r\n __typename?: 'ConfigurableOperationDefinition';\r\n code: Scalars['String'];\r\n args: Array<ConfigArgDefinition>;\r\n description: Scalars['String'];\r\n};\r\n\r\nexport type ConfigurableOperationInput = {\r\n code: Scalars['String'];\r\n arguments: Array<ConfigArgInput>;\r\n};\r\n\r\nexport type Coordinate = {\r\n __typename?: 'Coordinate';\r\n x: Scalars['Float'];\r\n y: Scalars['Float'];\r\n};\r\n\r\nexport type CoordinateInput = {\r\n x: Scalars['Float'];\r\n y: Scalars['Float'];\r\n};\r\n\r\nexport type Country = Node & {\r\n __typename?: 'Country';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n languageCode: LanguageCode;\r\n code: Scalars['String'];\r\n name: Scalars['String'];\r\n enabled: Scalars['Boolean'];\r\n translations: Array<CountryTranslation>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CountryFilterParameter = {\r\n id?: Maybe<IdOperators>;\r\n createdAt?: Maybe<DateOperators>;\r\n updatedAt?: Maybe<DateOperators>;\r\n languageCode?: Maybe<StringOperators>;\r\n code?: Maybe<StringOperators>;\r\n name?: Maybe<StringOperators>;\r\n enabled?: Maybe<BooleanOperators>;\r\n};\r\n\r\nexport type CountryList = PaginatedList & {\r\n __typename?: 'CountryList';\r\n items: Array<Country>;\r\n totalItems: Scalars['Int'];\r\n};\r\n\r\nexport type CountryListOptions = {\r\n /** Skips the first n results, for use in pagination */\r\n skip?: Maybe<Scalars['Int']>;\r\n /** Takes n results, for use in pagination */\r\n take?: Maybe<Scalars['Int']>;\r\n /** Specifies which properties to sort the results by */\r\n sort?: Maybe<CountrySortParameter>;\r\n /** Allows the results to be filtered */\r\n filter?: Maybe<CountryFilterParameter>;\r\n /** Specifies whether multiple \"filter\" arguments should be combines with a logical AND or OR operation. Defaults to AND. */\r\n filterOperator?: Maybe<LogicalOperator>;\r\n};\r\n\r\nexport type CountrySortParameter = {\r\n id?: Maybe<SortOrder>;\r\n createdAt?: Maybe<SortOrder>;\r\n updatedAt?: Maybe<SortOrder>;\r\n code?: Maybe<SortOrder>;\r\n name?: Maybe<SortOrder>;\r\n};\r\n\r\nexport type CountryTranslation = {\r\n __typename?: 'CountryTranslation';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n languageCode: LanguageCode;\r\n name: Scalars['String'];\r\n};\r\n\r\nexport type CountryTranslationInput = {\r\n id?: Maybe<Scalars['ID']>;\r\n languageCode: LanguageCode;\r\n name?: Maybe<Scalars['String']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\n/** Returned if the provided coupon code is invalid */\r\nexport type CouponCodeExpiredError = ErrorResult & {\r\n __typename?: 'CouponCodeExpiredError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n couponCode: Scalars['String'];\r\n};\r\n\r\n/** Returned if the provided coupon code is invalid */\r\nexport type CouponCodeInvalidError = ErrorResult & {\r\n __typename?: 'CouponCodeInvalidError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n couponCode: Scalars['String'];\r\n};\r\n\r\n/** Returned if the provided coupon code is invalid */\r\nexport type CouponCodeLimitError = ErrorResult & {\r\n __typename?: 'CouponCodeLimitError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n couponCode: Scalars['String'];\r\n limit: Scalars['Int'];\r\n};\r\n\r\nexport type CreateAddressInput = {\r\n fullName?: Maybe<Scalars['String']>;\r\n company?: Maybe<Scalars['String']>;\r\n streetLine1: Scalars['String'];\r\n streetLine2?: Maybe<Scalars['String']>;\r\n city?: Maybe<Scalars['String']>;\r\n province?: Maybe<Scalars['String']>;\r\n postalCode?: Maybe<Scalars['String']>;\r\n countryCode: Scalars['String'];\r\n phoneNumber?: Maybe<Scalars['String']>;\r\n defaultShippingAddress?: Maybe<Scalars['Boolean']>;\r\n defaultBillingAddress?: Maybe<Scalars['Boolean']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CreateAdministratorInput = {\r\n firstName: Scalars['String'];\r\n lastName: Scalars['String'];\r\n emailAddress: Scalars['String'];\r\n password: Scalars['String'];\r\n roleIds: Array<Scalars['ID']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CreateAssetInput = {\r\n file: Scalars['Upload'];\r\n tags?: Maybe<Array<Scalars['String']>>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CreateAssetResult = Asset | MimeTypeError;\r\n\r\nexport type CreateChannelInput = {\r\n code: Scalars['String'];\r\n token: Scalars['String'];\r\n defaultLanguageCode: LanguageCode;\r\n pricesIncludeTax: Scalars['Boolean'];\r\n currencyCode: CurrencyCode;\r\n defaultTaxZoneId: Scalars['ID'];\r\n defaultShippingZoneId: Scalars['ID'];\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CreateChannelResult = Channel | LanguageNotAvailableError;\r\n\r\nexport type CreateCollectionInput = {\r\n isPrivate?: Maybe<Scalars['Boolean']>;\r\n featuredAssetId?: Maybe<Scalars['ID']>;\r\n assetIds?: Maybe<Array<Scalars['ID']>>;\r\n parentId?: Maybe<Scalars['ID']>;\r\n filters: Array<ConfigurableOperationInput>;\r\n translations: Array<CreateCollectionTranslationInput>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CreateCollectionTranslationInput = {\r\n languageCode: LanguageCode;\r\n name: Scalars['String'];\r\n slug: Scalars['String'];\r\n description: Scalars['String'];\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CreateCountryInput = {\r\n code: Scalars['String'];\r\n translations: Array<CountryTranslationInput>;\r\n enabled: Scalars['Boolean'];\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CreateCustomerGroupInput = {\r\n name: Scalars['String'];\r\n customerIds?: Maybe<Array<Scalars['ID']>>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CreateCustomerInput = {\r\n title?: Maybe<Scalars['String']>;\r\n firstName: Scalars['String'];\r\n lastName: Scalars['String'];\r\n phoneNumber?: Maybe<Scalars['String']>;\r\n emailAddress: Scalars['String'];\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CreateCustomerResult = Customer | EmailAddressConflictError;\r\n\r\nexport type CreateFacetInput = {\r\n code: Scalars['String'];\r\n isPrivate: Scalars['Boolean'];\r\n translations: Array<FacetTranslationInput>;\r\n values?: Maybe<Array<CreateFacetValueWithFacetInput>>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CreateFacetValueInput = {\r\n facetId: Scalars['ID'];\r\n code: Scalars['String'];\r\n translations: Array<FacetValueTranslationInput>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CreateFacetValueWithFacetInput = {\r\n code: Scalars['String'];\r\n translations: Array<FacetValueTranslationInput>;\r\n};\r\n\r\n/** Returned if an error is thrown in a FulfillmentHandler's createFulfillment method */\r\nexport type CreateFulfillmentError = ErrorResult & {\r\n __typename?: 'CreateFulfillmentError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n fulfillmentHandlerError: Scalars['String'];\r\n};\r\n\r\nexport type CreateGroupOptionInput = {\r\n code: Scalars['String'];\r\n translations: Array<ProductOptionGroupTranslationInput>;\r\n};\r\n\r\nexport type CreatePaymentMethodInput = {\r\n name: Scalars['String'];\r\n code: Scalars['String'];\r\n description?: Maybe<Scalars['String']>;\r\n enabled: Scalars['Boolean'];\r\n checker?: Maybe<ConfigurableOperationInput>;\r\n handler: ConfigurableOperationInput;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CreateProductInput = {\r\n featuredAssetId?: Maybe<Scalars['ID']>;\r\n enabled?: Maybe<Scalars['Boolean']>;\r\n assetIds?: Maybe<Array<Scalars['ID']>>;\r\n facetValueIds?: Maybe<Array<Scalars['ID']>>;\r\n translations: Array<ProductTranslationInput>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CreateProductOptionGroupInput = {\r\n code: Scalars['String'];\r\n translations: Array<ProductOptionGroupTranslationInput>;\r\n options: Array<CreateGroupOptionInput>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CreateProductOptionInput = {\r\n productOptionGroupId: Scalars['ID'];\r\n code: Scalars['String'];\r\n translations: Array<ProductOptionGroupTranslationInput>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CreateProductVariantInput = {\r\n productId: Scalars['ID'];\r\n translations: Array<ProductVariantTranslationInput>;\r\n facetValueIds?: Maybe<Array<Scalars['ID']>>;\r\n sku: Scalars['String'];\r\n price?: Maybe<Scalars['Int']>;\r\n taxCategoryId?: Maybe<Scalars['ID']>;\r\n optionIds?: Maybe<Array<Scalars['ID']>>;\r\n featuredAssetId?: Maybe<Scalars['ID']>;\r\n assetIds?: Maybe<Array<Scalars['ID']>>;\r\n stockOnHand?: Maybe<Scalars['Int']>;\r\n outOfStockThreshold?: Maybe<Scalars['Int']>;\r\n useGlobalOutOfStockThreshold?: Maybe<Scalars['Boolean']>;\r\n trackInventory?: Maybe<GlobalFlag>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CreateProductVariantOptionInput = {\r\n optionGroupId: Scalars['ID'];\r\n code: Scalars['String'];\r\n translations: Array<ProductOptionTranslationInput>;\r\n};\r\n\r\nexport type CreatePromotionInput = {\r\n name: Scalars['String'];\r\n enabled: Scalars['Boolean'];\r\n startsAt?: Maybe<Scalars['DateTime']>;\r\n endsAt?: Maybe<Scalars['DateTime']>;\r\n couponCode?: Maybe<Scalars['String']>;\r\n perCustomerUsageLimit?: Maybe<Scalars['Int']>;\r\n conditions: Array<ConfigurableOperationInput>;\r\n actions: Array<ConfigurableOperationInput>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CreatePromotionResult = Promotion | MissingConditionsError;\r\n\r\nexport type CreateRoleInput = {\r\n code: Scalars['String'];\r\n description: Scalars['String'];\r\n permissions: Array<Permission>;\r\n channelIds?: Maybe<Array<Scalars['ID']>>;\r\n};\r\n\r\nexport type CreateShippingMethodInput = {\r\n code: Scalars['String'];\r\n fulfillmentHandler: Scalars['String'];\r\n checker: ConfigurableOperationInput;\r\n calculator: ConfigurableOperationInput;\r\n translations: Array<ShippingMethodTranslationInput>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CreateTagInput = {\r\n value: Scalars['String'];\r\n};\r\n\r\nexport type CreateTaxCategoryInput = {\r\n name: Scalars['String'];\r\n isDefault?: Maybe<Scalars['Boolean']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CreateTaxRateInput = {\r\n name: Scalars['String'];\r\n enabled: Scalars['Boolean'];\r\n value: Scalars['Float'];\r\n categoryId: Scalars['ID'];\r\n zoneId: Scalars['ID'];\r\n customerGroupId?: Maybe<Scalars['ID']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CreateZoneInput = {\r\n name: Scalars['String'];\r\n memberIds?: Maybe<Array<Scalars['ID']>>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\n/**\r\n * @description\r\n * ISO 4217 currency code\r\n *\r\n * @docsCategory common\r\n */\r\nexport enum CurrencyCode {\r\n /** United Arab Emirates dirham */\r\n AED = 'AED',\r\n /** Afghan afghani */\r\n AFN = 'AFN',\r\n /** Albanian lek */\r\n ALL = 'ALL',\r\n /** Armenian dram */\r\n AMD = 'AMD',\r\n /** Netherlands Antillean guilder */\r\n ANG = 'ANG',\r\n /** Angolan kwanza */\r\n AOA = 'AOA',\r\n /** Argentine peso */\r\n ARS = 'ARS',\r\n /** Australian dollar */\r\n AUD = 'AUD',\r\n /** Aruban florin */\r\n AWG = 'AWG',\r\n /** Azerbaijani manat */\r\n AZN = 'AZN',\r\n /** Bosnia and Herzegovina convertible mark */\r\n BAM = 'BAM',\r\n /** Barbados dollar */\r\n BBD = 'BBD',\r\n /** Bangladeshi taka */\r\n BDT = 'BDT',\r\n /** Bulgarian lev */\r\n BGN = 'BGN',\r\n /** Bahraini dinar */\r\n BHD = 'BHD',\r\n /** Burundian franc */\r\n BIF = 'BIF',\r\n /** Bermudian dollar */\r\n BMD = 'BMD',\r\n /** Brunei dollar */\r\n BND = 'BND',\r\n /** Boliviano */\r\n BOB = 'BOB',\r\n /** Brazilian real */\r\n BRL = 'BRL',\r\n /** Bahamian dollar */\r\n BSD = 'BSD',\r\n /** Bhutanese ngultrum */\r\n BTN = 'BTN',\r\n /** Botswana pula */\r\n BWP = 'BWP',\r\n /** Belarusian ruble */\r\n BYN = 'BYN',\r\n /** Belize dollar */\r\n BZD = 'BZD',\r\n /** Canadian dollar */\r\n CAD = 'CAD',\r\n /** Congolese franc */\r\n CDF = 'CDF',\r\n /** Swiss franc */\r\n CHF = 'CHF',\r\n /** Chilean peso */\r\n CLP = 'CLP',\r\n /** Renminbi (Chinese) yuan */\r\n CNY = 'CNY',\r\n /** Colombian peso */\r\n COP = 'COP',\r\n /** Costa Rican colon */\r\n CRC = 'CRC',\r\n /** Cuban convertible peso */\r\n CUC = 'CUC',\r\n /** Cuban peso */\r\n CUP = 'CUP',\r\n /** Cape Verde escudo */\r\n CVE = 'CVE',\r\n /** Czech koruna */\r\n CZK = 'CZK',\r\n /** Djiboutian franc */\r\n DJF = 'DJF',\r\n /** Danish krone */\r\n DKK = 'DKK',\r\n /** Dominican peso */\r\n DOP = 'DOP',\r\n /** Algerian dinar */\r\n DZD = 'DZD',\r\n /** Egyptian pound */\r\n EGP = 'EGP',\r\n /** Eritrean nakfa */\r\n ERN = 'ERN',\r\n /** Ethiopian birr */\r\n ETB = 'ETB',\r\n /** Euro */\r\n EUR = 'EUR',\r\n /** Fiji dollar */\r\n FJD = 'FJD',\r\n /** Falkland Islands pound */\r\n FKP = 'FKP',\r\n /** Pound sterling */\r\n GBP = 'GBP',\r\n /** Georgian lari */\r\n GEL = 'GEL',\r\n /** Ghanaian cedi */\r\n GHS = 'GHS',\r\n /** Gibraltar pound */\r\n GIP = 'GIP',\r\n /** Gambian dalasi */\r\n GMD = 'GMD',\r\n /** Guinean franc */\r\n GNF = 'GNF',\r\n /** Guatemalan quetzal */\r\n GTQ = 'GTQ',\r\n /** Guyanese dollar */\r\n GYD = 'GYD',\r\n /** Hong Kong dollar */\r\n HKD = 'HKD',\r\n /** Honduran lempira */\r\n HNL = 'HNL',\r\n /** Croatian kuna */\r\n HRK = 'HRK',\r\n /** Haitian gourde */\r\n HTG = 'HTG',\r\n /** Hungarian forint */\r\n HUF = 'HUF',\r\n /** Indonesian rupiah */\r\n IDR = 'IDR',\r\n /** Israeli new shekel */\r\n ILS = 'ILS',\r\n /** Indian rupee */\r\n INR = 'INR',\r\n /** Iraqi dinar */\r\n IQD = 'IQD',\r\n /** Iranian rial */\r\n IRR = 'IRR',\r\n /** Icelandic króna */\r\n ISK = 'ISK',\r\n /** Jamaican dollar */\r\n JMD = 'JMD',\r\n /** Jordanian dinar */\r\n JOD = 'JOD',\r\n /** Japanese yen */\r\n JPY = 'JPY',\r\n /** Kenyan shilling */\r\n KES = 'KES',\r\n /** Kyrgyzstani som */\r\n KGS = 'KGS',\r\n /** Cambodian riel */\r\n KHR = 'KHR',\r\n /** Comoro franc */\r\n KMF = 'KMF',\r\n /** North Korean won */\r\n KPW = 'KPW',\r\n /** South Korean won */\r\n KRW = 'KRW',\r\n /** Kuwaiti dinar */\r\n KWD = 'KWD',\r\n /** Cayman Islands dollar */\r\n KYD = 'KYD',\r\n /** Kazakhstani tenge */\r\n KZT = 'KZT',\r\n /** Lao kip */\r\n LAK = 'LAK',\r\n /** Lebanese pound */\r\n LBP = 'LBP',\r\n /** Sri Lankan rupee */\r\n LKR = 'LKR',\r\n /** Liberian dollar */\r\n LRD = 'LRD',\r\n /** Lesotho loti */\r\n LSL = 'LSL',\r\n /** Libyan dinar */\r\n LYD = 'LYD',\r\n /** Moroccan dirham */\r\n MAD = 'MAD',\r\n /** Moldovan leu */\r\n MDL = 'MDL',\r\n /** Malagasy ariary */\r\n MGA = 'MGA',\r\n /** Macedonian denar */\r\n MKD = 'MKD',\r\n /** Myanmar kyat */\r\n MMK = 'MMK',\r\n /** Mongolian tögrög */\r\n MNT = 'MNT',\r\n /** Macanese pataca */\r\n MOP = 'MOP',\r\n /** Mauritanian ouguiya */\r\n MRU = 'MRU',\r\n /** Mauritian rupee */\r\n MUR = 'MUR',\r\n /** Maldivian rufiyaa */\r\n MVR = 'MVR',\r\n /** Malawian kwacha */\r\n MWK = 'MWK',\r\n /** Mexican peso */\r\n MXN = 'MXN',\r\n /** Malaysian ringgit */\r\n MYR = 'MYR',\r\n /** Mozambican metical */\r\n MZN = 'MZN',\r\n /** Namibian dollar */\r\n NAD = 'NAD',\r\n /** Nigerian naira */\r\n NGN = 'NGN',\r\n /** Nicaraguan córdoba */\r\n NIO = 'NIO',\r\n /** Norwegian krone */\r\n NOK = 'NOK',\r\n /** Nepalese rupee */\r\n NPR = 'NPR',\r\n /** New Zealand dollar */\r\n NZD = 'NZD',\r\n /** Omani rial */\r\n OMR = 'OMR',\r\n /** Panamanian balboa */\r\n PAB = 'PAB',\r\n /** Peruvian sol */\r\n PEN = 'PEN',\r\n /** Papua New Guinean kina */\r\n PGK = 'PGK',\r\n /** Philippine peso */\r\n PHP = 'PHP',\r\n /** Pakistani rupee */\r\n PKR = 'PKR',\r\n /** Polish złoty */\r\n PLN = 'PLN',\r\n /** Paraguayan guaraní */\r\n PYG = 'PYG',\r\n /** Qatari riyal */\r\n QAR = 'QAR',\r\n /** Romanian leu */\r\n RON = 'RON',\r\n /** Serbian dinar */\r\n RSD = 'RSD',\r\n /** Russian ruble */\r\n RUB = 'RUB',\r\n /** Rwandan franc */\r\n RWF = 'RWF',\r\n /** Saudi riyal */\r\n SAR = 'SAR',\r\n /** Solomon Islands dollar */\r\n SBD = 'SBD',\r\n /** Seychelles rupee */\r\n SCR = 'SCR',\r\n /** Sudanese pound */\r\n SDG = 'SDG',\r\n /** Swedish krona/kronor */\r\n SEK = 'SEK',\r\n /** Singapore dollar */\r\n SGD = 'SGD',\r\n /** Saint Helena pound */\r\n SHP = 'SHP',\r\n /** Sierra Leonean leone */\r\n SLL = 'SLL',\r\n /** Somali shilling */\r\n SOS = 'SOS',\r\n /** Surinamese dollar */\r\n SRD = 'SRD',\r\n /** South Sudanese pound */\r\n SSP = 'SSP',\r\n /** São Tomé and Príncipe dobra */\r\n STN = 'STN',\r\n /** Salvadoran colón */\r\n SVC = 'SVC',\r\n /** Syrian pound */\r\n SYP = 'SYP',\r\n /** Swazi lilangeni */\r\n SZL = 'SZL',\r\n /** Thai baht */\r\n THB = 'THB',\r\n /** Tajikistani somoni */\r\n TJS = 'TJS',\r\n /** Turkmenistan manat */\r\n TMT = 'TMT',\r\n /** Tunisian dinar */\r\n TND = 'TND',\r\n /** Tongan paʻanga */\r\n TOP = 'TOP',\r\n /** Turkish lira */\r\n TRY = 'TRY',\r\n /** Trinidad and Tobago dollar */\r\n TTD = 'TTD',\r\n /** New Taiwan dollar */\r\n TWD = 'TWD',\r\n /** Tanzanian shilling */\r\n TZS = 'TZS',\r\n /** Ukrainian hryvnia */\r\n UAH = 'UAH',\r\n /** Ugandan shilling */\r\n UGX = 'UGX',\r\n /** United States dollar */\r\n USD = 'USD',\r\n /** Uruguayan peso */\r\n UYU = 'UYU',\r\n /** Uzbekistan som */\r\n UZS = 'UZS',\r\n /** Venezuelan bolívar soberano */\r\n VES = 'VES',\r\n /** Vietnamese đồng */\r\n VND = 'VND',\r\n /** Vanuatu vatu */\r\n VUV = 'VUV',\r\n /** Samoan tala */\r\n WST = 'WST',\r\n /** CFA franc BEAC */\r\n XAF = 'XAF',\r\n /** East Caribbean dollar */\r\n XCD = 'XCD',\r\n /** CFA franc BCEAO */\r\n XOF = 'XOF',\r\n /** CFP franc (franc Pacifique) */\r\n XPF = 'XPF',\r\n /** Yemeni rial */\r\n YER = 'YER',\r\n /** South African rand */\r\n ZAR = 'ZAR',\r\n /** Zambian kwacha */\r\n ZMW = 'ZMW',\r\n /** Zimbabwean dollar */\r\n ZWL = 'ZWL'\r\n}\r\n\r\nexport type CurrentUser = {\r\n __typename?: 'CurrentUser';\r\n channels: Array<CurrentUserChannel>;\r\n id: Scalars['ID'];\r\n identifier: Scalars['String'];\r\n};\r\n\r\nexport type CurrentUserChannel = {\r\n __typename?: 'CurrentUserChannel';\r\n code: Scalars['String'];\r\n id: Scalars['ID'];\r\n permissions: Array<Permission>;\r\n token: Scalars['String'];\r\n};\r\n\r\nexport type CurrentUserChannelInput = {\r\n id: Scalars['ID'];\r\n token: Scalars['String'];\r\n code: Scalars['String'];\r\n permissions: Array<Permission>;\r\n};\r\n\r\nexport type CustomField = {\r\n name: Scalars['String'];\r\n type: Scalars['String'];\r\n list: Scalars['Boolean'];\r\n label?: Maybe<Array<LocalizedString>>;\r\n description?: Maybe<Array<LocalizedString>>;\r\n readonly?: Maybe<Scalars['Boolean']>;\r\n internal?: Maybe<Scalars['Boolean']>;\r\n nullable?: Maybe<Scalars['Boolean']>;\r\n ui?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type CustomFieldConfig = StringCustomFieldConfig | LocaleStringCustomFieldConfig | IntCustomFieldConfig | FloatCustomFieldConfig | BooleanCustomFieldConfig | DateTimeCustomFieldConfig | RelationCustomFieldConfig | TextCustomFieldConfig;\r\n\r\nexport type CustomFields = {\r\n __typename?: 'CustomFields';\r\n Address: Array<CustomFieldConfig>;\r\n Administrator: Array<CustomFieldConfig>;\r\n Asset: Array<CustomFieldConfig>;\r\n Channel: Array<CustomFieldConfig>;\r\n Collection: Array<CustomFieldConfig>;\r\n Country: Array<CustomFieldConfig>;\r\n Customer: Array<CustomFieldConfig>;\r\n CustomerGroup: Array<CustomFieldConfig>;\r\n Facet: Array<CustomFieldConfig>;\r\n FacetValue: Array<CustomFieldConfig>;\r\n Fulfillment: Array<CustomFieldConfig>;\r\n GlobalSettings: Array<CustomFieldConfig>;\r\n Order: Array<CustomFieldConfig>;\r\n OrderLine: Array<CustomFieldConfig>;\r\n PaymentMethod: Array<CustomFieldConfig>;\r\n Product: Array<CustomFieldConfig>;\r\n ProductOption: Array<CustomFieldConfig>;\r\n ProductOptionGroup: Array<CustomFieldConfig>;\r\n ProductVariant: Array<CustomFieldConfig>;\r\n Promotion: Array<CustomFieldConfig>;\r\n ShippingMethod: Array<CustomFieldConfig>;\r\n TaxCategory: Array<CustomFieldConfig>;\r\n TaxRate: Array<CustomFieldConfig>;\r\n User: Array<CustomFieldConfig>;\r\n Zone: Array<CustomFieldConfig>;\r\n};\r\n\r\nexport type Customer = Node & {\r\n __typename?: 'Customer';\r\n groups: Array<CustomerGroup>;\r\n history: HistoryEntryList;\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n title?: Maybe<Scalars['String']>;\r\n firstName: Scalars['String'];\r\n lastName: Scalars['String'];\r\n phoneNumber?: Maybe<Scalars['String']>;\r\n emailAddress: Scalars['String'];\r\n addresses?: Maybe<Array<Address>>;\r\n orders: OrderList;\r\n user?: Maybe<User>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\n\r\nexport type CustomerHistoryArgs = {\r\n options?: Maybe<HistoryEntryListOptions>;\r\n};\r\n\r\n\r\nexport type CustomerOrdersArgs = {\r\n options?: Maybe<OrderListOptions>;\r\n};\r\n\r\nexport type CustomerFilterParameter = {\r\n postalCode?: Maybe<StringOperators>;\r\n id?: Maybe<IdOperators>;\r\n createdAt?: Maybe<DateOperators>;\r\n updatedAt?: Maybe<DateOperators>;\r\n title?: Maybe<StringOperators>;\r\n firstName?: Maybe<StringOperators>;\r\n lastName?: Maybe<StringOperators>;\r\n phoneNumber?: Maybe<StringOperators>;\r\n emailAddress?: Maybe<StringOperators>;\r\n};\r\n\r\nexport type CustomerGroup = Node & {\r\n __typename?: 'CustomerGroup';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n name: Scalars['String'];\r\n customers: CustomerList;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\n\r\nexport type CustomerGroupCustomersArgs = {\r\n options?: Maybe<CustomerListOptions>;\r\n};\r\n\r\nexport type CustomerGroupFilterParameter = {\r\n id?: Maybe<IdOperators>;\r\n createdAt?: Maybe<DateOperators>;\r\n updatedAt?: Maybe<DateOperators>;\r\n name?: Maybe<StringOperators>;\r\n};\r\n\r\nexport type CustomerGroupList = PaginatedList & {\r\n __typename?: 'CustomerGroupList';\r\n items: Array<CustomerGroup>;\r\n totalItems: Scalars['Int'];\r\n};\r\n\r\nexport type CustomerGroupListOptions = {\r\n /** Skips the first n results, for use in pagination */\r\n skip?: Maybe<Scalars['Int']>;\r\n /** Takes n results, for use in pagination */\r\n take?: Maybe<Scalars['Int']>;\r\n /** Specifies which properties to sort the results by */\r\n sort?: Maybe<CustomerGroupSortParameter>;\r\n /** Allows the results to be filtered */\r\n filter?: Maybe<CustomerGroupFilterParameter>;\r\n /** Specifies whether multiple \"filter\" arguments should be combines with a logical AND or OR operation. Defaults to AND. */\r\n filterOperator?: Maybe<LogicalOperator>;\r\n};\r\n\r\nexport type CustomerGroupSortParameter = {\r\n id?: Maybe<SortOrder>;\r\n createdAt?: Maybe<SortOrder>;\r\n updatedAt?: Maybe<SortOrder>;\r\n name?: Maybe<SortOrder>;\r\n};\r\n\r\nexport type CustomerList = PaginatedList & {\r\n __typename?: 'CustomerList';\r\n items: Array<Customer>;\r\n totalItems: Scalars['Int'];\r\n};\r\n\r\nexport type CustomerListOptions = {\r\n /** Skips the first n results, for use in pagination */\r\n skip?: Maybe<Scalars['Int']>;\r\n /** Takes n results, for use in pagination */\r\n take?: Maybe<Scalars['Int']>;\r\n /** Specifies which properties to sort the results by */\r\n sort?: Maybe<CustomerSortParameter>;\r\n /** Allows the results to be filtered */\r\n filter?: Maybe<CustomerFilterParameter>;\r\n /** Specifies whether multiple \"filter\" arguments should be combines with a logical AND or OR operation. Defaults to AND. */\r\n filterOperator?: Maybe<LogicalOperator>;\r\n};\r\n\r\nexport type CustomerSortParameter = {\r\n id?: Maybe<SortOrder>;\r\n createdAt?: Maybe<SortOrder>;\r\n updatedAt?: Maybe<SortOrder>;\r\n title?: Maybe<SortOrder>;\r\n firstName?: Maybe<SortOrder>;\r\n lastName?: Maybe<SortOrder>;\r\n phoneNumber?: Maybe<SortOrder>;\r\n emailAddress?: Maybe<SortOrder>;\r\n};\r\n\r\n/** Operators for filtering on a list of Date fields */\r\nexport type DateListOperators = {\r\n inList: Scalars['DateTime'];\r\n};\r\n\r\n/** Operators for filtering on a DateTime field */\r\nexport type DateOperators = {\r\n eq?: Maybe<Scalars['DateTime']>;\r\n before?: Maybe<Scalars['DateTime']>;\r\n after?: Maybe<Scalars['DateTime']>;\r\n between?: Maybe<DateRange>;\r\n};\r\n\r\nexport type DateRange = {\r\n start: Scalars['DateTime'];\r\n end: Scalars['DateTime'];\r\n};\r\n\r\n\r\n/**\r\n * Expects the same validation formats as the `<input type=\"datetime-local\">` HTML element.\r\n * See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime-local#Additional_attributes\r\n */\r\nexport type DateTimeCustomFieldConfig = CustomField & {\r\n __typename?: 'DateTimeCustomFieldConfig';\r\n name: Scalars['String'];\r\n type: Scalars['String'];\r\n list: Scalars['Boolean'];\r\n label?: Maybe<Array<LocalizedString>>;\r\n description?: Maybe<Array<LocalizedString>>;\r\n readonly?: Maybe<Scalars['Boolean']>;\r\n internal?: Maybe<Scalars['Boolean']>;\r\n nullable?: Maybe<Scalars['Boolean']>;\r\n min?: Maybe<Scalars['String']>;\r\n max?: Maybe<Scalars['String']>;\r\n step?: Maybe<Scalars['Int']>;\r\n ui?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type DeleteAssetInput = {\r\n assetId: Scalars['ID'];\r\n force?: Maybe<Scalars['Boolean']>;\r\n deleteFromAllChannels?: Maybe<Scalars['Boolean']>;\r\n};\r\n\r\nexport type DeleteAssetsInput = {\r\n assetIds: Array<Scalars['ID']>;\r\n force?: Maybe<Scalars['Boolean']>;\r\n deleteFromAllChannels?: Maybe<Scalars['Boolean']>;\r\n};\r\n\r\nexport type DeletionResponse = {\r\n __typename?: 'DeletionResponse';\r\n result: DeletionResult;\r\n message?: Maybe<Scalars['String']>;\r\n};\r\n\r\nexport enum DeletionResult {\r\n /** The entity was successfully deleted */\r\n DELETED = 'DELETED',\r\n /** Deletion did not take place, reason given in message */\r\n NOT_DELETED = 'NOT_DELETED'\r\n}\r\n\r\nexport type Discount = {\r\n __typename?: 'Discount';\r\n adjustmentSource: Scalars['String'];\r\n type: AdjustmentType;\r\n description: Scalars['String'];\r\n amount: Scalars['Int'];\r\n amountWithTax: Scalars['Int'];\r\n};\r\n\r\n/** Returned when attempting to create a Customer with an email address already registered to an existing User. */\r\nexport type EmailAddressConflictError = ErrorResult & {\r\n __typename?: 'EmailAddressConflictError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n};\r\n\r\n/** Returned if no OrderLines have been specified for the operation */\r\nexport type EmptyOrderLineSelectionError = ErrorResult & {\r\n __typename?: 'EmptyOrderLineSelectionError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n};\r\n\r\nexport enum ErrorCode {\r\n UNKNOWN_ERROR = 'UNKNOWN_ERROR',\r\n MIME_TYPE_ERROR = 'MIME_TYPE_ERROR',\r\n LANGUAGE_NOT_AVAILABLE_ERROR = 'LANGUAGE_NOT_AVAILABLE_ERROR',\r\n FACET_IN_USE_ERROR = 'FACET_IN_USE_ERROR',\r\n CHANNEL_DEFAULT_LANGUAGE_ERROR = 'CHANNEL_DEFAULT_LANGUAGE_ERROR',\r\n SETTLE_PAYMENT_ERROR = 'SETTLE_PAYMENT_ERROR',\r\n CANCEL_PAYMENT_ERROR = 'CANCEL_PAYMENT_ERROR',\r\n EMPTY_ORDER_LINE_SELECTION_ERROR = 'EMPTY_ORDER_LINE_SELECTION_ERROR',\r\n ITEMS_ALREADY_FULFILLED_ERROR = 'ITEMS_ALREADY_FULFILLED_ERROR',\r\n INVALID_FULFILLMENT_HANDLER_ERROR = 'INVALID_FULFILLMENT_HANDLER_ERROR',\r\n CREATE_FULFILLMENT_ERROR = 'CREATE_FULFILLMENT_ERROR',\r\n INSUFFICIENT_STOCK_ON_HAND_ERROR = 'INSUFFICIENT_STOCK_ON_HAND_ERROR',\r\n MULTIPLE_ORDER_ERROR = 'MULTIPLE_ORDER_ERROR',\r\n CANCEL_ACTIVE_ORDER_ERROR = 'CANCEL_ACTIVE_ORDER_ERROR',\r\n PAYMENT_ORDER_MISMATCH_ERROR = 'PAYMENT_ORDER_MISMATCH_ERROR',\r\n REFUND_ORDER_STATE_ERROR = 'REFUND_ORDER_STATE_ERROR',\r\n NOTHING_TO_REFUND_ERROR = 'NOTHING_TO_REFUND_ERROR',\r\n ALREADY_REFUNDED_ERROR = 'ALREADY_REFUNDED_ERROR',\r\n QUANTITY_TOO_GREAT_ERROR = 'QUANTITY_TOO_GREAT_ERROR',\r\n REFUND_STATE_TRANSITION_ERROR = 'REFUND_STATE_TRANSITION_ERROR',\r\n PAYMENT_STATE_TRANSITION_ERROR = 'PAYMENT_STATE_TRANSITION_ERROR',\r\n FULFILLMENT_STATE_TRANSITION_ERROR = 'FULFILLMENT_STATE_TRANSITION_ERROR',\r\n ORDER_MODIFICATION_STATE_ERROR = 'ORDER_MODIFICATION_STATE_ERROR',\r\n NO_CHANGES_SPECIFIED_ERROR = 'NO_CHANGES_SPECIFIED_ERROR',\r\n PAYMENT_METHOD_MISSING_ERROR = 'PAYMENT_METHOD_MISSING_ERROR',\r\n REFUND_PAYMENT_ID_MISSING_ERROR = 'REFUND_PAYMENT_ID_MISSING_ERROR',\r\n MANUAL_PAYMENT_STATE_ERROR = 'MANUAL_PAYMENT_STATE_ERROR',\r\n PRODUCT_OPTION_IN_USE_ERROR = 'PRODUCT_OPTION_IN_USE_ERROR',\r\n MISSING_CONDITIONS_ERROR = 'MISSING_CONDITIONS_ERROR',\r\n NATIVE_AUTH_STRATEGY_ERROR = 'NATIVE_AUTH_STRATEGY_ERROR',\r\n INVALID_CREDENTIALS_ERROR = 'INVALID_CREDENTIALS_ERROR',\r\n ORDER_STATE_TRANSITION_ERROR = 'ORDER_STATE_TRANSITION_ERROR',\r\n EMAIL_ADDRESS_CONFLICT_ERROR = 'EMAIL_ADDRESS_CONFLICT_ERROR',\r\n ORDER_LIMIT_ERROR = 'ORDER_LIMIT_ERROR',\r\n NEGATIVE_QUANTITY_ERROR = 'NEGATIVE_QUANTITY_ERROR',\r\n INSUFFICIENT_STOCK_ERROR = 'INSUFFICIENT_STOCK_ERROR',\r\n COUPON_CODE_INVALID_ERROR = 'COUPON_CODE_INVALID_ERROR',\r\n COUPON_CODE_EXPIRED_ERROR = 'COUPON_CODE_EXPIRED_ERROR',\r\n COUPON_CODE_LIMIT_ERROR = 'COUPON_CODE_LIMIT_ERROR',\r\n ORDER_MODIFICATION_ERROR = 'ORDER_MODIFICATION_ERROR',\r\n INELIGIBLE_SHIPPING_METHOD_ERROR = 'INELIGIBLE_SHIPPING_METHOD_ERROR',\r\n NO_ACTIVE_ORDER_ERROR = 'NO_ACTIVE_ORDER_ERROR'\r\n}\r\n\r\nexport type ErrorResult = {\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n};\r\n\r\nexport type Facet = Node & {\r\n __typename?: 'Facet';\r\n isPrivate: Scalars['Boolean'];\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n languageCode: LanguageCode;\r\n name: Scalars['String'];\r\n code: Scalars['String'];\r\n values: Array<FacetValue>;\r\n translations: Array<FacetTranslation>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type FacetFilterParameter = {\r\n isPrivate?: Maybe<BooleanOperators>;\r\n id?: Maybe<IdOperators>;\r\n createdAt?: Maybe<DateOperators>;\r\n updatedAt?: Maybe<DateOperators>;\r\n languageCode?: Maybe<StringOperators>;\r\n name?: Maybe<StringOperators>;\r\n code?: Maybe<StringOperators>;\r\n};\r\n\r\nexport type FacetInUseError = ErrorResult & {\r\n __typename?: 'FacetInUseError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n facetCode: Scalars['String'];\r\n productCount: Scalars['Int'];\r\n variantCount: Scalars['Int'];\r\n};\r\n\r\nexport type FacetList = PaginatedList & {\r\n __typename?: 'FacetList';\r\n items: Array<Facet>;\r\n totalItems: Scalars['Int'];\r\n};\r\n\r\nexport type FacetListOptions = {\r\n /** Skips the first n results, for use in pagination */\r\n skip?: Maybe<Scalars['Int']>;\r\n /** Takes n results, for use in pagination */\r\n take?: Maybe<Scalars['Int']>;\r\n /** Specifies which properties to sort the results by */\r\n sort?: Maybe<FacetSortParameter>;\r\n /** Allows the results to be filtered */\r\n filter?: Maybe<FacetFilterParameter>;\r\n /** Specifies whether multiple \"filter\" arguments should be combines with a logical AND or OR operation. Defaults to AND. */\r\n filterOperator?: Maybe<LogicalOperator>;\r\n};\r\n\r\nexport type FacetSortParameter = {\r\n id?: Maybe<SortOrder>;\r\n createdAt?: Maybe<SortOrder>;\r\n updatedAt?: Maybe<SortOrder>;\r\n name?: Maybe<SortOrder>;\r\n code?: Maybe<SortOrder>;\r\n};\r\n\r\nexport type FacetTranslation = {\r\n __typename?: 'FacetTranslation';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n languageCode: LanguageCode;\r\n name: Scalars['String'];\r\n};\r\n\r\nexport type FacetTranslationInput = {\r\n id?: Maybe<Scalars['ID']>;\r\n languageCode: LanguageCode;\r\n name?: Maybe<Scalars['String']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type FacetValue = Node & {\r\n __typename?: 'FacetValue';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n languageCode: LanguageCode;\r\n facet: Facet;\r\n name: Scalars['String'];\r\n code: Scalars['String'];\r\n translations: Array<FacetValueTranslation>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\n/**\r\n * Used to construct boolean expressions for filtering search results\r\n * by FacetValue ID. Examples:\r\n *\r\n * * ID=1 OR ID=2: `{ facetValueFilters: [{ or: [1,2] }] }`\r\n * * ID=1 AND ID=2: `{ facetValueFilters: [{ and: 1 }, { and: 2 }] }`\r\n * * ID=1 AND (ID=2 OR ID=3): `{ facetValueFilters: [{ and: 1 }, { or: [2,3] }] }`\r\n */\r\nexport type FacetValueFilterInput = {\r\n and?: Maybe<Scalars['ID']>;\r\n or?: Maybe<Array<Scalars['ID']>>;\r\n};\r\n\r\n/**\r\n * Which FacetValues are present in the products returned\r\n * by the search, and in what quantity.\r\n */\r\nexport type FacetValueResult = {\r\n __typename?: 'FacetValueResult';\r\n facetValue: FacetValue;\r\n count: Scalars['Int'];\r\n};\r\n\r\nexport type FacetValueTranslation = {\r\n __typename?: 'FacetValueTranslation';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n languageCode: LanguageCode;\r\n name: Scalars['String'];\r\n};\r\n\r\nexport type FacetValueTranslationInput = {\r\n id?: Maybe<Scalars['ID']>;\r\n languageCode: LanguageCode;\r\n name?: Maybe<Scalars['String']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type FloatCustomFieldConfig = CustomField & {\r\n __typename?: 'FloatCustomFieldConfig';\r\n name: Scalars['String'];\r\n type: Scalars['String'];\r\n list: Scalars['Boolean'];\r\n label?: Maybe<Array<LocalizedString>>;\r\n description?: Maybe<Array<LocalizedString>>;\r\n readonly?: Maybe<Scalars['Boolean']>;\r\n internal?: Maybe<Scalars['Boolean']>;\r\n nullable?: Maybe<Scalars['Boolean']>;\r\n min?: Maybe<Scalars['Float']>;\r\n max?: Maybe<Scalars['Float']>;\r\n step?: Maybe<Scalars['Float']>;\r\n ui?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type FulfillOrderInput = {\r\n lines: Array<OrderLineInput>;\r\n handler: ConfigurableOperationInput;\r\n};\r\n\r\nexport type Fulfillment = Node & {\r\n __typename?: 'Fulfillment';\r\n nextStates: Array<Scalars['String']>;\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n orderItems: Array<OrderItem>;\r\n summary: Array<FulfillmentLineSummary>;\r\n state: Scalars['String'];\r\n method: Scalars['String'];\r\n trackingCode?: Maybe<Scalars['String']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type FulfillmentLineSummary = {\r\n __typename?: 'FulfillmentLineSummary';\r\n orderLine: OrderLine;\r\n quantity: Scalars['Int'];\r\n};\r\n\r\n/** Returned when there is an error in transitioning the Fulfillment state */\r\nexport type FulfillmentStateTransitionError = ErrorResult & {\r\n __typename?: 'FulfillmentStateTransitionError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n transitionError: Scalars['String'];\r\n fromState: Scalars['String'];\r\n toState: Scalars['String'];\r\n};\r\n\r\nexport enum GlobalFlag {\r\n TRUE = 'TRUE',\r\n FALSE = 'FALSE',\r\n INHERIT = 'INHERIT'\r\n}\r\n\r\nexport type GlobalSettings = {\r\n __typename?: 'GlobalSettings';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n availableLanguages: Array<LanguageCode>;\r\n trackInventory: Scalars['Boolean'];\r\n outOfStockThreshold: Scalars['Int'];\r\n serverConfig: ServerConfig;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type HistoryEntry = Node & {\r\n __typename?: 'HistoryEntry';\r\n isPublic: Scalars['Boolean'];\r\n administrator?: Maybe<Administrator>;\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n type: HistoryEntryType;\r\n data: Scalars['JSON'];\r\n};\r\n\r\nexport type HistoryEntryFilterParameter = {\r\n isPublic?: Maybe<BooleanOperators>;\r\n id?: Maybe<IdOperators>;\r\n createdAt?: Maybe<DateOperators>;\r\n updatedAt?: Maybe<DateOperators>;\r\n type?: Maybe<StringOperators>;\r\n};\r\n\r\nexport type HistoryEntryList = PaginatedList & {\r\n __typename?: 'HistoryEntryList';\r\n items: Array<HistoryEntry>;\r\n totalItems: Scalars['Int'];\r\n};\r\n\r\nexport type HistoryEntryListOptions = {\r\n /** Skips the first n results, for use in pagination */\r\n skip?: Maybe<Scalars['Int']>;\r\n /** Takes n results, for use in pagination */\r\n take?: Maybe<Scalars['Int']>;\r\n /** Specifies which properties to sort the results by */\r\n sort?: Maybe<HistoryEntrySortParameter>;\r\n /** Allows the results to be filtered */\r\n filter?: Maybe<HistoryEntryFilterParameter>;\r\n /** Specifies whether multiple \"filter\" arguments should be combines with a logical AND or OR operation. Defaults to AND. */\r\n filterOperator?: Maybe<LogicalOperator>;\r\n};\r\n\r\nexport type HistoryEntrySortParameter = {\r\n id?: Maybe<SortOrder>;\r\n createdAt?: Maybe<SortOrder>;\r\n updatedAt?: Maybe<SortOrder>;\r\n};\r\n\r\nexport enum HistoryEntryType {\r\n CUSTOMER_REGISTERED = 'CUSTOMER_REGISTERED',\r\n CUSTOMER_VERIFIED = 'CUSTOMER_VERIFIED',\r\n CUSTOMER_DETAIL_UPDATED = 'CUSTOMER_DETAIL_UPDATED',\r\n CUSTOMER_ADDED_TO_GROUP = 'CUSTOMER_ADDED_TO_GROUP',\r\n CUSTOMER_REMOVED_FROM_GROUP = 'CUSTOMER_REMOVED_FROM_GROUP',\r\n CUSTOMER_ADDRESS_CREATED = 'CUSTOMER_ADDRESS_CREATED',\r\n CUSTOMER_ADDRESS_UPDATED = 'CUSTOMER_ADDRESS_UPDATED',\r\n CUSTOMER_ADDRESS_DELETED = 'CUSTOMER_ADDRESS_DELETED',\r\n CUSTOMER_PASSWORD_UPDATED = 'CUSTOMER_PASSWORD_UPDATED',\r\n CUSTOMER_PASSWORD_RESET_REQUESTED = 'CUSTOMER_PASSWORD_RESET_REQUESTED',\r\n CUSTOMER_PASSWORD_RESET_VERIFIED = 'CUSTOMER_PASSWORD_RESET_VERIFIED',\r\n CUSTOMER_EMAIL_UPDATE_REQUESTED = 'CUSTOMER_EMAIL_UPDATE_REQUESTED',\r\n CUSTOMER_EMAIL_UPDATE_VERIFIED = 'CUSTOMER_EMAIL_UPDATE_VERIFIED',\r\n CUSTOMER_NOTE = 'CUSTOMER_NOTE',\r\n ORDER_STATE_TRANSITION = 'ORDER_STATE_TRANSITION',\r\n ORDER_PAYMENT_TRANSITION = 'ORDER_PAYMENT_TRANSITION',\r\n ORDER_FULFILLMENT = 'ORDER_FULFILLMENT',\r\n ORDER_CANCELLATION = 'ORDER_CANCELLATION',\r\n ORDER_REFUND_TRANSITION = 'ORDER_REFUND_TRANSITION',\r\n ORDER_FULFILLMENT_TRANSITION = 'ORDER_FULFILLMENT_TRANSITION',\r\n ORDER_NOTE = 'ORDER_NOTE',\r\n ORDER_COUPON_APPLIED = 'ORDER_COUPON_APPLIED',\r\n ORDER_COUPON_REMOVED = 'ORDER_COUPON_REMOVED',\r\n ORDER_MODIFIED = 'ORDER_MODIFIED'\r\n}\r\n\r\n/** Operators for filtering on a list of ID fields */\r\nexport type IdListOperators = {\r\n inList: Scalars['ID'];\r\n};\r\n\r\n/** Operators for filtering on an ID field */\r\nexport type IdOperators = {\r\n eq?: Maybe<Scalars['String']>;\r\n notEq?: Maybe<Scalars['String']>;\r\n in?: Maybe<Array<Scalars['String']>>;\r\n notIn?: Maybe<Array<Scalars['String']>>;\r\n};\r\n\r\nexport type ImportInfo = {\r\n __typename?: 'ImportInfo';\r\n errors?: Maybe<Array<Scalars['String']>>;\r\n processed: Scalars['Int'];\r\n imported: Scalars['Int'];\r\n};\r\n\r\n/** Returned when attempting to set a ShippingMethod for which the Order is not eligible */\r\nexport type IneligibleShippingMethodError = ErrorResult & {\r\n __typename?: 'IneligibleShippingMethodError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n};\r\n\r\n/** Returned when attempting to add more items to the Order than are available */\r\nexport type InsufficientStockError = ErrorResult & {\r\n __typename?: 'InsufficientStockError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n quantityAvailable: Scalars['Int'];\r\n order: Order;\r\n};\r\n\r\n/**\r\n * Returned if attempting to create a Fulfillment when there is insufficient\r\n * stockOnHand of a ProductVariant to satisfy the requested quantity.\r\n */\r\nexport type InsufficientStockOnHandError = ErrorResult & {\r\n __typename?: 'InsufficientStockOnHandError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n productVariantId: Scalars['ID'];\r\n productVariantName: Scalars['String'];\r\n stockOnHand: Scalars['Int'];\r\n};\r\n\r\nexport type IntCustomFieldConfig = CustomField & {\r\n __typename?: 'IntCustomFieldConfig';\r\n name: Scalars['String'];\r\n type: Scalars['String'];\r\n list: Scalars['Boolean'];\r\n label?: Maybe<Array<LocalizedString>>;\r\n description?: Maybe<Array<LocalizedString>>;\r\n readonly?: Maybe<Scalars['Boolean']>;\r\n internal?: Maybe<Scalars['Boolean']>;\r\n nullable?: Maybe<Scalars['Boolean']>;\r\n min?: Maybe<Scalars['Int']>;\r\n max?: Maybe<Scalars['Int']>;\r\n step?: Maybe<Scalars['Int']>;\r\n ui?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\n/** Returned if the user authentication credentials are not valid */\r\nexport type InvalidCredentialsError = ErrorResult & {\r\n __typename?: 'InvalidCredentialsError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n authenticationError: Scalars['String'];\r\n};\r\n\r\n/** Returned if the specified FulfillmentHandler code is not valid */\r\nexport type InvalidFulfillmentHandlerError = ErrorResult & {\r\n __typename?: 'InvalidFulfillmentHandlerError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n};\r\n\r\n/** Returned if the specified items are already part of a Fulfillment */\r\nexport type ItemsAlreadyFulfilledError = ErrorResult & {\r\n __typename?: 'ItemsAlreadyFulfilledError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n};\r\n\r\n\r\nexport type Job = Node & {\r\n __typename?: 'Job';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n startedAt?: Maybe<Scalars['DateTime']>;\r\n settledAt?: Maybe<Scalars['DateTime']>;\r\n queueName: Scalars['String'];\r\n state: JobState;\r\n progress: Scalars['Float'];\r\n data?: Maybe<Scalars['JSON']>;\r\n result?: Maybe<Scalars['JSON']>;\r\n error?: Maybe<Scalars['JSON']>;\r\n isSettled: Scalars['Boolean'];\r\n duration: Scalars['Int'];\r\n retries: Scalars['Int'];\r\n attempts: Scalars['Int'];\r\n};\r\n\r\nexport type JobBufferSize = {\r\n __typename?: 'JobBufferSize';\r\n bufferId: Scalars['String'];\r\n size: Scalars['Int'];\r\n};\r\n\r\nexport type JobFilterParameter = {\r\n id?: Maybe<IdOperators>;\r\n createdAt?: Maybe<DateOperators>;\r\n startedAt?: Maybe<DateOperators>;\r\n settledAt?: Maybe<DateOperators>;\r\n queueName?: Maybe<StringOperators>;\r\n state?: Maybe<StringOperators>;\r\n progress?: Maybe<NumberOperators>;\r\n isSettled?: Maybe<BooleanOperators>;\r\n duration?: Maybe<NumberOperators>;\r\n retries?: Maybe<NumberOperators>;\r\n attempts?: Maybe<NumberOperators>;\r\n};\r\n\r\nexport type JobList = PaginatedList & {\r\n __typename?: 'JobList';\r\n items: Array<Job>;\r\n totalItems: Scalars['Int'];\r\n};\r\n\r\nexport type JobListOptions = {\r\n /** Skips the first n results, for use in pagination */\r\n skip?: Maybe<Scalars['Int']>;\r\n /** Takes n results, for use in pagination */\r\n take?: Maybe<Scalars['Int']>;\r\n /** Specifies which properties to sort the results by */\r\n sort?: Maybe<JobSortParameter>;\r\n /** Allows the results to be filtered */\r\n filter?: Maybe<JobFilterParameter>;\r\n /** Specifies whether multiple \"filter\" arguments should be combines with a logical AND or OR operation. Defaults to AND. */\r\n filterOperator?: Maybe<LogicalOperator>;\r\n};\r\n\r\nexport type JobQueue = {\r\n __typename?: 'JobQueue';\r\n name: Scalars['String'];\r\n running: Scalars['Boolean'];\r\n};\r\n\r\nexport type JobSortParameter = {\r\n id?: Maybe<SortOrder>;\r\n createdAt?: Maybe<SortOrder>;\r\n startedAt?: Maybe<SortOrder>;\r\n settledAt?: Maybe<SortOrder>;\r\n queueName?: Maybe<SortOrder>;\r\n progress?: Maybe<SortOrder>;\r\n duration?: Maybe<SortOrder>;\r\n retries?: Maybe<SortOrder>;\r\n attempts?: Maybe<SortOrder>;\r\n};\r\n\r\n/**\r\n * @description\r\n * The state of a Job in the JobQueue\r\n *\r\n * @docsCategory common\r\n */\r\nexport enum JobState {\r\n PENDING = 'PENDING',\r\n RUNNING = 'RUNNING',\r\n COMPLETED = 'COMPLETED',\r\n RETRYING = 'RETRYING',\r\n FAILED = 'FAILED',\r\n CANCELLED = 'CANCELLED'\r\n}\r\n\r\n/**\r\n * @description\r\n * Languages in the form of a ISO 639-1 language code with optional\r\n * region or script modifier (e.g. de_AT). The selection available is based\r\n * on the [Unicode CLDR summary list](https://unicode-org.github.io/cldr-staging/charts/37/summary/root.html)\r\n * and includes the major spoken languages of the world and any widely-used variants.\r\n *\r\n * @docsCategory common\r\n */\r\nexport enum LanguageCode {\r\n /** Afrikaans */\r\n af = 'af',\r\n /** Akan */\r\n ak = 'ak',\r\n /** Amharic */\r\n am = 'am',\r\n /** Arabic */\r\n ar = 'ar',\r\n /** Assamese */\r\n as = 'as',\r\n /** Azerbaijani */\r\n az = 'az',\r\n /** Belarusian */\r\n be = 'be',\r\n /** Bulgarian */\r\n bg = 'bg',\r\n /** Bambara */\r\n bm = 'bm',\r\n /** Bangla */\r\n bn = 'bn',\r\n /** Tibetan */\r\n bo = 'bo',\r\n /** Breton */\r\n br = 'br',\r\n /** Bosnian */\r\n bs = 'bs',\r\n /** Catalan */\r\n ca = 'ca',\r\n /** Chechen */\r\n ce = 'ce',\r\n /** Corsican */\r\n co = 'co',\r\n /** Czech */\r\n cs = 'cs',\r\n /** Church Slavic */\r\n cu = 'cu',\r\n /** Welsh */\r\n cy = 'cy',\r\n /** Danish */\r\n da = 'da',\r\n /** German */\r\n de = 'de',\r\n /** Austrian German */\r\n de_AT = 'de_AT',\r\n /** Swiss High German */\r\n de_CH = 'de_CH',\r\n /** Dzongkha */\r\n dz = 'dz',\r\n /** Ewe */\r\n ee = 'ee',\r\n /** Greek */\r\n el = 'el',\r\n /** English */\r\n en = 'en',\r\n /** Australian English */\r\n en_AU = 'en_AU',\r\n /** Canadian English */\r\n en_CA = 'en_CA',\r\n /** British English */\r\n en_GB = 'en_GB',\r\n /** American English */\r\n en_US = 'en_US',\r\n /** Esperanto */\r\n eo = 'eo',\r\n /** Spanish */\r\n es = 'es',\r\n /** European Spanish */\r\n es_ES = 'es_ES',\r\n /** Mexican Spanish */\r\n es_MX = 'es_MX',\r\n /** Estonian */\r\n et = 'et',\r\n /** Basque */\r\n eu = 'eu',\r\n /** Persian */\r\n fa = 'fa',\r\n /** Dari */\r\n fa_AF = 'fa_AF',\r\n /** Fulah */\r\n ff = 'ff',\r\n /** Finnish */\r\n fi = 'fi',\r\n /** Faroese */\r\n fo = 'fo',\r\n /** French */\r\n fr = 'fr',\r\n /** Canadian French */\r\n fr_CA = 'fr_CA',\r\n /** Swiss French */\r\n fr_CH = 'fr_CH',\r\n /** Western Frisian */\r\n fy = 'fy',\r\n /** Irish */\r\n ga = 'ga',\r\n /** Scottish Gaelic */\r\n gd = 'gd',\r\n /** Galician */\r\n gl = 'gl',\r\n /** Gujarati */\r\n gu = 'gu',\r\n /** Manx */\r\n gv = 'gv',\r\n /** Hausa */\r\n ha = 'ha',\r\n /** Hebrew */\r\n he = 'he',\r\n /** Hindi */\r\n hi = 'hi',\r\n /** Croatian */\r\n hr = 'hr',\r\n /** Haitian Creole */\r\n ht = 'ht',\r\n /** Hungarian */\r\n hu = 'hu',\r\n /** Armenian */\r\n hy = 'hy',\r\n /** Interlingua */\r\n ia = 'ia',\r\n /** Indonesian */\r\n id = 'id',\r\n /** Igbo */\r\n ig = 'ig',\r\n /** Sichuan Yi */\r\n ii = 'ii',\r\n /** Icelandic */\r\n is = 'is',\r\n /** Italian */\r\n it = 'it',\r\n /** Japanese */\r\n ja = 'ja',\r\n /** Javanese */\r\n jv = 'jv',\r\n /** Georgian */\r\n ka = 'ka',\r\n /** Kikuyu */\r\n ki = 'ki',\r\n /** Kazakh */\r\n kk = 'kk',\r\n /** Kalaallisut */\r\n kl = 'kl',\r\n /** Khmer */\r\n km = 'km',\r\n /** Kannada */\r\n kn = 'kn',\r\n /** Korean */\r\n ko = 'ko',\r\n /** Kashmiri */\r\n ks = 'ks',\r\n /** Kurdish */\r\n ku = 'ku',\r\n /** Cornish */\r\n kw = 'kw',\r\n /** Kyrgyz */\r\n ky = 'ky',\r\n /** Latin */\r\n la = 'la',\r\n /** Luxembourgish */\r\n lb = 'lb',\r\n /** Ganda */\r\n lg = 'lg',\r\n /** Lingala */\r\n ln = 'ln',\r\n /** Lao */\r\n lo = 'lo',\r\n /** Lithuanian */\r\n lt = 'lt',\r\n /** Luba-Katanga */\r\n lu = 'lu',\r\n /** Latvian */\r\n lv = 'lv',\r\n /** Malagasy */\r\n mg = 'mg',\r\n /** Maori */\r\n mi = 'mi',\r\n /** Macedonian */\r\n mk = 'mk',\r\n /** Malayalam */\r\n ml = 'ml',\r\n /** Mongolian */\r\n mn = 'mn',\r\n /** Marathi */\r\n mr = 'mr',\r\n /** Malay */\r\n ms = 'ms',\r\n /** Maltese */\r\n mt = 'mt',\r\n /** Burmese */\r\n my = 'my',\r\n /** Norwegian Bokmål */\r\n nb = 'nb',\r\n /** North Ndebele */\r\n nd = 'nd',\r\n /** Nepali */\r\n ne = 'ne',\r\n /** Dutch */\r\n nl = 'nl',\r\n /** Flemish */\r\n nl_BE = 'nl_BE',\r\n /** Norwegian Nynorsk */\r\n nn = 'nn',\r\n /** Nyanja */\r\n ny = 'ny',\r\n /** Oromo */\r\n om = 'om',\r\n /** Odia */\r\n or = 'or',\r\n /** Ossetic */\r\n os = 'os',\r\n /** Punjabi */\r\n pa = 'pa',\r\n /** Polish */\r\n pl = 'pl',\r\n /** Pashto */\r\n ps = 'ps',\r\n /** Portuguese */\r\n pt = 'pt',\r\n /** Brazilian Portuguese */\r\n pt_BR = 'pt_BR',\r\n /** European Portuguese */\r\n pt_PT = 'pt_PT',\r\n /** Quechua */\r\n qu = 'qu',\r\n /** Romansh */\r\n rm = 'rm',\r\n /** Rundi */\r\n rn = 'rn',\r\n /** Romanian */\r\n ro = 'ro',\r\n /** Moldavian */\r\n ro_MD = 'ro_MD',\r\n /** Russian */\r\n ru = 'ru',\r\n /** Kinyarwanda */\r\n rw = 'rw',\r\n /** Sanskrit */\r\n sa = 'sa',\r\n /** Sindhi */\r\n sd = 'sd',\r\n /** Northern Sami */\r\n se = 'se',\r\n /** Sango */\r\n sg = 'sg',\r\n /** Sinhala */\r\n si = 'si',\r\n /** Slovak */\r\n sk = 'sk',\r\n /** Slovenian */\r\n sl = 'sl',\r\n /** Samoan */\r\n sm = 'sm',\r\n /** Shona */\r\n sn = 'sn',\r\n /** Somali */\r\n so = 'so',\r\n /** Albanian */\r\n sq = 'sq',\r\n /** Serbian */\r\n sr = 'sr',\r\n /** Southern Sotho */\r\n st = 'st',\r\n /** Sundanese */\r\n su = 'su',\r\n /** Swedish */\r\n sv = 'sv',\r\n /** Swahili */\r\n sw = 'sw',\r\n /** Congo Swahili */\r\n sw_CD = 'sw_CD',\r\n /** Tamil */\r\n ta = 'ta',\r\n /** Telugu */\r\n te = 'te',\r\n /** Tajik */\r\n tg = 'tg',\r\n /** Thai */\r\n th = 'th',\r\n /** Tigrinya */\r\n ti = 'ti',\r\n /** Turkmen */\r\n tk = 'tk',\r\n /** Tongan */\r\n to = 'to',\r\n /** Turkish */\r\n tr = 'tr',\r\n /** Tatar */\r\n tt = 'tt',\r\n /** Uyghur */\r\n ug = 'ug',\r\n /** Ukrainian */\r\n uk = 'uk',\r\n /** Urdu */\r\n ur = 'ur',\r\n /** Uzbek */\r\n uz = 'uz',\r\n /** Vietnamese */\r\n vi = 'vi',\r\n /** Volapük */\r\n vo = 'vo',\r\n /** Wolof */\r\n wo = 'wo',\r\n /** Xhosa */\r\n xh = 'xh',\r\n /** Yiddish */\r\n yi = 'yi',\r\n /** Yoruba */\r\n yo = 'yo',\r\n /** Chinese */\r\n zh = 'zh',\r\n /** Simplified Chinese */\r\n zh_Hans = 'zh_Hans',\r\n /** Traditional Chinese */\r\n zh_Hant = 'zh_Hant',\r\n /** Zulu */\r\n zu = 'zu'\r\n}\r\n\r\n/** Returned if attempting to set a Channel's defaultLanguageCode to a language which is not enabled in GlobalSettings */\r\nexport type LanguageNotAvailableError = ErrorResult & {\r\n __typename?: 'LanguageNotAvailableError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n languageCode: Scalars['String'];\r\n};\r\n\r\nexport type LocaleStringCustomFieldConfig = CustomField & {\r\n __typename?: 'LocaleStringCustomFieldConfig';\r\n name: Scalars['String'];\r\n type: Scalars['String'];\r\n list: Scalars['Boolean'];\r\n length?: Maybe<Scalars['Int']>;\r\n label?: Maybe<Array<LocalizedString>>;\r\n description?: Maybe<Array<LocalizedString>>;\r\n readonly?: Maybe<Scalars['Boolean']>;\r\n internal?: Maybe<Scalars['Boolean']>;\r\n nullable?: Maybe<Scalars['Boolean']>;\r\n pattern?: Maybe<Scalars['String']>;\r\n ui?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type LocalizedString = {\r\n __typename?: 'LocalizedString';\r\n languageCode: LanguageCode;\r\n value: Scalars['String'];\r\n};\r\n\r\nexport enum LogicalOperator {\r\n AND = 'AND',\r\n OR = 'OR'\r\n}\r\n\r\nexport type ManualPaymentInput = {\r\n orderId: Scalars['ID'];\r\n method: Scalars['String'];\r\n transactionId?: Maybe<Scalars['String']>;\r\n metadata?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\n/**\r\n * Returned when a call to addManualPaymentToOrder is made but the Order\r\n * is not in the required state.\r\n */\r\nexport type ManualPaymentStateError = ErrorResult & {\r\n __typename?: 'ManualPaymentStateError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n};\r\n\r\nexport type MimeTypeError = ErrorResult & {\r\n __typename?: 'MimeTypeError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n fileName: Scalars['String'];\r\n mimeType: Scalars['String'];\r\n};\r\n\r\n/** Returned if a PromotionCondition has neither a couponCode nor any conditions set */\r\nexport type MissingConditionsError = ErrorResult & {\r\n __typename?: 'MissingConditionsError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n};\r\n\r\nexport type ModifyOrderInput = {\r\n dryRun: Scalars['Boolean'];\r\n orderId: Scalars['ID'];\r\n addItems?: Maybe<Array<AddItemInput>>;\r\n adjustOrderLines?: Maybe<Array<AdjustOrderLineInput>>;\r\n surcharges?: Maybe<Array<SurchargeInput>>;\r\n updateShippingAddress?: Maybe<UpdateOrderAddressInput>;\r\n updateBillingAddress?: Maybe<UpdateOrderAddressInput>;\r\n note?: Maybe<Scalars['String']>;\r\n refund?: Maybe<AdministratorRefundInput>;\r\n options?: Maybe<ModifyOrderOptions>;\r\n couponCodes?: Maybe<Array<Scalars['String']>>;\r\n};\r\n\r\nexport type ModifyOrderOptions = {\r\n freezePromotions?: Maybe<Scalars['Boolean']>;\r\n recalculateShipping?: Maybe<Scalars['Boolean']>;\r\n};\r\n\r\nexport type ModifyOrderResult = Order | NoChangesSpecifiedError | OrderModificationStateError | PaymentMethodMissingError | RefundPaymentIdMissingError | OrderLimitError | NegativeQuantityError | InsufficientStockError | CouponCodeExpiredError | CouponCodeInvalidError | CouponCodeLimitError;\r\n\r\nexport type MoveCollectionInput = {\r\n collectionId: Scalars['ID'];\r\n parentId: Scalars['ID'];\r\n index: Scalars['Int'];\r\n};\r\n\r\n/** Returned if an operation has specified OrderLines from multiple Orders */\r\nexport type MultipleOrderError = ErrorResult & {\r\n __typename?: 'MultipleOrderError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n};\r\n\r\nexport type Mutation = {\r\n __typename?: 'Mutation';\r\n /** Add Customers to a CustomerGroup */\r\n addCustomersToGroup: CustomerGroup;\r\n addFulfillmentToOrder: AddFulfillmentToOrderResult;\r\n /** Adds an item to the draft Order. */\r\n addItemToDraftOrder: UpdateOrderItemsResult;\r\n /**\r\n * Used to manually create a new Payment against an Order.\r\n * This can be used by an Administrator when an Order is in the ArrangingPayment state.\r\n *\r\n * It is also used when a completed Order\r\n * has been modified (using `modifyOrder`) and the price has increased. The extra payment\r\n * can then be manually arranged by the administrator, and the details used to create a new\r\n * Payment.\r\n */\r\n addManualPaymentToOrder: AddManualPaymentToOrderResult;\r\n /** Add members to a Zone */\r\n addMembersToZone: Zone;\r\n addNoteToCustomer: Customer;\r\n addNoteToOrder: Order;\r\n /** Add an OptionGroup to a Product */\r\n addOptionGroupToProduct: Product;\r\n /** Adjusts a draft OrderLine. If custom fields are defined on the OrderLine entity, a third argument 'customFields' of type `OrderLineCustomFieldsInput` will be available. */\r\n adjustDraftOrderLine: UpdateOrderItemsResult;\r\n /** Applies the given coupon code to the draft Order */\r\n applyCouponCodeToDraftOrder: ApplyCouponCodeResult;\r\n /** Assign assets to channel */\r\n assignAssetsToChannel: Array<Asset>;\r\n /** Assigns Collections to the specified Channel */\r\n assignCollectionsToChannel: Array<Collection>;\r\n /** Assigns Facets to the specified Channel */\r\n assignFacetsToChannel: Array<Facet>;\r\n /** Assigns ProductVariants to the specified Channel */\r\n assignProductVariantsToChannel: Array<ProductVariant>;\r\n /** Assigns all ProductVariants of Product to the specified Channel */\r\n assignProductsToChannel: Array<Product>;\r\n /** Assigns Promotions to the specified Channel */\r\n assignPromotionsToChannel: Array<Promotion>;\r\n /** Assign a Role to an Administrator */\r\n assignRoleToAdministrator: Administrator;\r\n /** Authenticates the user using a named authentication strategy */\r\n authenticate: AuthenticationResult;\r\n cancelJob: Job;\r\n cancelOrder: CancelOrderResult;\r\n cancelPayment: CancelPaymentResult;\r\n /** Create a new Administrator */\r\n createAdministrator: Administrator;\r\n /** Create a new Asset */\r\n createAssets: Array<CreateAssetResult>;\r\n /** Create a new Channel */\r\n createChannel: CreateChannelResult;\r\n /** Create a new Collection */\r\n createCollection: Collection;\r\n /** Create a new Country */\r\n createCountry: Country;\r\n /** Create a new Customer. If a password is provided, a new User will also be created an linked to the Customer. */\r\n createCustomer: CreateCustomerResult;\r\n /** Create a new Address and associate it with the Customer specified by customerId */\r\n createCustomerAddress: Address;\r\n /** Create a new CustomerGroup */\r\n createCustomerGroup: CustomerGroup;\r\n /** Creates a draft Order */\r\n createDraftOrder: Order;\r\n /** Create a new Facet */\r\n createFacet: Facet;\r\n /** Create one or more FacetValues */\r\n createFacetValues: Array<FacetValue>;\r\n /** Create existing PaymentMethod */\r\n createPaymentMethod: PaymentMethod;\r\n /** Create a new Product */\r\n createProduct: Product;\r\n /** Create a new ProductOption within a ProductOptionGroup */\r\n createProductOption: ProductOption;\r\n /** Create a new ProductOptionGroup */\r\n createProductOptionGroup: ProductOptionGroup;\r\n /** Create a set of ProductVariants based on the OptionGroups assigned to the given Product */\r\n createProductVariants: Array<Maybe<ProductVariant>>;\r\n createPromotion: CreatePromotionResult;\r\n /** Create a new Role */\r\n createRole: Role;\r\n /** Create a new ShippingMethod */\r\n createShippingMethod: ShippingMethod;\r\n /** Create a new Tag */\r\n createTag: Tag;\r\n /** Create a new TaxCategory */\r\n createTaxCategory: TaxCategory;\r\n /** Create a new TaxRate */\r\n createTaxRate: TaxRate;\r\n /** Create a new Zone */\r\n createZone: Zone;\r\n /** Delete an Administrator */\r\n deleteAdministrator: DeletionResponse;\r\n /** Delete an Asset */\r\n deleteAsset: DeletionResponse;\r\n /** Delete multiple Assets */\r\n deleteAssets: DeletionResponse;\r\n /** Delete a Channel */\r\n deleteChannel: DeletionResponse;\r\n /** Delete a Collection and all of its descendants */\r\n deleteCollection: DeletionResponse;\r\n /** Delete multiple Collections and all of their descendants */\r\n deleteCollections: Array<DeletionResponse>;\r\n /** Delete a Country */\r\n deleteCountry: DeletionResponse;\r\n /** Delete a Customer */\r\n deleteCustomer: DeletionResponse;\r\n /** Update an existing Address */\r\n deleteCustomerAddress: Success;\r\n /** Delete a CustomerGroup */\r\n deleteCustomerGroup: DeletionResponse;\r\n deleteCustomerNote: DeletionResponse;\r\n /** Deletes a draft Order */\r\n deleteDraftOrder: DeletionResponse;\r\n /** Delete an existing Facet */\r\n deleteFacet: DeletionResponse;\r\n /** Delete one or more FacetValues */\r\n deleteFacetValues: Array<DeletionResponse>;\r\n /** Delete multiple existing Facets */\r\n deleteFacets: Array<DeletionResponse>;\r\n deleteOrderNote: DeletionResponse;\r\n /** Delete a PaymentMethod */\r\n deletePaymentMethod: DeletionResponse;\r\n /** Delete a Product */\r\n deleteProduct: DeletionResponse;\r\n /** Delete a ProductOption */\r\n deleteProductOption: DeletionResponse;\r\n /** Delete a ProductVariant */\r\n deleteProductVariant: DeletionResponse;\r\n /** Delete multiple ProductVariants */\r\n deleteProductVariants: Array<DeletionResponse>;\r\n /** Delete multiple Products */\r\n deleteProducts: Array<DeletionResponse>;\r\n deletePromotion: DeletionResponse;\r\n /** Delete an existing Role */\r\n deleteRole: DeletionResponse;\r\n /** Delete a ShippingMethod */\r\n deleteShippingMethod: DeletionResponse;\r\n /** Delete an existing Tag */\r\n deleteTag: DeletionResponse;\r\n /** Deletes a TaxCategory */\r\n deleteTaxCategory: DeletionResponse;\r\n /** Delete a TaxRate */\r\n deleteTaxRate: DeletionResponse;\r\n /** Delete a Zone */\r\n deleteZone: DeletionResponse;\r\n flushBufferedJobs: Success;\r\n importProducts?: Maybe<ImportInfo>;\r\n /** Authenticates the user using the native authentication strategy. This mutation is an alias for `authenticate({ native: { ... }})` */\r\n login: NativeAuthenticationResult;\r\n logout: Success;\r\n /**\r\n * Allows an Order to be modified after it has been completed by the Customer. The Order must first\r\n * be in the `Modifying` state.\r\n */\r\n modifyOrder: ModifyOrderResult;\r\n /** Move a Collection to a different parent or index */\r\n moveCollection: Collection;\r\n refundOrder: RefundOrderResult;\r\n reindex: Job;\r\n /** Removes Collections from the specified Channel */\r\n removeCollectionsFromChannel: Array<Collection>;\r\n /** Removes the given coupon code from the draft Order */\r\n removeCouponCodeFromDraftOrder?: Maybe<Order>;\r\n /** Remove Customers from a CustomerGroup */\r\n removeCustomersFromGroup: CustomerGroup;\r\n /** Remove an OrderLine from the draft Order */\r\n removeDraftOrderLine: RemoveOrderItemsResult;\r\n /** Removes Facets from the specified Channel */\r\n removeFacetsFromChannel: Array<RemoveFacetFromChannelResult>;\r\n /** Remove members from a Zone */\r\n removeMembersFromZone: Zone;\r\n /** Remove an OptionGroup from a Product */\r\n removeOptionGroupFromProduct: RemoveOptionGroupFromProductResult;\r\n /** Removes ProductVariants from the specified Channel */\r\n removeProductVariantsFromChannel: Array<ProductVariant>;\r\n /** Removes all ProductVariants of Product from the specified Channel */\r\n removeProductsFromChannel: Array<Product>;\r\n /** Removes Promotions from the specified Channel */\r\n removePromotionsFromChannel: Array<Promotion>;\r\n /** Remove all settled jobs in the given queues older than the given date. Returns the number of jobs deleted. */\r\n removeSettledJobs: Scalars['Int'];\r\n requestCompleted: Scalars['Int'];\r\n requestStarted: Scalars['Int'];\r\n runPendingSearchIndexUpdates: Success;\r\n setActiveChannel: UserStatus;\r\n setAsLoggedIn: UserStatus;\r\n setAsLoggedOut: UserStatus;\r\n setContentLanguage: LanguageCode;\r\n setCustomerForDraftOrder: SetCustomerForDraftOrderResult;\r\n setDisplayUiExtensionPoints: Scalars['Boolean'];\r\n /** Sets the billing address for a draft Order */\r\n setDraftOrderBillingAddress: Order;\r\n /** Allows any custom fields to be set for the active order */\r\n setDraftOrderCustomFields: Order;\r\n /** Sets the shipping address for a draft Order */\r\n setDraftOrderShippingAddress: Order;\r\n /** Sets the shipping method by id, which can be obtained with the `eligibleShippingMethodsForDraftOrder` query */\r\n setDraftOrderShippingMethod: SetOrderShippingMethodResult;\r\n setOrderCustomFields?: Maybe<Order>;\r\n setUiLanguage: LanguageCode;\r\n setUiLocale?: Maybe<Scalars['String']>;\r\n setUiTheme: Scalars['String'];\r\n settlePayment: SettlePaymentResult;\r\n settleRefund: SettleRefundResult;\r\n transitionFulfillmentToState: TransitionFulfillmentToStateResult;\r\n transitionOrderToState?: Maybe<TransitionOrderToStateResult>;\r\n transitionPaymentToState: TransitionPaymentToStateResult;\r\n /** Update the active (currently logged-in) Administrator */\r\n updateActiveAdministrator: Administrator;\r\n /** Update an existing Administrator */\r\n updateAdministrator: Administrator;\r\n /** Update an existing Asset */\r\n updateAsset: Asset;\r\n /** Update an existing Channel */\r\n updateChannel: UpdateChannelResult;\r\n /** Update an existing Collection */\r\n updateCollection: Collection;\r\n /** Update an existing Country */\r\n updateCountry: Country;\r\n /** Update an existing Customer */\r\n updateCustomer: UpdateCustomerResult;\r\n /** Update an existing Address */\r\n updateCustomerAddress: Address;\r\n /** Update an existing CustomerGroup */\r\n updateCustomerGroup: CustomerGroup;\r\n updateCustomerNote: HistoryEntry;\r\n /** Update an existing Facet */\r\n updateFacet: Facet;\r\n /** Update one or more FacetValues */\r\n updateFacetValues: Array<FacetValue>;\r\n updateGlobalSettings: UpdateGlobalSettingsResult;\r\n updateOrderNote: HistoryEntry;\r\n /** Update an existing PaymentMethod */\r\n updatePaymentMethod: PaymentMethod;\r\n /** Update an existing Product */\r\n updateProduct: Product;\r\n /** Create a new ProductOption within a ProductOptionGroup */\r\n updateProductOption: ProductOption;\r\n /** Update an existing ProductOptionGroup */\r\n updateProductOptionGroup: ProductOptionGroup;\r\n /** Update existing ProductVariants */\r\n updateProductVariants: Array<Maybe<ProductVariant>>;\r\n /** Update multiple existing Products */\r\n updateProducts: Array<Product>;\r\n updatePromotion: UpdatePromotionResult;\r\n /** Update an existing Role */\r\n updateRole: Role;\r\n /** Update an existing ShippingMethod */\r\n updateShippingMethod: ShippingMethod;\r\n /** Update an existing Tag */\r\n updateTag: Tag;\r\n /** Update an existing TaxCategory */\r\n updateTaxCategory: TaxCategory;\r\n /** Update an existing TaxRate */\r\n updateTaxRate: TaxRate;\r\n updateUserChannels: UserStatus;\r\n /** Update an existing Zone */\r\n updateZone: Zone;\r\n};\r\n\r\n\r\nexport type MutationAddCustomersToGroupArgs = {\r\n customerGroupId: Scalars['ID'];\r\n customerIds: Array<Scalars['ID']>;\r\n};\r\n\r\n\r\nexport type MutationAddFulfillmentToOrderArgs = {\r\n input: FulfillOrderInput;\r\n};\r\n\r\n\r\nexport type MutationAddItemToDraftOrderArgs = {\r\n orderId: Scalars['ID'];\r\n input: AddItemToDraftOrderInput;\r\n};\r\n\r\n\r\nexport type MutationAddManualPaymentToOrderArgs = {\r\n input: ManualPaymentInput;\r\n};\r\n\r\n\r\nexport type MutationAddMembersToZoneArgs = {\r\n zoneId: Scalars['ID'];\r\n memberIds: Array<Scalars['ID']>;\r\n};\r\n\r\n\r\nexport type MutationAddNoteToCustomerArgs = {\r\n input: AddNoteToCustomerInput;\r\n};\r\n\r\n\r\nexport type MutationAddNoteToOrderArgs = {\r\n input: AddNoteToOrderInput;\r\n};\r\n\r\n\r\nexport type MutationAddOptionGroupToProductArgs = {\r\n productId: Scalars['ID'];\r\n optionGroupId: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationAdjustDraftOrderLineArgs = {\r\n orderId: Scalars['ID'];\r\n input: AdjustDraftOrderLineInput;\r\n};\r\n\r\n\r\nexport type MutationApplyCouponCodeToDraftOrderArgs = {\r\n orderId: Scalars['ID'];\r\n couponCode: Scalars['String'];\r\n};\r\n\r\n\r\nexport type MutationAssignAssetsToChannelArgs = {\r\n input: AssignAssetsToChannelInput;\r\n};\r\n\r\n\r\nexport type MutationAssignCollectionsToChannelArgs = {\r\n input: AssignCollectionsToChannelInput;\r\n};\r\n\r\n\r\nexport type MutationAssignFacetsToChannelArgs = {\r\n input: AssignFacetsToChannelInput;\r\n};\r\n\r\n\r\nexport type MutationAssignProductVariantsToChannelArgs = {\r\n input: AssignProductVariantsToChannelInput;\r\n};\r\n\r\n\r\nexport type MutationAssignProductsToChannelArgs = {\r\n input: AssignProductsToChannelInput;\r\n};\r\n\r\n\r\nexport type MutationAssignPromotionsToChannelArgs = {\r\n input: AssignPromotionsToChannelInput;\r\n};\r\n\r\n\r\nexport type MutationAssignRoleToAdministratorArgs = {\r\n administratorId: Scalars['ID'];\r\n roleId: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationAuthenticateArgs = {\r\n input: AuthenticationInput;\r\n rememberMe?: Maybe<Scalars['Boolean']>;\r\n};\r\n\r\n\r\nexport type MutationCancelJobArgs = {\r\n jobId: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationCancelOrderArgs = {\r\n input: CancelOrderInput;\r\n};\r\n\r\n\r\nexport type MutationCancelPaymentArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationCreateAdministratorArgs = {\r\n input: CreateAdministratorInput;\r\n};\r\n\r\n\r\nexport type MutationCreateAssetsArgs = {\r\n input: Array<CreateAssetInput>;\r\n};\r\n\r\n\r\nexport type MutationCreateChannelArgs = {\r\n input: CreateChannelInput;\r\n};\r\n\r\n\r\nexport type MutationCreateCollectionArgs = {\r\n input: CreateCollectionInput;\r\n};\r\n\r\n\r\nexport type MutationCreateCountryArgs = {\r\n input: CreateCountryInput;\r\n};\r\n\r\n\r\nexport type MutationCreateCustomerArgs = {\r\n input: CreateCustomerInput;\r\n password?: Maybe<Scalars['String']>;\r\n};\r\n\r\n\r\nexport type MutationCreateCustomerAddressArgs = {\r\n customerId: Scalars['ID'];\r\n input: CreateAddressInput;\r\n};\r\n\r\n\r\nexport type MutationCreateCustomerGroupArgs = {\r\n input: CreateCustomerGroupInput;\r\n};\r\n\r\n\r\nexport type MutationCreateFacetArgs = {\r\n input: CreateFacetInput;\r\n};\r\n\r\n\r\nexport type MutationCreateFacetValuesArgs = {\r\n input: Array<CreateFacetValueInput>;\r\n};\r\n\r\n\r\nexport type MutationCreatePaymentMethodArgs = {\r\n input: CreatePaymentMethodInput;\r\n};\r\n\r\n\r\nexport type MutationCreateProductArgs = {\r\n input: CreateProductInput;\r\n};\r\n\r\n\r\nexport type MutationCreateProductOptionArgs = {\r\n input: CreateProductOptionInput;\r\n};\r\n\r\n\r\nexport type MutationCreateProductOptionGroupArgs = {\r\n input: CreateProductOptionGroupInput;\r\n};\r\n\r\n\r\nexport type MutationCreateProductVariantsArgs = {\r\n input: Array<CreateProductVariantInput>;\r\n};\r\n\r\n\r\nexport type MutationCreatePromotionArgs = {\r\n input: CreatePromotionInput;\r\n};\r\n\r\n\r\nexport type MutationCreateRoleArgs = {\r\n input: CreateRoleInput;\r\n};\r\n\r\n\r\nexport type MutationCreateShippingMethodArgs = {\r\n input: CreateShippingMethodInput;\r\n};\r\n\r\n\r\nexport type MutationCreateTagArgs = {\r\n input: CreateTagInput;\r\n};\r\n\r\n\r\nexport type MutationCreateTaxCategoryArgs = {\r\n input: CreateTaxCategoryInput;\r\n};\r\n\r\n\r\nexport type MutationCreateTaxRateArgs = {\r\n input: CreateTaxRateInput;\r\n};\r\n\r\n\r\nexport type MutationCreateZoneArgs = {\r\n input: CreateZoneInput;\r\n};\r\n\r\n\r\nexport type MutationDeleteAdministratorArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationDeleteAssetArgs = {\r\n input: DeleteAssetInput;\r\n};\r\n\r\n\r\nexport type MutationDeleteAssetsArgs = {\r\n input: DeleteAssetsInput;\r\n};\r\n\r\n\r\nexport type MutationDeleteChannelArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationDeleteCollectionArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationDeleteCollectionsArgs = {\r\n ids: Array<Scalars['ID']>;\r\n};\r\n\r\n\r\nexport type MutationDeleteCountryArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationDeleteCustomerArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationDeleteCustomerAddressArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationDeleteCustomerGroupArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationDeleteCustomerNoteArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationDeleteDraftOrderArgs = {\r\n orderId: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationDeleteFacetArgs = {\r\n id: Scalars['ID'];\r\n force?: Maybe<Scalars['Boolean']>;\r\n};\r\n\r\n\r\nexport type MutationDeleteFacetValuesArgs = {\r\n ids: Array<Scalars['ID']>;\r\n force?: Maybe<Scalars['Boolean']>;\r\n};\r\n\r\n\r\nexport type MutationDeleteFacetsArgs = {\r\n ids: Array<Scalars['ID']>;\r\n force?: Maybe<Scalars['Boolean']>;\r\n};\r\n\r\n\r\nexport type MutationDeleteOrderNoteArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationDeletePaymentMethodArgs = {\r\n id: Scalars['ID'];\r\n force?: Maybe<Scalars['Boolean']>;\r\n};\r\n\r\n\r\nexport type MutationDeleteProductArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationDeleteProductOptionArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationDeleteProductVariantArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationDeleteProductVariantsArgs = {\r\n ids: Array<Scalars['ID']>;\r\n};\r\n\r\n\r\nexport type MutationDeleteProductsArgs = {\r\n ids: Array<Scalars['ID']>;\r\n};\r\n\r\n\r\nexport type MutationDeletePromotionArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationDeleteRoleArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationDeleteShippingMethodArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationDeleteTagArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationDeleteTaxCategoryArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationDeleteTaxRateArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationDeleteZoneArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationFlushBufferedJobsArgs = {\r\n bufferIds?: Maybe<Array<Scalars['String']>>;\r\n};\r\n\r\n\r\nexport type MutationImportProductsArgs = {\r\n csvFile: Scalars['Upload'];\r\n};\r\n\r\n\r\nexport type MutationLoginArgs = {\r\n username: Scalars['String'];\r\n password: Scalars['String'];\r\n rememberMe?: Maybe<Scalars['Boolean']>;\r\n};\r\n\r\n\r\nexport type MutationModifyOrderArgs = {\r\n input: ModifyOrderInput;\r\n};\r\n\r\n\r\nexport type MutationMoveCollectionArgs = {\r\n input: MoveCollectionInput;\r\n};\r\n\r\n\r\nexport type MutationRefundOrderArgs = {\r\n input: RefundOrderInput;\r\n};\r\n\r\n\r\nexport type MutationRemoveCollectionsFromChannelArgs = {\r\n input: RemoveCollectionsFromChannelInput;\r\n};\r\n\r\n\r\nexport type MutationRemoveCouponCodeFromDraftOrderArgs = {\r\n orderId: Scalars['ID'];\r\n couponCode: Scalars['String'];\r\n};\r\n\r\n\r\nexport type MutationRemoveCustomersFromGroupArgs = {\r\n customerGroupId: Scalars['ID'];\r\n customerIds: Array<Scalars['ID']>;\r\n};\r\n\r\n\r\nexport type MutationRemoveDraftOrderLineArgs = {\r\n orderId: Scalars['ID'];\r\n orderLineId: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationRemoveFacetsFromChannelArgs = {\r\n input: RemoveFacetsFromChannelInput;\r\n};\r\n\r\n\r\nexport type MutationRemoveMembersFromZoneArgs = {\r\n zoneId: Scalars['ID'];\r\n memberIds: Array<Scalars['ID']>;\r\n};\r\n\r\n\r\nexport type MutationRemoveOptionGroupFromProductArgs = {\r\n productId: Scalars['ID'];\r\n optionGroupId: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationRemoveProductVariantsFromChannelArgs = {\r\n input: RemoveProductVariantsFromChannelInput;\r\n};\r\n\r\n\r\nexport type MutationRemoveProductsFromChannelArgs = {\r\n input: RemoveProductsFromChannelInput;\r\n};\r\n\r\n\r\nexport type MutationRemovePromotionsFromChannelArgs = {\r\n input: RemovePromotionsFromChannelInput;\r\n};\r\n\r\n\r\nexport type MutationRemoveSettledJobsArgs = {\r\n queueNames?: Maybe<Array<Scalars['String']>>;\r\n olderThan?: Maybe<Scalars['DateTime']>;\r\n};\r\n\r\n\r\nexport type MutationSetActiveChannelArgs = {\r\n channelId: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationSetAsLoggedInArgs = {\r\n input: UserStatusInput;\r\n};\r\n\r\n\r\nexport type MutationSetContentLanguageArgs = {\r\n languageCode: LanguageCode;\r\n};\r\n\r\n\r\nexport type MutationSetCustomerForDraftOrderArgs = {\r\n orderId: Scalars['ID'];\r\n customerId?: Maybe<Scalars['ID']>;\r\n input?: Maybe<CreateCustomerInput>;\r\n};\r\n\r\n\r\nexport type MutationSetDisplayUiExtensionPointsArgs = {\r\n display: Scalars['Boolean'];\r\n};\r\n\r\n\r\nexport type MutationSetDraftOrderBillingAddressArgs = {\r\n orderId: Scalars['ID'];\r\n input: CreateAddressInput;\r\n};\r\n\r\n\r\nexport type MutationSetDraftOrderCustomFieldsArgs = {\r\n orderId: Scalars['ID'];\r\n input: UpdateOrderInput;\r\n};\r\n\r\n\r\nexport type MutationSetDraftOrderShippingAddressArgs = {\r\n orderId: Scalars['ID'];\r\n input: CreateAddressInput;\r\n};\r\n\r\n\r\nexport type MutationSetDraftOrderShippingMethodArgs = {\r\n orderId: Scalars['ID'];\r\n shippingMethodId: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationSetOrderCustomFieldsArgs = {\r\n input: UpdateOrderInput;\r\n};\r\n\r\n\r\nexport type MutationSetUiLanguageArgs = {\r\n languageCode: LanguageCode;\r\n};\r\n\r\n\r\nexport type MutationSetUiLocaleArgs = {\r\n locale?: Maybe<Scalars['String']>;\r\n};\r\n\r\n\r\nexport type MutationSetUiThemeArgs = {\r\n theme: Scalars['String'];\r\n};\r\n\r\n\r\nexport type MutationSettlePaymentArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type MutationSettleRefundArgs = {\r\n input: SettleRefundInput;\r\n};\r\n\r\n\r\nexport type MutationTransitionFulfillmentToStateArgs = {\r\n id: Scalars['ID'];\r\n state: Scalars['String'];\r\n};\r\n\r\n\r\nexport type MutationTransitionOrderToStateArgs = {\r\n id: Scalars['ID'];\r\n state: Scalars['String'];\r\n};\r\n\r\n\r\nexport type MutationTransitionPaymentToStateArgs = {\r\n id: Scalars['ID'];\r\n state: Scalars['String'];\r\n};\r\n\r\n\r\nexport type MutationUpdateActiveAdministratorArgs = {\r\n input: UpdateActiveAdministratorInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateAdministratorArgs = {\r\n input: UpdateAdministratorInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateAssetArgs = {\r\n input: UpdateAssetInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateChannelArgs = {\r\n input: UpdateChannelInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateCollectionArgs = {\r\n input: UpdateCollectionInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateCountryArgs = {\r\n input: UpdateCountryInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateCustomerArgs = {\r\n input: UpdateCustomerInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateCustomerAddressArgs = {\r\n input: UpdateAddressInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateCustomerGroupArgs = {\r\n input: UpdateCustomerGroupInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateCustomerNoteArgs = {\r\n input: UpdateCustomerNoteInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateFacetArgs = {\r\n input: UpdateFacetInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateFacetValuesArgs = {\r\n input: Array<UpdateFacetValueInput>;\r\n};\r\n\r\n\r\nexport type MutationUpdateGlobalSettingsArgs = {\r\n input: UpdateGlobalSettingsInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateOrderNoteArgs = {\r\n input: UpdateOrderNoteInput;\r\n};\r\n\r\n\r\nexport type MutationUpdatePaymentMethodArgs = {\r\n input: UpdatePaymentMethodInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateProductArgs = {\r\n input: UpdateProductInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateProductOptionArgs = {\r\n input: UpdateProductOptionInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateProductOptionGroupArgs = {\r\n input: UpdateProductOptionGroupInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateProductVariantsArgs = {\r\n input: Array<UpdateProductVariantInput>;\r\n};\r\n\r\n\r\nexport type MutationUpdateProductsArgs = {\r\n input: Array<UpdateProductInput>;\r\n};\r\n\r\n\r\nexport type MutationUpdatePromotionArgs = {\r\n input: UpdatePromotionInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateRoleArgs = {\r\n input: UpdateRoleInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateShippingMethodArgs = {\r\n input: UpdateShippingMethodInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateTagArgs = {\r\n input: UpdateTagInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateTaxCategoryArgs = {\r\n input: UpdateTaxCategoryInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateTaxRateArgs = {\r\n input: UpdateTaxRateInput;\r\n};\r\n\r\n\r\nexport type MutationUpdateUserChannelsArgs = {\r\n channels: Array<CurrentUserChannelInput>;\r\n};\r\n\r\n\r\nexport type MutationUpdateZoneArgs = {\r\n input: UpdateZoneInput;\r\n};\r\n\r\nexport type NativeAuthInput = {\r\n username: Scalars['String'];\r\n password: Scalars['String'];\r\n};\r\n\r\n/** Returned when attempting an operation that relies on the NativeAuthStrategy, if that strategy is not configured. */\r\nexport type NativeAuthStrategyError = ErrorResult & {\r\n __typename?: 'NativeAuthStrategyError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n};\r\n\r\nexport type NativeAuthenticationResult = CurrentUser | InvalidCredentialsError | NativeAuthStrategyError;\r\n\r\n/** Returned when attempting to set a negative OrderLine quantity. */\r\nexport type NegativeQuantityError = ErrorResult & {\r\n __typename?: 'NegativeQuantityError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n};\r\n\r\nexport type NetworkStatus = {\r\n __typename?: 'NetworkStatus';\r\n inFlightRequests: Scalars['Int'];\r\n};\r\n\r\n/**\r\n * Returned when invoking a mutation which depends on there being an active Order on the\r\n * current session.\r\n */\r\nexport type NoActiveOrderError = ErrorResult & {\r\n __typename?: 'NoActiveOrderError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n};\r\n\r\n/** Returned when a call to modifyOrder fails to specify any changes */\r\nexport type NoChangesSpecifiedError = ErrorResult & {\r\n __typename?: 'NoChangesSpecifiedError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n};\r\n\r\nexport type Node = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n/** Returned if an attempting to refund an Order but neither items nor shipping refund was specified */\r\nexport type NothingToRefundError = ErrorResult & {\r\n __typename?: 'NothingToRefundError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n};\r\n\r\n/** Operators for filtering on a list of Number fields */\r\nexport type NumberListOperators = {\r\n inList: Scalars['Float'];\r\n};\r\n\r\n/** Operators for filtering on a Int or Float field */\r\nexport type NumberOperators = {\r\n eq?: Maybe<Scalars['Float']>;\r\n lt?: Maybe<Scalars['Float']>;\r\n lte?: Maybe<Scalars['Float']>;\r\n gt?: Maybe<Scalars['Float']>;\r\n gte?: Maybe<Scalars['Float']>;\r\n between?: Maybe<NumberRange>;\r\n};\r\n\r\nexport type NumberRange = {\r\n start: Scalars['Float'];\r\n end: Scalars['Float'];\r\n};\r\n\r\nexport type Order = Node & {\r\n __typename?: 'Order';\r\n nextStates: Array<Scalars['String']>;\r\n modifications: Array<OrderModification>;\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n /**\r\n * The date & time that the Order was placed, i.e. the Customer\r\n * completed the checkout and the Order is no longer \"active\"\r\n */\r\n orderPlacedAt?: Maybe<Scalars['DateTime']>;\r\n /** A unique code for the Order */\r\n code: Scalars['String'];\r\n state: Scalars['String'];\r\n /** An order is active as long as the payment process has not been completed */\r\n active: Scalars['Boolean'];\r\n customer?: Maybe<Customer>;\r\n shippingAddress?: Maybe<OrderAddress>;\r\n billingAddress?: Maybe<OrderAddress>;\r\n lines: Array<OrderLine>;\r\n /**\r\n * Surcharges are arbitrary modifications to the Order total which are neither\r\n * ProductVariants nor discounts resulting from applied Promotions. For example,\r\n * one-off discounts based on customer interaction, or surcharges based on payment\r\n * methods.\r\n */\r\n surcharges: Array<Surcharge>;\r\n discounts: Array<Discount>;\r\n /** An array of all coupon codes applied to the Order */\r\n couponCodes: Array<Scalars['String']>;\r\n /** Promotions applied to the order. Only gets populated after the payment process has completed. */\r\n promotions: Array<Promotion>;\r\n payments?: Maybe<Array<Payment>>;\r\n fulfillments?: Maybe<Array<Fulfillment>>;\r\n totalQuantity: Scalars['Int'];\r\n /**\r\n * The subTotal is the total of all OrderLines in the Order. This figure also includes any Order-level\r\n * discounts which have been prorated (proportionally distributed) amongst the OrderItems.\r\n * To get a total of all OrderLines which does not account for prorated discounts, use the\r\n * sum of `OrderLine.discountedLinePrice` values.\r\n */\r\n subTotal: Scalars['Int'];\r\n /** Same as subTotal, but inclusive of tax */\r\n subTotalWithTax: Scalars['Int'];\r\n currencyCode: CurrencyCode;\r\n shippingLines: Array<ShippingLine>;\r\n shipping: Scalars['Int'];\r\n shippingWithTax: Scalars['Int'];\r\n /** Equal to subTotal plus shipping */\r\n total: Scalars['Int'];\r\n /** The final payable amount. Equal to subTotalWithTax plus shippingWithTax */\r\n totalWithTax: Scalars['Int'];\r\n /** A summary of the taxes being applied to this Order */\r\n taxSummary: Array<OrderTaxSummary>;\r\n history: HistoryEntryList;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\n\r\nexport type OrderHistoryArgs = {\r\n options?: Maybe<HistoryEntryListOptions>;\r\n};\r\n\r\nexport type OrderAddress = {\r\n __typename?: 'OrderAddress';\r\n fullName?: Maybe<Scalars['String']>;\r\n company?: Maybe<Scalars['String']>;\r\n streetLine1?: Maybe<Scalars['String']>;\r\n streetLine2?: Maybe<Scalars['String']>;\r\n city?: Maybe<Scalars['String']>;\r\n province?: Maybe<Scalars['String']>;\r\n postalCode?: Maybe<Scalars['String']>;\r\n country?: Maybe<Scalars['String']>;\r\n countryCode?: Maybe<Scalars['String']>;\r\n phoneNumber?: Maybe<Scalars['String']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type OrderFilterParameter = {\r\n customerLastName?: Maybe<StringOperators>;\r\n transactionId?: Maybe<StringOperators>;\r\n id?: Maybe<IdOperators>;\r\n createdAt?: Maybe<DateOperators>;\r\n updatedAt?: Maybe<DateOperators>;\r\n orderPlacedAt?: Maybe<DateOperators>;\r\n code?: Maybe<StringOperators>;\r\n state?: Maybe<StringOperators>;\r\n active?: Maybe<BooleanOperators>;\r\n totalQuantity?: Maybe<NumberOperators>;\r\n subTotal?: Maybe<NumberOperators>;\r\n subTotalWithTax?: Maybe<NumberOperators>;\r\n currencyCode?: Maybe<StringOperators>;\r\n shipping?: Maybe<NumberOperators>;\r\n shippingWithTax?: Maybe<NumberOperators>;\r\n total?: Maybe<NumberOperators>;\r\n totalWithTax?: Maybe<NumberOperators>;\r\n};\r\n\r\nexport type OrderItem = Node & {\r\n __typename?: 'OrderItem';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n cancelled: Scalars['Boolean'];\r\n /** The price of a single unit, excluding tax and discounts */\r\n unitPrice: Scalars['Int'];\r\n /** The price of a single unit, including tax but excluding discounts */\r\n unitPriceWithTax: Scalars['Int'];\r\n /**\r\n * The price of a single unit including discounts, excluding tax.\r\n *\r\n * If Order-level discounts have been applied, this will not be the\r\n * actual taxable unit price (see `proratedUnitPrice`), but is generally the\r\n * correct price to display to customers to avoid confusion\r\n * about the internal handling of distributed Order-level discounts.\r\n */\r\n discountedUnitPrice: Scalars['Int'];\r\n /** The price of a single unit including discounts and tax */\r\n discountedUnitPriceWithTax: Scalars['Int'];\r\n /**\r\n * The actual unit price, taking into account both item discounts _and_ prorated (proportionally-distributed)\r\n * Order-level discounts. This value is the true economic value of the OrderItem, and is used in tax\r\n * and refund calculations.\r\n */\r\n proratedUnitPrice: Scalars['Int'];\r\n /** The proratedUnitPrice including tax */\r\n proratedUnitPriceWithTax: Scalars['Int'];\r\n unitTax: Scalars['Int'];\r\n taxRate: Scalars['Float'];\r\n adjustments: Array<Adjustment>;\r\n taxLines: Array<TaxLine>;\r\n fulfillment?: Maybe<Fulfillment>;\r\n refundId?: Maybe<Scalars['ID']>;\r\n};\r\n\r\n/** Returned when the maximum order size limit has been reached. */\r\nexport type OrderLimitError = ErrorResult & {\r\n __typename?: 'OrderLimitError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n maxItems: Scalars['Int'];\r\n};\r\n\r\nexport type OrderLine = Node & {\r\n __typename?: 'OrderLine';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n productVariant: ProductVariant;\r\n featuredAsset?: Maybe<Asset>;\r\n /** The price of a single unit, excluding tax and discounts */\r\n unitPrice: Scalars['Int'];\r\n /** The price of a single unit, including tax but excluding discounts */\r\n unitPriceWithTax: Scalars['Int'];\r\n /** Non-zero if the unitPrice has changed since it was initially added to Order */\r\n unitPriceChangeSinceAdded: Scalars['Int'];\r\n /** Non-zero if the unitPriceWithTax has changed since it was initially added to Order */\r\n unitPriceWithTaxChangeSinceAdded: Scalars['Int'];\r\n /**\r\n * The price of a single unit including discounts, excluding tax.\r\n *\r\n * If Order-level discounts have been applied, this will not be the\r\n * actual taxable unit price (see `proratedUnitPrice`), but is generally the\r\n * correct price to display to customers to avoid confusion\r\n * about the internal handling of distributed Order-level discounts.\r\n */\r\n discountedUnitPrice: Scalars['Int'];\r\n /** The price of a single unit including discounts and tax */\r\n discountedUnitPriceWithTax: Scalars['Int'];\r\n /**\r\n * The actual unit price, taking into account both item discounts _and_ prorated (proportionally-distributed)\r\n * Order-level discounts. This value is the true economic value of the OrderItem, and is used in tax\r\n * and refund calculations.\r\n */\r\n proratedUnitPrice: Scalars['Int'];\r\n /** The proratedUnitPrice including tax */\r\n proratedUnitPriceWithTax: Scalars['Int'];\r\n quantity: Scalars['Int'];\r\n items: Array<OrderItem>;\r\n taxRate: Scalars['Float'];\r\n /** The total price of the line excluding tax and discounts. */\r\n linePrice: Scalars['Int'];\r\n /** The total price of the line including tax but excluding discounts. */\r\n linePriceWithTax: Scalars['Int'];\r\n /** The price of the line including discounts, excluding tax */\r\n discountedLinePrice: Scalars['Int'];\r\n /** The price of the line including discounts and tax */\r\n discountedLinePriceWithTax: Scalars['Int'];\r\n /**\r\n * The actual line price, taking into account both item discounts _and_ prorated (proportionally-distributed)\r\n * Order-level discounts. This value is the true economic value of the OrderLine, and is used in tax\r\n * and refund calculations.\r\n */\r\n proratedLinePrice: Scalars['Int'];\r\n /** The proratedLinePrice including tax */\r\n proratedLinePriceWithTax: Scalars['Int'];\r\n /** The total tax on this line */\r\n lineTax: Scalars['Int'];\r\n discounts: Array<Discount>;\r\n taxLines: Array<TaxLine>;\r\n order: Order;\r\n fulfillments?: Maybe<Array<Fulfillment>>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type OrderLineInput = {\r\n orderLineId: Scalars['ID'];\r\n quantity: Scalars['Int'];\r\n};\r\n\r\nexport type OrderList = PaginatedList & {\r\n __typename?: 'OrderList';\r\n items: Array<Order>;\r\n totalItems: Scalars['Int'];\r\n};\r\n\r\nexport type OrderListOptions = {\r\n /** Skips the first n results, for use in pagination */\r\n skip?: Maybe<Scalars['Int']>;\r\n /** Takes n results, for use in pagination */\r\n take?: Maybe<Scalars['Int']>;\r\n /** Specifies which properties to sort the results by */\r\n sort?: Maybe<OrderSortParameter>;\r\n /** Allows the results to be filtered */\r\n filter?: Maybe<OrderFilterParameter>;\r\n /** Specifies whether multiple \"filter\" arguments should be combines with a logical AND or OR operation. Defaults to AND. */\r\n filterOperator?: Maybe<LogicalOperator>;\r\n};\r\n\r\nexport type OrderModification = Node & {\r\n __typename?: 'OrderModification';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n priceChange: Scalars['Int'];\r\n note: Scalars['String'];\r\n orderItems?: Maybe<Array<OrderItem>>;\r\n surcharges?: Maybe<Array<Surcharge>>;\r\n payment?: Maybe<Payment>;\r\n refund?: Maybe<Refund>;\r\n isSettled: Scalars['Boolean'];\r\n};\r\n\r\n/** Returned when attempting to modify the contents of an Order that is not in the `AddingItems` state. */\r\nexport type OrderModificationError = ErrorResult & {\r\n __typename?: 'OrderModificationError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n};\r\n\r\n/** Returned when attempting to modify the contents of an Order that is not in the `Modifying` state. */\r\nexport type OrderModificationStateError = ErrorResult & {\r\n __typename?: 'OrderModificationStateError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n};\r\n\r\nexport type OrderProcessState = {\r\n __typename?: 'OrderProcessState';\r\n name: Scalars['String'];\r\n to: Array<Scalars['String']>;\r\n};\r\n\r\nexport type OrderSortParameter = {\r\n customerLastName?: Maybe<SortOrder>;\r\n transactionId?: Maybe<SortOrder>;\r\n id?: Maybe<SortOrder>;\r\n createdAt?: Maybe<SortOrder>;\r\n updatedAt?: Maybe<SortOrder>;\r\n orderPlacedAt?: Maybe<SortOrder>;\r\n code?: Maybe<SortOrder>;\r\n state?: Maybe<SortOrder>;\r\n totalQuantity?: Maybe<SortOrder>;\r\n subTotal?: Maybe<SortOrder>;\r\n subTotalWithTax?: Maybe<SortOrder>;\r\n shipping?: Maybe<SortOrder>;\r\n shippingWithTax?: Maybe<SortOrder>;\r\n total?: Maybe<SortOrder>;\r\n totalWithTax?: Maybe<SortOrder>;\r\n};\r\n\r\n/** Returned if there is an error in transitioning the Order state */\r\nexport type OrderStateTransitionError = ErrorResult & {\r\n __typename?: 'OrderStateTransitionError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n transitionError: Scalars['String'];\r\n fromState: Scalars['String'];\r\n toState: Scalars['String'];\r\n};\r\n\r\n/**\r\n * A summary of the taxes being applied to this order, grouped\r\n * by taxRate.\r\n */\r\nexport type OrderTaxSummary = {\r\n __typename?: 'OrderTaxSummary';\r\n /** A description of this tax */\r\n description: Scalars['String'];\r\n /** The taxRate as a percentage */\r\n taxRate: Scalars['Float'];\r\n /** The total net price or OrderItems to which this taxRate applies */\r\n taxBase: Scalars['Int'];\r\n /** The total tax being applied to the Order at this taxRate */\r\n taxTotal: Scalars['Int'];\r\n};\r\n\r\nexport type PaginatedList = {\r\n items: Array<Node>;\r\n totalItems: Scalars['Int'];\r\n};\r\n\r\nexport type Payment = Node & {\r\n __typename?: 'Payment';\r\n nextStates: Array<Scalars['String']>;\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n method: Scalars['String'];\r\n amount: Scalars['Int'];\r\n state: Scalars['String'];\r\n transactionId?: Maybe<Scalars['String']>;\r\n errorMessage?: Maybe<Scalars['String']>;\r\n refunds: Array<Refund>;\r\n metadata?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type PaymentMethod = Node & {\r\n __typename?: 'PaymentMethod';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n name: Scalars['String'];\r\n code: Scalars['String'];\r\n description: Scalars['String'];\r\n enabled: Scalars['Boolean'];\r\n checker?: Maybe<ConfigurableOperation>;\r\n handler: ConfigurableOperation;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type PaymentMethodFilterParameter = {\r\n id?: Maybe<IdOperators>;\r\n createdAt?: Maybe<DateOperators>;\r\n updatedAt?: Maybe<DateOperators>;\r\n name?: Maybe<StringOperators>;\r\n code?: Maybe<StringOperators>;\r\n description?: Maybe<StringOperators>;\r\n enabled?: Maybe<BooleanOperators>;\r\n};\r\n\r\nexport type PaymentMethodList = PaginatedList & {\r\n __typename?: 'PaymentMethodList';\r\n items: Array<PaymentMethod>;\r\n totalItems: Scalars['Int'];\r\n};\r\n\r\nexport type PaymentMethodListOptions = {\r\n /** Skips the first n results, for use in pagination */\r\n skip?: Maybe<Scalars['Int']>;\r\n /** Takes n results, for use in pagination */\r\n take?: Maybe<Scalars['Int']>;\r\n /** Specifies which properties to sort the results by */\r\n sort?: Maybe<PaymentMethodSortParameter>;\r\n /** Allows the results to be filtered */\r\n filter?: Maybe<PaymentMethodFilterParameter>;\r\n /** Specifies whether multiple \"filter\" arguments should be combines with a logical AND or OR operation. Defaults to AND. */\r\n filterOperator?: Maybe<LogicalOperator>;\r\n};\r\n\r\n/**\r\n * Returned when a call to modifyOrder fails to include a paymentMethod even\r\n * though the price has increased as a result of the changes.\r\n */\r\nexport type PaymentMethodMissingError = ErrorResult & {\r\n __typename?: 'PaymentMethodMissingError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n};\r\n\r\nexport type PaymentMethodQuote = {\r\n __typename?: 'PaymentMethodQuote';\r\n id: Scalars['ID'];\r\n code: Scalars['String'];\r\n name: Scalars['String'];\r\n description: Scalars['String'];\r\n isEligible: Scalars['Boolean'];\r\n eligibilityMessage?: Maybe<Scalars['String']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type PaymentMethodSortParameter = {\r\n id?: Maybe<SortOrder>;\r\n createdAt?: Maybe<SortOrder>;\r\n updatedAt?: Maybe<SortOrder>;\r\n name?: Maybe<SortOrder>;\r\n code?: Maybe<SortOrder>;\r\n description?: Maybe<SortOrder>;\r\n};\r\n\r\n/** Returned if an attempting to refund a Payment against OrderLines from a different Order */\r\nexport type PaymentOrderMismatchError = ErrorResult & {\r\n __typename?: 'PaymentOrderMismatchError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n};\r\n\r\n/** Returned when there is an error in transitioning the Payment state */\r\nexport type PaymentStateTransitionError = ErrorResult & {\r\n __typename?: 'PaymentStateTransitionError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n transitionError: Scalars['String'];\r\n fromState: Scalars['String'];\r\n toState: Scalars['String'];\r\n};\r\n\r\n/**\r\n * @description\r\n * Permissions for administrators and customers. Used to control access to\r\n * GraphQL resolvers via the {@link Allow} decorator.\r\n *\r\n * ## Understanding Permission.Owner\r\n *\r\n * `Permission.Owner` is a special permission which is used in some Vendure resolvers to indicate that that resolver should only\r\n * be accessible to the \"owner\" of that resource.\r\n *\r\n * For example, the Shop API `activeCustomer` query resolver should only return the Customer object for the \"owner\" of that Customer, i.e.\r\n * based on the activeUserId of the current session. As a result, the resolver code looks like this:\r\n *\r\n * @example\r\n * ```TypeScript\r\n * \\@Query()\r\n * \\@Allow(Permission.Owner)\r\n * async activeCustomer(\\@Ctx() ctx: RequestContext): Promise<Customer | undefined> {\r\n * const userId = ctx.activeUserId;\r\n * if (userId) {\r\n * return this.customerService.findOneByUserId(ctx, userId);\r\n * }\r\n * }\r\n * ```\r\n *\r\n * Here we can see that the \"ownership\" must be enforced by custom logic inside the resolver. Since \"ownership\" cannot be defined generally\r\n * nor statically encoded at build-time, any resolvers using `Permission.Owner` **must** include logic to enforce that only the owner\r\n * of the resource has access. If not, then it is the equivalent of using `Permission.Public`.\r\n *\r\n *\r\n * @docsCategory common\r\n */\r\nexport enum Permission {\r\n /** Authenticated means simply that the user is logged in */\r\n Authenticated = 'Authenticated',\r\n /** Grants permission to create Administrator */\r\n CreateAdministrator = 'CreateAdministrator',\r\n /** Grants permission to create Asset */\r\n CreateAsset = 'CreateAsset',\r\n /** Grants permission to create Products, Facets, Assets, Collections */\r\n CreateCatalog = 'CreateCatalog',\r\n /** Grants permission to create Channel */\r\n CreateChannel = 'CreateChannel',\r\n /** Grants permission to create Collection */\r\n CreateCollection = 'CreateCollection',\r\n /** Grants permission to create Country */\r\n CreateCountry = 'CreateCountry',\r\n /** Grants permission to create Customer */\r\n CreateCustomer = 'CreateCustomer',\r\n /** Grants permission to create CustomerGroup */\r\n CreateCustomerGroup = 'CreateCustomerGroup',\r\n /** Grants permission to create Facet */\r\n CreateFacet = 'CreateFacet',\r\n /** Grants permission to create Order */\r\n CreateOrder = 'CreateOrder',\r\n /** Grants permission to create PaymentMethod */\r\n CreatePaymentMethod = 'CreatePaymentMethod',\r\n /** Grants permission to create Product */\r\n CreateProduct = 'CreateProduct',\r\n /** Grants permission to create Promotion */\r\n CreatePromotion = 'CreatePromotion',\r\n /** Grants permission to create PaymentMethods, ShippingMethods, TaxCategories, TaxRates, Zones, Countries, System & GlobalSettings */\r\n CreateSettings = 'CreateSettings',\r\n /** Grants permission to create ShippingMethod */\r\n CreateShippingMethod = 'CreateShippingMethod',\r\n /** Grants permission to create System */\r\n CreateSystem = 'CreateSystem',\r\n /** Grants permission to create Tag */\r\n CreateTag = 'CreateTag',\r\n /** Grants permission to create TaxCategory */\r\n CreateTaxCategory = 'CreateTaxCategory',\r\n /** Grants permission to create TaxRate */\r\n CreateTaxRate = 'CreateTaxRate',\r\n /** Grants permission to create Zone */\r\n CreateZone = 'CreateZone',\r\n /** Grants permission to delete Administrator */\r\n DeleteAdministrator = 'DeleteAdministrator',\r\n /** Grants permission to delete Asset */\r\n DeleteAsset = 'DeleteAsset',\r\n /** Grants permission to delete Products, Facets, Assets, Collections */\r\n DeleteCatalog = 'DeleteCatalog',\r\n /** Grants permission to delete Channel */\r\n DeleteChannel = 'DeleteChannel',\r\n /** Grants permission to delete Collection */\r\n DeleteCollection = 'DeleteCollection',\r\n /** Grants permission to delete Country */\r\n DeleteCountry = 'DeleteCountry',\r\n /** Grants permission to delete Customer */\r\n DeleteCustomer = 'DeleteCustomer',\r\n /** Grants permission to delete CustomerGroup */\r\n DeleteCustomerGroup = 'DeleteCustomerGroup',\r\n /** Grants permission to delete Facet */\r\n DeleteFacet = 'DeleteFacet',\r\n /** Grants permission to delete Order */\r\n DeleteOrder = 'DeleteOrder',\r\n /** Grants permission to delete PaymentMethod */\r\n DeletePaymentMethod = 'DeletePaymentMethod',\r\n /** Grants permission to delete Product */\r\n DeleteProduct = 'DeleteProduct',\r\n /** Grants permission to delete Promotion */\r\n DeletePromotion = 'DeletePromotion',\r\n /** Grants permission to delete PaymentMethods, ShippingMethods, TaxCategories, TaxRates, Zones, Countries, System & GlobalSettings */\r\n DeleteSettings = 'DeleteSettings',\r\n /** Grants permission to delete ShippingMethod */\r\n DeleteShippingMethod = 'DeleteShippingMethod',\r\n /** Grants permission to delete System */\r\n DeleteSystem = 'DeleteSystem',\r\n /** Grants permission to delete Tag */\r\n DeleteTag = 'DeleteTag',\r\n /** Grants permission to delete TaxCategory */\r\n DeleteTaxCategory = 'DeleteTaxCategory',\r\n /** Grants permission to delete TaxRate */\r\n DeleteTaxRate = 'DeleteTaxRate',\r\n /** Grants permission to delete Zone */\r\n DeleteZone = 'DeleteZone',\r\n /** Owner means the user owns this entity, e.g. a Customer's own Order */\r\n Owner = 'Owner',\r\n Placeholder = 'Placeholder',\r\n /** Public means any unauthenticated user may perform the operation */\r\n Public = 'Public',\r\n /** Grants permission to read Administrator */\r\n ReadAdministrator = 'ReadAdministrator',\r\n /** Grants permission to read Asset */\r\n ReadAsset = 'ReadAsset',\r\n /** Grants permission to read Products, Facets, Assets, Collections */\r\n ReadCatalog = 'ReadCatalog',\r\n /** Grants permission to read Channel */\r\n ReadChannel = 'ReadChannel',\r\n /** Grants permission to read Collection */\r\n ReadCollection = 'ReadCollection',\r\n /** Grants permission to read Country */\r\n ReadCountry = 'ReadCountry',\r\n /** Grants permission to read Customer */\r\n ReadCustomer = 'ReadCustomer',\r\n /** Grants permission to read CustomerGroup */\r\n ReadCustomerGroup = 'ReadCustomerGroup',\r\n /** Grants permission to read Facet */\r\n ReadFacet = 'ReadFacet',\r\n /** Grants permission to read Order */\r\n ReadOrder = 'ReadOrder',\r\n /** Grants permission to read PaymentMethod */\r\n ReadPaymentMethod = 'ReadPaymentMethod',\r\n /** Grants permission to read Product */\r\n ReadProduct = 'ReadProduct',\r\n /** Grants permission to read Promotion */\r\n ReadPromotion = 'ReadPromotion',\r\n /** Grants permission to read PaymentMethods, ShippingMethods, TaxCategories, TaxRates, Zones, Countries, System & GlobalSettings */\r\n ReadSettings = 'ReadSettings',\r\n /** Grants permission to read ShippingMethod */\r\n ReadShippingMethod = 'ReadShippingMethod',\r\n /** Grants permission to read System */\r\n ReadSystem = 'ReadSystem',\r\n /** Grants permission to read Tag */\r\n ReadTag = 'ReadTag',\r\n /** Grants permission to read TaxCategory */\r\n ReadTaxCategory = 'ReadTaxCategory',\r\n /** Grants permission to read TaxRate */\r\n ReadTaxRate = 'ReadTaxRate',\r\n /** Grants permission to read Zone */\r\n ReadZone = 'ReadZone',\r\n /** SuperAdmin has unrestricted access to all operations */\r\n SuperAdmin = 'SuperAdmin',\r\n /** Grants permission to update Administrator */\r\n UpdateAdministrator = 'UpdateAdministrator',\r\n /** Grants permission to update Asset */\r\n UpdateAsset = 'UpdateAsset',\r\n /** Grants permission to update Products, Facets, Assets, Collections */\r\n UpdateCatalog = 'UpdateCatalog',\r\n /** Grants permission to update Channel */\r\n UpdateChannel = 'UpdateChannel',\r\n /** Grants permission to update Collection */\r\n UpdateCollection = 'UpdateCollection',\r\n /** Grants permission to update Country */\r\n UpdateCountry = 'UpdateCountry',\r\n /** Grants permission to update Customer */\r\n UpdateCustomer = 'UpdateCustomer',\r\n /** Grants permission to update CustomerGroup */\r\n UpdateCustomerGroup = 'UpdateCustomerGroup',\r\n /** Grants permission to update Facet */\r\n UpdateFacet = 'UpdateFacet',\r\n /** Grants permission to update GlobalSettings */\r\n UpdateGlobalSettings = 'UpdateGlobalSettings',\r\n /** Grants permission to update Order */\r\n UpdateOrder = 'UpdateOrder',\r\n /** Grants permission to update PaymentMethod */\r\n UpdatePaymentMethod = 'UpdatePaymentMethod',\r\n /** Grants permission to update Product */\r\n UpdateProduct = 'UpdateProduct',\r\n /** Grants permission to update Promotion */\r\n UpdatePromotion = 'UpdatePromotion',\r\n /** Grants permission to update PaymentMethods, ShippingMethods, TaxCategories, TaxRates, Zones, Countries, System & GlobalSettings */\r\n UpdateSettings = 'UpdateSettings',\r\n /** Grants permission to update ShippingMethod */\r\n UpdateShippingMethod = 'UpdateShippingMethod',\r\n /** Grants permission to update System */\r\n UpdateSystem = 'UpdateSystem',\r\n /** Grants permission to update Tag */\r\n UpdateTag = 'UpdateTag',\r\n /** Grants permission to update TaxCategory */\r\n UpdateTaxCategory = 'UpdateTaxCategory',\r\n /** Grants permission to update TaxRate */\r\n UpdateTaxRate = 'UpdateTaxRate',\r\n /** Grants permission to update Zone */\r\n UpdateZone = 'UpdateZone'\r\n}\r\n\r\nexport type PermissionDefinition = {\r\n __typename?: 'PermissionDefinition';\r\n name: Scalars['String'];\r\n description: Scalars['String'];\r\n assignable: Scalars['Boolean'];\r\n};\r\n\r\nexport type PreviewCollectionVariantsInput = {\r\n parentId?: Maybe<Scalars['ID']>;\r\n filters: Array<ConfigurableOperationInput>;\r\n};\r\n\r\n/** The price range where the result has more than one price */\r\nexport type PriceRange = {\r\n __typename?: 'PriceRange';\r\n min: Scalars['Int'];\r\n max: Scalars['Int'];\r\n};\r\n\r\nexport type Product = Node & {\r\n __typename?: 'Product';\r\n enabled: Scalars['Boolean'];\r\n channels: Array<Channel>;\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n languageCode: LanguageCode;\r\n name: Scalars['String'];\r\n slug: Scalars['String'];\r\n description: Scalars['String'];\r\n featuredAsset?: Maybe<Asset>;\r\n assets: Array<Asset>;\r\n /** Returns all ProductVariants */\r\n variants: Array<ProductVariant>;\r\n /** Returns a paginated, sortable, filterable list of ProductVariants */\r\n variantList: ProductVariantList;\r\n optionGroups: Array<ProductOptionGroup>;\r\n facetValues: Array<FacetValue>;\r\n translations: Array<ProductTranslation>;\r\n collections: Array<Collection>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\n\r\nexport type ProductVariantListArgs = {\r\n options?: Maybe<ProductVariantListOptions>;\r\n};\r\n\r\nexport type ProductFilterParameter = {\r\n enabled?: Maybe<BooleanOperators>;\r\n id?: Maybe<IdOperators>;\r\n createdAt?: Maybe<DateOperators>;\r\n updatedAt?: Maybe<DateOperators>;\r\n languageCode?: Maybe<StringOperators>;\r\n name?: Maybe<StringOperators>;\r\n slug?: Maybe<StringOperators>;\r\n description?: Maybe<StringOperators>;\r\n};\r\n\r\nexport type ProductList = PaginatedList & {\r\n __typename?: 'ProductList';\r\n items: Array<Product>;\r\n totalItems: Scalars['Int'];\r\n};\r\n\r\nexport type ProductListOptions = {\r\n /** Skips the first n results, for use in pagination */\r\n skip?: Maybe<Scalars['Int']>;\r\n /** Takes n results, for use in pagination */\r\n take?: Maybe<Scalars['Int']>;\r\n /** Specifies which properties to sort the results by */\r\n sort?: Maybe<ProductSortParameter>;\r\n /** Allows the results to be filtered */\r\n filter?: Maybe<ProductFilterParameter>;\r\n /** Specifies whether multiple \"filter\" arguments should be combines with a logical AND or OR operation. Defaults to AND. */\r\n filterOperator?: Maybe<LogicalOperator>;\r\n};\r\n\r\nexport type ProductOption = Node & {\r\n __typename?: 'ProductOption';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n languageCode: LanguageCode;\r\n code: Scalars['String'];\r\n name: Scalars['String'];\r\n groupId: Scalars['ID'];\r\n group: ProductOptionGroup;\r\n translations: Array<ProductOptionTranslation>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type ProductOptionGroup = Node & {\r\n __typename?: 'ProductOptionGroup';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n languageCode: LanguageCode;\r\n code: Scalars['String'];\r\n name: Scalars['String'];\r\n options: Array<ProductOption>;\r\n translations: Array<ProductOptionGroupTranslation>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type ProductOptionGroupTranslation = {\r\n __typename?: 'ProductOptionGroupTranslation';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n languageCode: LanguageCode;\r\n name: Scalars['String'];\r\n};\r\n\r\nexport type ProductOptionGroupTranslationInput = {\r\n id?: Maybe<Scalars['ID']>;\r\n languageCode: LanguageCode;\r\n name?: Maybe<Scalars['String']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type ProductOptionInUseError = ErrorResult & {\r\n __typename?: 'ProductOptionInUseError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n optionGroupCode: Scalars['String'];\r\n productVariantCount: Scalars['Int'];\r\n};\r\n\r\nexport type ProductOptionTranslation = {\r\n __typename?: 'ProductOptionTranslation';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n languageCode: LanguageCode;\r\n name: Scalars['String'];\r\n};\r\n\r\nexport type ProductOptionTranslationInput = {\r\n id?: Maybe<Scalars['ID']>;\r\n languageCode: LanguageCode;\r\n name?: Maybe<Scalars['String']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type ProductSortParameter = {\r\n id?: Maybe<SortOrder>;\r\n createdAt?: Maybe<SortOrder>;\r\n updatedAt?: Maybe<SortOrder>;\r\n name?: Maybe<SortOrder>;\r\n slug?: Maybe<SortOrder>;\r\n description?: Maybe<SortOrder>;\r\n};\r\n\r\nexport type ProductTranslation = {\r\n __typename?: 'ProductTranslation';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n languageCode: LanguageCode;\r\n name: Scalars['String'];\r\n slug: Scalars['String'];\r\n description: Scalars['String'];\r\n};\r\n\r\nexport type ProductTranslationInput = {\r\n id?: Maybe<Scalars['ID']>;\r\n languageCode: LanguageCode;\r\n name?: Maybe<Scalars['String']>;\r\n slug?: Maybe<Scalars['String']>;\r\n description?: Maybe<Scalars['String']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type ProductVariant = Node & {\r\n __typename?: 'ProductVariant';\r\n enabled: Scalars['Boolean'];\r\n trackInventory: GlobalFlag;\r\n stockOnHand: Scalars['Int'];\r\n stockAllocated: Scalars['Int'];\r\n outOfStockThreshold: Scalars['Int'];\r\n useGlobalOutOfStockThreshold: Scalars['Boolean'];\r\n stockMovements: StockMovementList;\r\n channels: Array<Channel>;\r\n id: Scalars['ID'];\r\n product: Product;\r\n productId: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n languageCode: LanguageCode;\r\n sku: Scalars['String'];\r\n name: Scalars['String'];\r\n featuredAsset?: Maybe<Asset>;\r\n assets: Array<Asset>;\r\n price: Scalars['Int'];\r\n currencyCode: CurrencyCode;\r\n priceWithTax: Scalars['Int'];\r\n stockLevel: Scalars['String'];\r\n taxRateApplied: TaxRate;\r\n taxCategory: TaxCategory;\r\n options: Array<ProductOption>;\r\n facetValues: Array<FacetValue>;\r\n translations: Array<ProductVariantTranslation>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\n\r\nexport type ProductVariantStockMovementsArgs = {\r\n options?: Maybe<StockMovementListOptions>;\r\n};\r\n\r\nexport type ProductVariantFilterParameter = {\r\n enabled?: Maybe<BooleanOperators>;\r\n trackInventory?: Maybe<StringOperators>;\r\n stockOnHand?: Maybe<NumberOperators>;\r\n stockAllocated?: Maybe<NumberOperators>;\r\n outOfStockThreshold?: Maybe<NumberOperators>;\r\n useGlobalOutOfStockThreshold?: Maybe<BooleanOperators>;\r\n id?: Maybe<IdOperators>;\r\n productId?: Maybe<IdOperators>;\r\n createdAt?: Maybe<DateOperators>;\r\n updatedAt?: Maybe<DateOperators>;\r\n languageCode?: Maybe<StringOperators>;\r\n sku?: Maybe<StringOperators>;\r\n name?: Maybe<StringOperators>;\r\n price?: Maybe<NumberOperators>;\r\n currencyCode?: Maybe<StringOperators>;\r\n priceWithTax?: Maybe<NumberOperators>;\r\n stockLevel?: Maybe<StringOperators>;\r\n};\r\n\r\nexport type ProductVariantList = PaginatedList & {\r\n __typename?: 'ProductVariantList';\r\n items: Array<ProductVariant>;\r\n totalItems: Scalars['Int'];\r\n};\r\n\r\nexport type ProductVariantListOptions = {\r\n /** Skips the first n results, for use in pagination */\r\n skip?: Maybe<Scalars['Int']>;\r\n /** Takes n results, for use in pagination */\r\n take?: Maybe<Scalars['Int']>;\r\n /** Specifies which properties to sort the results by */\r\n sort?: Maybe<ProductVariantSortParameter>;\r\n /** Allows the results to be filtered */\r\n filter?: Maybe<ProductVariantFilterParameter>;\r\n /** Specifies whether multiple \"filter\" arguments should be combines with a logical AND or OR operation. Defaults to AND. */\r\n filterOperator?: Maybe<LogicalOperator>;\r\n};\r\n\r\nexport type ProductVariantSortParameter = {\r\n stockOnHand?: Maybe<SortOrder>;\r\n stockAllocated?: Maybe<SortOrder>;\r\n outOfStockThreshold?: Maybe<SortOrder>;\r\n id?: Maybe<SortOrder>;\r\n productId?: Maybe<SortOrder>;\r\n createdAt?: Maybe<SortOrder>;\r\n updatedAt?: Maybe<SortOrder>;\r\n sku?: Maybe<SortOrder>;\r\n name?: Maybe<SortOrder>;\r\n price?: Maybe<SortOrder>;\r\n priceWithTax?: Maybe<SortOrder>;\r\n stockLevel?: Maybe<SortOrder>;\r\n};\r\n\r\nexport type ProductVariantTranslation = {\r\n __typename?: 'ProductVariantTranslation';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n languageCode: LanguageCode;\r\n name: Scalars['String'];\r\n};\r\n\r\nexport type ProductVariantTranslationInput = {\r\n id?: Maybe<Scalars['ID']>;\r\n languageCode: LanguageCode;\r\n name?: Maybe<Scalars['String']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type Promotion = Node & {\r\n __typename?: 'Promotion';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n startsAt?: Maybe<Scalars['DateTime']>;\r\n endsAt?: Maybe<Scalars['DateTime']>;\r\n couponCode?: Maybe<Scalars['String']>;\r\n perCustomerUsageLimit?: Maybe<Scalars['Int']>;\r\n name: Scalars['String'];\r\n enabled: Scalars['Boolean'];\r\n conditions: Array<ConfigurableOperation>;\r\n actions: Array<ConfigurableOperation>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type PromotionFilterParameter = {\r\n id?: Maybe<IdOperators>;\r\n createdAt?: Maybe<DateOperators>;\r\n updatedAt?: Maybe<DateOperators>;\r\n startsAt?: Maybe<DateOperators>;\r\n endsAt?: Maybe<DateOperators>;\r\n couponCode?: Maybe<StringOperators>;\r\n perCustomerUsageLimit?: Maybe<NumberOperators>;\r\n name?: Maybe<StringOperators>;\r\n enabled?: Maybe<BooleanOperators>;\r\n};\r\n\r\nexport type PromotionList = PaginatedList & {\r\n __typename?: 'PromotionList';\r\n items: Array<Promotion>;\r\n totalItems: Scalars['Int'];\r\n};\r\n\r\nexport type PromotionListOptions = {\r\n /** Skips the first n results, for use in pagination */\r\n skip?: Maybe<Scalars['Int']>;\r\n /** Takes n results, for use in pagination */\r\n take?: Maybe<Scalars['Int']>;\r\n /** Specifies which properties to sort the results by */\r\n sort?: Maybe<PromotionSortParameter>;\r\n /** Allows the results to be filtered */\r\n filter?: Maybe<PromotionFilterParameter>;\r\n /** Specifies whether multiple \"filter\" arguments should be combines with a logical AND or OR operation. Defaults to AND. */\r\n filterOperator?: Maybe<LogicalOperator>;\r\n};\r\n\r\nexport type PromotionSortParameter = {\r\n id?: Maybe<SortOrder>;\r\n createdAt?: Maybe<SortOrder>;\r\n updatedAt?: Maybe<SortOrder>;\r\n startsAt?: Maybe<SortOrder>;\r\n endsAt?: Maybe<SortOrder>;\r\n couponCode?: Maybe<SortOrder>;\r\n perCustomerUsageLimit?: Maybe<SortOrder>;\r\n name?: Maybe<SortOrder>;\r\n};\r\n\r\n/** Returned if the specified quantity of an OrderLine is greater than the number of items in that line */\r\nexport type QuantityTooGreatError = ErrorResult & {\r\n __typename?: 'QuantityTooGreatError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n};\r\n\r\nexport type Query = {\r\n __typename?: 'Query';\r\n activeAdministrator?: Maybe<Administrator>;\r\n activeChannel: Channel;\r\n administrator?: Maybe<Administrator>;\r\n administrators: AdministratorList;\r\n /** Get a single Asset by id */\r\n asset?: Maybe<Asset>;\r\n /** Get a list of Assets */\r\n assets: AssetList;\r\n channel?: Maybe<Channel>;\r\n channels: Array<Channel>;\r\n /** Get a Collection either by id or slug. If neither id nor slug is specified, an error will result. */\r\n collection?: Maybe<Collection>;\r\n collectionFilters: Array<ConfigurableOperationDefinition>;\r\n collections: CollectionList;\r\n countries: CountryList;\r\n country?: Maybe<Country>;\r\n customer?: Maybe<Customer>;\r\n customerGroup?: Maybe<CustomerGroup>;\r\n customerGroups: CustomerGroupList;\r\n customers: CustomerList;\r\n /** Returns a list of eligible shipping methods for the draft Order */\r\n eligibleShippingMethodsForDraftOrder: Array<ShippingMethodQuote>;\r\n facet?: Maybe<Facet>;\r\n facets: FacetList;\r\n fulfillmentHandlers: Array<ConfigurableOperationDefinition>;\r\n globalSettings: GlobalSettings;\r\n job?: Maybe<Job>;\r\n jobBufferSize: Array<JobBufferSize>;\r\n jobQueues: Array<JobQueue>;\r\n jobs: JobList;\r\n jobsById: Array<Job>;\r\n me?: Maybe<CurrentUser>;\r\n networkStatus: NetworkStatus;\r\n order?: Maybe<Order>;\r\n orders: OrderList;\r\n paymentMethod?: Maybe<PaymentMethod>;\r\n paymentMethodEligibilityCheckers: Array<ConfigurableOperationDefinition>;\r\n paymentMethodHandlers: Array<ConfigurableOperationDefinition>;\r\n paymentMethods: PaymentMethodList;\r\n pendingSearchIndexUpdates: Scalars['Int'];\r\n /** Used for real-time previews of the contents of a Collection */\r\n previewCollectionVariants: ProductVariantList;\r\n /** Get a Product either by id or slug. If neither id nor slug is specified, an error will result. */\r\n product?: Maybe<Product>;\r\n productOptionGroup?: Maybe<ProductOptionGroup>;\r\n productOptionGroups: Array<ProductOptionGroup>;\r\n /** Get a ProductVariant by id */\r\n productVariant?: Maybe<ProductVariant>;\r\n /** List ProductVariants either all or for the specific product. */\r\n productVariants: ProductVariantList;\r\n /** List Products */\r\n products: ProductList;\r\n promotion?: Maybe<Promotion>;\r\n promotionActions: Array<ConfigurableOperationDefinition>;\r\n promotionConditions: Array<ConfigurableOperationDefinition>;\r\n promotions: PromotionList;\r\n role?: Maybe<Role>;\r\n roles: RoleList;\r\n search: SearchResponse;\r\n shippingCalculators: Array<ConfigurableOperationDefinition>;\r\n shippingEligibilityCheckers: Array<ConfigurableOperationDefinition>;\r\n shippingMethod?: Maybe<ShippingMethod>;\r\n shippingMethods: ShippingMethodList;\r\n tag: Tag;\r\n tags: TagList;\r\n taxCategories: Array<TaxCategory>;\r\n taxCategory?: Maybe<TaxCategory>;\r\n taxRate?: Maybe<TaxRate>;\r\n taxRates: TaxRateList;\r\n testEligibleShippingMethods: Array<ShippingMethodQuote>;\r\n testShippingMethod: TestShippingMethodResult;\r\n uiState: UiState;\r\n userStatus: UserStatus;\r\n zone?: Maybe<Zone>;\r\n zones: Array<Zone>;\r\n};\r\n\r\n\r\nexport type QueryAdministratorArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type QueryAdministratorsArgs = {\r\n options?: Maybe<AdministratorListOptions>;\r\n};\r\n\r\n\r\nexport type QueryAssetArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type QueryAssetsArgs = {\r\n options?: Maybe<AssetListOptions>;\r\n};\r\n\r\n\r\nexport type QueryChannelArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type QueryCollectionArgs = {\r\n id?: Maybe<Scalars['ID']>;\r\n slug?: Maybe<Scalars['String']>;\r\n};\r\n\r\n\r\nexport type QueryCollectionsArgs = {\r\n options?: Maybe<CollectionListOptions>;\r\n};\r\n\r\n\r\nexport type QueryCountriesArgs = {\r\n options?: Maybe<CountryListOptions>;\r\n};\r\n\r\n\r\nexport type QueryCountryArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type QueryCustomerArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type QueryCustomerGroupArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type QueryCustomerGroupsArgs = {\r\n options?: Maybe<CustomerGroupListOptions>;\r\n};\r\n\r\n\r\nexport type QueryCustomersArgs = {\r\n options?: Maybe<CustomerListOptions>;\r\n};\r\n\r\n\r\nexport type QueryEligibleShippingMethodsForDraftOrderArgs = {\r\n orderId: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type QueryFacetArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type QueryFacetsArgs = {\r\n options?: Maybe<FacetListOptions>;\r\n};\r\n\r\n\r\nexport type QueryJobArgs = {\r\n jobId: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type QueryJobBufferSizeArgs = {\r\n bufferIds?: Maybe<Array<Scalars['String']>>;\r\n};\r\n\r\n\r\nexport type QueryJobsArgs = {\r\n options?: Maybe<JobListOptions>;\r\n};\r\n\r\n\r\nexport type QueryJobsByIdArgs = {\r\n jobIds: Array<Scalars['ID']>;\r\n};\r\n\r\n\r\nexport type QueryOrderArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type QueryOrdersArgs = {\r\n options?: Maybe<OrderListOptions>;\r\n};\r\n\r\n\r\nexport type QueryPaymentMethodArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type QueryPaymentMethodsArgs = {\r\n options?: Maybe<PaymentMethodListOptions>;\r\n};\r\n\r\n\r\nexport type QueryPreviewCollectionVariantsArgs = {\r\n input: PreviewCollectionVariantsInput;\r\n options?: Maybe<ProductVariantListOptions>;\r\n};\r\n\r\n\r\nexport type QueryProductArgs = {\r\n id?: Maybe<Scalars['ID']>;\r\n slug?: Maybe<Scalars['String']>;\r\n};\r\n\r\n\r\nexport type QueryProductOptionGroupArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type QueryProductOptionGroupsArgs = {\r\n filterTerm?: Maybe<Scalars['String']>;\r\n};\r\n\r\n\r\nexport type QueryProductVariantArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type QueryProductVariantsArgs = {\r\n options?: Maybe<ProductVariantListOptions>;\r\n productId?: Maybe<Scalars['ID']>;\r\n};\r\n\r\n\r\nexport type QueryProductsArgs = {\r\n options?: Maybe<ProductListOptions>;\r\n};\r\n\r\n\r\nexport type QueryPromotionArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type QueryPromotionsArgs = {\r\n options?: Maybe<PromotionListOptions>;\r\n};\r\n\r\n\r\nexport type QueryRoleArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type QueryRolesArgs = {\r\n options?: Maybe<RoleListOptions>;\r\n};\r\n\r\n\r\nexport type QuerySearchArgs = {\r\n input: SearchInput;\r\n};\r\n\r\n\r\nexport type QueryShippingMethodArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type QueryShippingMethodsArgs = {\r\n options?: Maybe<ShippingMethodListOptions>;\r\n};\r\n\r\n\r\nexport type QueryTagArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type QueryTagsArgs = {\r\n options?: Maybe<TagListOptions>;\r\n};\r\n\r\n\r\nexport type QueryTaxCategoryArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type QueryTaxRateArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\n\r\nexport type QueryTaxRatesArgs = {\r\n options?: Maybe<TaxRateListOptions>;\r\n};\r\n\r\n\r\nexport type QueryTestEligibleShippingMethodsArgs = {\r\n input: TestEligibleShippingMethodsInput;\r\n};\r\n\r\n\r\nexport type QueryTestShippingMethodArgs = {\r\n input: TestShippingMethodInput;\r\n};\r\n\r\n\r\nexport type QueryZoneArgs = {\r\n id: Scalars['ID'];\r\n};\r\n\r\nexport type Refund = Node & {\r\n __typename?: 'Refund';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n items: Scalars['Int'];\r\n shipping: Scalars['Int'];\r\n adjustment: Scalars['Int'];\r\n total: Scalars['Int'];\r\n method?: Maybe<Scalars['String']>;\r\n state: Scalars['String'];\r\n transactionId?: Maybe<Scalars['String']>;\r\n reason?: Maybe<Scalars['String']>;\r\n orderItems: Array<OrderItem>;\r\n paymentId: Scalars['ID'];\r\n metadata?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type RefundOrderInput = {\r\n lines: Array<OrderLineInput>;\r\n shipping: Scalars['Int'];\r\n adjustment: Scalars['Int'];\r\n paymentId: Scalars['ID'];\r\n reason?: Maybe<Scalars['String']>;\r\n};\r\n\r\nexport type RefundOrderResult = Refund | QuantityTooGreatError | NothingToRefundError | OrderStateTransitionError | MultipleOrderError | PaymentOrderMismatchError | RefundOrderStateError | AlreadyRefundedError | RefundStateTransitionError;\r\n\r\n/** Returned if an attempting to refund an Order which is not in the expected state */\r\nexport type RefundOrderStateError = ErrorResult & {\r\n __typename?: 'RefundOrderStateError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n orderState: Scalars['String'];\r\n};\r\n\r\n/**\r\n * Returned when a call to modifyOrder fails to include a refundPaymentId even\r\n * though the price has decreased as a result of the changes.\r\n */\r\nexport type RefundPaymentIdMissingError = ErrorResult & {\r\n __typename?: 'RefundPaymentIdMissingError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n};\r\n\r\n/** Returned when there is an error in transitioning the Refund state */\r\nexport type RefundStateTransitionError = ErrorResult & {\r\n __typename?: 'RefundStateTransitionError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n transitionError: Scalars['String'];\r\n fromState: Scalars['String'];\r\n toState: Scalars['String'];\r\n};\r\n\r\nexport type RelationCustomFieldConfig = CustomField & {\r\n __typename?: 'RelationCustomFieldConfig';\r\n name: Scalars['String'];\r\n type: Scalars['String'];\r\n list: Scalars['Boolean'];\r\n label?: Maybe<Array<LocalizedString>>;\r\n description?: Maybe<Array<LocalizedString>>;\r\n readonly?: Maybe<Scalars['Boolean']>;\r\n internal?: Maybe<Scalars['Boolean']>;\r\n nullable?: Maybe<Scalars['Boolean']>;\r\n entity: Scalars['String'];\r\n scalarFields: Array<Scalars['String']>;\r\n ui?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type Release = Node & StockMovement & {\r\n __typename?: 'Release';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n productVariant: ProductVariant;\r\n type: StockMovementType;\r\n quantity: Scalars['Int'];\r\n orderItem: OrderItem;\r\n};\r\n\r\nexport type RemoveCollectionsFromChannelInput = {\r\n collectionIds: Array<Scalars['ID']>;\r\n channelId: Scalars['ID'];\r\n};\r\n\r\nexport type RemoveFacetFromChannelResult = Facet | FacetInUseError;\r\n\r\nexport type RemoveFacetsFromChannelInput = {\r\n facetIds: Array<Scalars['ID']>;\r\n channelId: Scalars['ID'];\r\n force?: Maybe<Scalars['Boolean']>;\r\n};\r\n\r\nexport type RemoveOptionGroupFromProductResult = Product | ProductOptionInUseError;\r\n\r\nexport type RemoveOrderItemsResult = Order | OrderModificationError;\r\n\r\nexport type RemoveProductVariantsFromChannelInput = {\r\n productVariantIds: Array<Scalars['ID']>;\r\n channelId: Scalars['ID'];\r\n};\r\n\r\nexport type RemoveProductsFromChannelInput = {\r\n productIds: Array<Scalars['ID']>;\r\n channelId: Scalars['ID'];\r\n};\r\n\r\nexport type RemovePromotionsFromChannelInput = {\r\n promotionIds: Array<Scalars['ID']>;\r\n channelId: Scalars['ID'];\r\n};\r\n\r\nexport type Return = Node & StockMovement & {\r\n __typename?: 'Return';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n productVariant: ProductVariant;\r\n type: StockMovementType;\r\n quantity: Scalars['Int'];\r\n orderItem: OrderItem;\r\n};\r\n\r\nexport type Role = Node & {\r\n __typename?: 'Role';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n code: Scalars['String'];\r\n description: Scalars['String'];\r\n permissions: Array<Permission>;\r\n channels: Array<Channel>;\r\n};\r\n\r\nexport type RoleFilterParameter = {\r\n id?: Maybe<IdOperators>;\r\n createdAt?: Maybe<DateOperators>;\r\n updatedAt?: Maybe<DateOperators>;\r\n code?: Maybe<StringOperators>;\r\n description?: Maybe<StringOperators>;\r\n};\r\n\r\nexport type RoleList = PaginatedList & {\r\n __typename?: 'RoleList';\r\n items: Array<Role>;\r\n totalItems: Scalars['Int'];\r\n};\r\n\r\nexport type RoleListOptions = {\r\n /** Skips the first n results, for use in pagination */\r\n skip?: Maybe<Scalars['Int']>;\r\n /** Takes n results, for use in pagination */\r\n take?: Maybe<Scalars['Int']>;\r\n /** Specifies which properties to sort the results by */\r\n sort?: Maybe<RoleSortParameter>;\r\n /** Allows the results to be filtered */\r\n filter?: Maybe<RoleFilterParameter>;\r\n /** Specifies whether multiple \"filter\" arguments should be combines with a logical AND or OR operation. Defaults to AND. */\r\n filterOperator?: Maybe<LogicalOperator>;\r\n};\r\n\r\nexport type RoleSortParameter = {\r\n id?: Maybe<SortOrder>;\r\n createdAt?: Maybe<SortOrder>;\r\n updatedAt?: Maybe<SortOrder>;\r\n code?: Maybe<SortOrder>;\r\n description?: Maybe<SortOrder>;\r\n};\r\n\r\nexport type Sale = Node & StockMovement & {\r\n __typename?: 'Sale';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n productVariant: ProductVariant;\r\n type: StockMovementType;\r\n quantity: Scalars['Int'];\r\n orderItem: OrderItem;\r\n};\r\n\r\nexport type SearchInput = {\r\n term?: Maybe<Scalars['String']>;\r\n facetValueIds?: Maybe<Array<Scalars['ID']>>;\r\n facetValueOperator?: Maybe<LogicalOperator>;\r\n facetValueFilters?: Maybe<Array<FacetValueFilterInput>>;\r\n collectionId?: Maybe<Scalars['ID']>;\r\n collectionSlug?: Maybe<Scalars['String']>;\r\n groupByProduct?: Maybe<Scalars['Boolean']>;\r\n take?: Maybe<Scalars['Int']>;\r\n skip?: Maybe<Scalars['Int']>;\r\n sort?: Maybe<SearchResultSortParameter>;\r\n};\r\n\r\nexport type SearchReindexResponse = {\r\n __typename?: 'SearchReindexResponse';\r\n success: Scalars['Boolean'];\r\n};\r\n\r\nexport type SearchResponse = {\r\n __typename?: 'SearchResponse';\r\n items: Array<SearchResult>;\r\n totalItems: Scalars['Int'];\r\n facetValues: Array<FacetValueResult>;\r\n collections: Array<CollectionResult>;\r\n};\r\n\r\nexport type SearchResult = {\r\n __typename?: 'SearchResult';\r\n enabled: Scalars['Boolean'];\r\n /** An array of ids of the Channels in which this result appears */\r\n channelIds: Array<Scalars['ID']>;\r\n sku: Scalars['String'];\r\n slug: Scalars['String'];\r\n productId: Scalars['ID'];\r\n productName: Scalars['String'];\r\n productAsset?: Maybe<SearchResultAsset>;\r\n productVariantId: Scalars['ID'];\r\n productVariantName: Scalars['String'];\r\n productVariantAsset?: Maybe<SearchResultAsset>;\r\n price: SearchResultPrice;\r\n priceWithTax: SearchResultPrice;\r\n currencyCode: CurrencyCode;\r\n description: Scalars['String'];\r\n facetIds: Array<Scalars['ID']>;\r\n facetValueIds: Array<Scalars['ID']>;\r\n /** An array of ids of the Collections in which this result appears */\r\n collectionIds: Array<Scalars['ID']>;\r\n /** A relevance score for the result. Differs between database implementations */\r\n score: Scalars['Float'];\r\n};\r\n\r\nexport type SearchResultAsset = {\r\n __typename?: 'SearchResultAsset';\r\n id: Scalars['ID'];\r\n preview: Scalars['String'];\r\n focalPoint?: Maybe<Coordinate>;\r\n};\r\n\r\n/** The price of a search result product, either as a range or as a single price */\r\nexport type SearchResultPrice = PriceRange | SinglePrice;\r\n\r\nexport type SearchResultSortParameter = {\r\n name?: Maybe<SortOrder>;\r\n price?: Maybe<SortOrder>;\r\n};\r\n\r\nexport type ServerConfig = {\r\n __typename?: 'ServerConfig';\r\n orderProcess: Array<OrderProcessState>;\r\n permittedAssetTypes: Array<Scalars['String']>;\r\n permissions: Array<PermissionDefinition>;\r\n customFieldConfig: CustomFields;\r\n};\r\n\r\nexport type SetCustomerForDraftOrderResult = Order | EmailAddressConflictError;\r\n\r\nexport type SetOrderShippingMethodResult = Order | OrderModificationError | IneligibleShippingMethodError | NoActiveOrderError;\r\n\r\n/** Returned if the Payment settlement fails */\r\nexport type SettlePaymentError = ErrorResult & {\r\n __typename?: 'SettlePaymentError';\r\n errorCode: ErrorCode;\r\n message: Scalars['String'];\r\n paymentErrorMessage: Scalars['String'];\r\n};\r\n\r\nexport type SettlePaymentResult = Payment | SettlePaymentError | PaymentStateTransitionError | OrderStateTransitionError;\r\n\r\nexport type SettleRefundInput = {\r\n id: Scalars['ID'];\r\n transactionId: Scalars['String'];\r\n};\r\n\r\nexport type SettleRefundResult = Refund | RefundStateTransitionError;\r\n\r\nexport type ShippingLine = {\r\n __typename?: 'ShippingLine';\r\n id: Scalars['ID'];\r\n shippingMethod: ShippingMethod;\r\n price: Scalars['Int'];\r\n priceWithTax: Scalars['Int'];\r\n discountedPrice: Scalars['Int'];\r\n discountedPriceWithTax: Scalars['Int'];\r\n discounts: Array<Discount>;\r\n};\r\n\r\nexport type ShippingMethod = Node & {\r\n __typename?: 'ShippingMethod';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n languageCode: LanguageCode;\r\n code: Scalars['String'];\r\n name: Scalars['String'];\r\n description: Scalars['String'];\r\n fulfillmentHandlerCode: Scalars['String'];\r\n checker: ConfigurableOperation;\r\n calculator: ConfigurableOperation;\r\n translations: Array<ShippingMethodTranslation>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type ShippingMethodFilterParameter = {\r\n id?: Maybe<IdOperators>;\r\n createdAt?: Maybe<DateOperators>;\r\n updatedAt?: Maybe<DateOperators>;\r\n languageCode?: Maybe<StringOperators>;\r\n code?: Maybe<StringOperators>;\r\n name?: Maybe<StringOperators>;\r\n description?: Maybe<StringOperators>;\r\n fulfillmentHandlerCode?: Maybe<StringOperators>;\r\n};\r\n\r\nexport type ShippingMethodList = PaginatedList & {\r\n __typename?: 'ShippingMethodList';\r\n items: Array<ShippingMethod>;\r\n totalItems: Scalars['Int'];\r\n};\r\n\r\nexport type ShippingMethodListOptions = {\r\n /** Skips the first n results, for use in pagination */\r\n skip?: Maybe<Scalars['Int']>;\r\n /** Takes n results, for use in pagination */\r\n take?: Maybe<Scalars['Int']>;\r\n /** Specifies which properties to sort the results by */\r\n sort?: Maybe<ShippingMethodSortParameter>;\r\n /** Allows the results to be filtered */\r\n filter?: Maybe<ShippingMethodFilterParameter>;\r\n /** Specifies whether multiple \"filter\" arguments should be combines with a logical AND or OR operation. Defaults to AND. */\r\n filterOperator?: Maybe<LogicalOperator>;\r\n};\r\n\r\nexport type ShippingMethodQuote = {\r\n __typename?: 'ShippingMethodQuote';\r\n id: Scalars['ID'];\r\n price: Scalars['Int'];\r\n priceWithTax: Scalars['Int'];\r\n code: Scalars['String'];\r\n name: Scalars['String'];\r\n description: Scalars['String'];\r\n /** Any optional metadata returned by the ShippingCalculator in the ShippingCalculationResult */\r\n metadata?: Maybe<Scalars['JSON']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type ShippingMethodSortParameter = {\r\n id?: Maybe<SortOrder>;\r\n createdAt?: Maybe<SortOrder>;\r\n updatedAt?: Maybe<SortOrder>;\r\n code?: Maybe<SortOrder>;\r\n name?: Maybe<SortOrder>;\r\n description?: Maybe<SortOrder>;\r\n fulfillmentHandlerCode?: Maybe<SortOrder>;\r\n};\r\n\r\nexport type ShippingMethodTranslation = {\r\n __typename?: 'ShippingMethodTranslation';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n languageCode: LanguageCode;\r\n name: Scalars['String'];\r\n description: Scalars['String'];\r\n};\r\n\r\nexport type ShippingMethodTranslationInput = {\r\n id?: Maybe<Scalars['ID']>;\r\n languageCode: LanguageCode;\r\n name?: Maybe<Scalars['String']>;\r\n description?: Maybe<Scalars['String']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\n/** The price value where the result has a single price */\r\nexport type SinglePrice = {\r\n __typename?: 'SinglePrice';\r\n value: Scalars['Int'];\r\n};\r\n\r\nexport enum SortOrder {\r\n ASC = 'ASC',\r\n DESC = 'DESC'\r\n}\r\n\r\nexport type StockAdjustment = Node & StockMovement & {\r\n __typename?: 'StockAdjustment';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n productVariant: ProductVariant;\r\n type: StockMovementType;\r\n quantity: Scalars['Int'];\r\n};\r\n\r\nexport type StockMovement = {\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n productVariant: ProductVariant;\r\n type: StockMovementType;\r\n quantity: Scalars['Int'];\r\n};\r\n\r\nexport type StockMovementItem = StockAdjustment | Allocation | Sale | Cancellation | Return | Release;\r\n\r\nexport type StockMovementList = {\r\n __typename?: 'StockMovementList';\r\n items: Array<StockMovementItem>;\r\n totalItems: Scalars['Int'];\r\n};\r\n\r\nexport type StockMovementListOptions = {\r\n type?: Maybe<StockMovementType>;\r\n skip?: Maybe<Scalars['Int']>;\r\n take?: Maybe<Scalars['Int']>;\r\n};\r\n\r\nexport enum StockMovementType {\r\n ADJUSTMENT = 'ADJUSTMENT',\r\n ALLOCATION = 'ALLOCATION',\r\n RELEASE = 'RELEASE',\r\n SALE = 'SALE',\r\n CANCELLATION = 'CANCELLATION',\r\n RETURN = 'RETURN'\r\n}\r\n\r\nexport type StringCustomFieldConfig = CustomField & {\r\n __typename?: 'StringCustomFieldConfig';\r\n name: Scalars['String'];\r\n type: Scalars['String'];\r\n list: Scalars['Boolean'];\r\n length?: Maybe<Scalars['Int']>;\r\n label?: Maybe<Array<LocalizedString>>;\r\n description?: Maybe<Array<LocalizedString>>;\r\n readonly?: Maybe<Scalars['Boolean']>;\r\n internal?: Maybe<Scalars['Boolean']>;\r\n nullable?: Maybe<Scalars['Boolean']>;\r\n pattern?: Maybe<Scalars['String']>;\r\n options?: Maybe<Array<StringFieldOption>>;\r\n ui?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type StringFieldOption = {\r\n __typename?: 'StringFieldOption';\r\n value: Scalars['String'];\r\n label?: Maybe<Array<LocalizedString>>;\r\n};\r\n\r\n/** Operators for filtering on a list of String fields */\r\nexport type StringListOperators = {\r\n inList: Scalars['String'];\r\n};\r\n\r\n/** Operators for filtering on a String field */\r\nexport type StringOperators = {\r\n eq?: Maybe<Scalars['String']>;\r\n notEq?: Maybe<Scalars['String']>;\r\n contains?: Maybe<Scalars['String']>;\r\n notContains?: Maybe<Scalars['String']>;\r\n in?: Maybe<Array<Scalars['String']>>;\r\n notIn?: Maybe<Array<Scalars['String']>>;\r\n regex?: Maybe<Scalars['String']>;\r\n};\r\n\r\n/** Indicates that an operation succeeded, where we do not want to return any more specific information. */\r\nexport type Success = {\r\n __typename?: 'Success';\r\n success: Scalars['Boolean'];\r\n};\r\n\r\nexport type Surcharge = Node & {\r\n __typename?: 'Surcharge';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n description: Scalars['String'];\r\n sku?: Maybe<Scalars['String']>;\r\n taxLines: Array<TaxLine>;\r\n price: Scalars['Int'];\r\n priceWithTax: Scalars['Int'];\r\n taxRate: Scalars['Float'];\r\n};\r\n\r\nexport type SurchargeInput = {\r\n description: Scalars['String'];\r\n sku?: Maybe<Scalars['String']>;\r\n price: Scalars['Int'];\r\n priceIncludesTax: Scalars['Boolean'];\r\n taxRate?: Maybe<Scalars['Float']>;\r\n taxDescription?: Maybe<Scalars['String']>;\r\n};\r\n\r\nexport type Tag = Node & {\r\n __typename?: 'Tag';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n value: Scalars['String'];\r\n};\r\n\r\nexport type TagFilterParameter = {\r\n id?: Maybe<IdOperators>;\r\n createdAt?: Maybe<DateOperators>;\r\n updatedAt?: Maybe<DateOperators>;\r\n value?: Maybe<StringOperators>;\r\n};\r\n\r\nexport type TagList = PaginatedList & {\r\n __typename?: 'TagList';\r\n items: Array<Tag>;\r\n totalItems: Scalars['Int'];\r\n};\r\n\r\nexport type TagListOptions = {\r\n /** Skips the first n results, for use in pagination */\r\n skip?: Maybe<Scalars['Int']>;\r\n /** Takes n results, for use in pagination */\r\n take?: Maybe<Scalars['Int']>;\r\n /** Specifies which properties to sort the results by */\r\n sort?: Maybe<TagSortParameter>;\r\n /** Allows the results to be filtered */\r\n filter?: Maybe<TagFilterParameter>;\r\n /** Specifies whether multiple \"filter\" arguments should be combines with a logical AND or OR operation. Defaults to AND. */\r\n filterOperator?: Maybe<LogicalOperator>;\r\n};\r\n\r\nexport type TagSortParameter = {\r\n id?: Maybe<SortOrder>;\r\n createdAt?: Maybe<SortOrder>;\r\n updatedAt?: Maybe<SortOrder>;\r\n value?: Maybe<SortOrder>;\r\n};\r\n\r\nexport type TaxCategory = Node & {\r\n __typename?: 'TaxCategory';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n name: Scalars['String'];\r\n isDefault: Scalars['Boolean'];\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type TaxLine = {\r\n __typename?: 'TaxLine';\r\n description: Scalars['String'];\r\n taxRate: Scalars['Float'];\r\n};\r\n\r\nexport type TaxRate = Node & {\r\n __typename?: 'TaxRate';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n name: Scalars['String'];\r\n enabled: Scalars['Boolean'];\r\n value: Scalars['Float'];\r\n category: TaxCategory;\r\n zone: Zone;\r\n customerGroup?: Maybe<CustomerGroup>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type TaxRateFilterParameter = {\r\n id?: Maybe<IdOperators>;\r\n createdAt?: Maybe<DateOperators>;\r\n updatedAt?: Maybe<DateOperators>;\r\n name?: Maybe<StringOperators>;\r\n enabled?: Maybe<BooleanOperators>;\r\n value?: Maybe<NumberOperators>;\r\n};\r\n\r\nexport type TaxRateList = PaginatedList & {\r\n __typename?: 'TaxRateList';\r\n items: Array<TaxRate>;\r\n totalItems: Scalars['Int'];\r\n};\r\n\r\nexport type TaxRateListOptions = {\r\n /** Skips the first n results, for use in pagination */\r\n skip?: Maybe<Scalars['Int']>;\r\n /** Takes n results, for use in pagination */\r\n take?: Maybe<Scalars['Int']>;\r\n /** Specifies which properties to sort the results by */\r\n sort?: Maybe<TaxRateSortParameter>;\r\n /** Allows the results to be filtered */\r\n filter?: Maybe<TaxRateFilterParameter>;\r\n /** Specifies whether multiple \"filter\" arguments should be combines with a logical AND or OR operation. Defaults to AND. */\r\n filterOperator?: Maybe<LogicalOperator>;\r\n};\r\n\r\nexport type TaxRateSortParameter = {\r\n id?: Maybe<SortOrder>;\r\n createdAt?: Maybe<SortOrder>;\r\n updatedAt?: Maybe<SortOrder>;\r\n name?: Maybe<SortOrder>;\r\n value?: Maybe<SortOrder>;\r\n};\r\n\r\nexport type TestEligibleShippingMethodsInput = {\r\n shippingAddress: CreateAddressInput;\r\n lines: Array<TestShippingMethodOrderLineInput>;\r\n};\r\n\r\nexport type TestShippingMethodInput = {\r\n checker: ConfigurableOperationInput;\r\n calculator: ConfigurableOperationInput;\r\n shippingAddress: CreateAddressInput;\r\n lines: Array<TestShippingMethodOrderLineInput>;\r\n};\r\n\r\nexport type TestShippingMethodOrderLineInput = {\r\n productVariantId: Scalars['ID'];\r\n quantity: Scalars['Int'];\r\n};\r\n\r\nexport type TestShippingMethodQuote = {\r\n __typename?: 'TestShippingMethodQuote';\r\n price: Scalars['Int'];\r\n priceWithTax: Scalars['Int'];\r\n metadata?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type TestShippingMethodResult = {\r\n __typename?: 'TestShippingMethodResult';\r\n eligible: Scalars['Boolean'];\r\n quote?: Maybe<TestShippingMethodQuote>;\r\n};\r\n\r\nexport type TextCustomFieldConfig = CustomField & {\r\n __typename?: 'TextCustomFieldConfig';\r\n name: Scalars['String'];\r\n type: Scalars['String'];\r\n list: Scalars['Boolean'];\r\n label?: Maybe<Array<LocalizedString>>;\r\n description?: Maybe<Array<LocalizedString>>;\r\n readonly?: Maybe<Scalars['Boolean']>;\r\n internal?: Maybe<Scalars['Boolean']>;\r\n nullable?: Maybe<Scalars['Boolean']>;\r\n ui?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type TransitionFulfillmentToStateResult = Fulfillment | FulfillmentStateTransitionError;\r\n\r\nexport type TransitionOrderToStateResult = Order | OrderStateTransitionError;\r\n\r\nexport type TransitionPaymentToStateResult = Payment | PaymentStateTransitionError;\r\n\r\nexport type UiState = {\r\n __typename?: 'UiState';\r\n language: LanguageCode;\r\n locale?: Maybe<Scalars['String']>;\r\n contentLanguage: LanguageCode;\r\n theme: Scalars['String'];\r\n displayUiExtensionPoints: Scalars['Boolean'];\r\n};\r\n\r\nexport type UpdateActiveAdministratorInput = {\r\n firstName?: Maybe<Scalars['String']>;\r\n lastName?: Maybe<Scalars['String']>;\r\n emailAddress?: Maybe<Scalars['String']>;\r\n password?: Maybe<Scalars['String']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateAddressInput = {\r\n id: Scalars['ID'];\r\n fullName?: Maybe<Scalars['String']>;\r\n company?: Maybe<Scalars['String']>;\r\n streetLine1?: Maybe<Scalars['String']>;\r\n streetLine2?: Maybe<Scalars['String']>;\r\n city?: Maybe<Scalars['String']>;\r\n province?: Maybe<Scalars['String']>;\r\n postalCode?: Maybe<Scalars['String']>;\r\n countryCode?: Maybe<Scalars['String']>;\r\n phoneNumber?: Maybe<Scalars['String']>;\r\n defaultShippingAddress?: Maybe<Scalars['Boolean']>;\r\n defaultBillingAddress?: Maybe<Scalars['Boolean']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateAdministratorInput = {\r\n id: Scalars['ID'];\r\n firstName?: Maybe<Scalars['String']>;\r\n lastName?: Maybe<Scalars['String']>;\r\n emailAddress?: Maybe<Scalars['String']>;\r\n password?: Maybe<Scalars['String']>;\r\n roleIds?: Maybe<Array<Scalars['ID']>>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateAssetInput = {\r\n id: Scalars['ID'];\r\n name?: Maybe<Scalars['String']>;\r\n focalPoint?: Maybe<CoordinateInput>;\r\n tags?: Maybe<Array<Scalars['String']>>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateChannelInput = {\r\n id: Scalars['ID'];\r\n code?: Maybe<Scalars['String']>;\r\n token?: Maybe<Scalars['String']>;\r\n defaultLanguageCode?: Maybe<LanguageCode>;\r\n pricesIncludeTax?: Maybe<Scalars['Boolean']>;\r\n currencyCode?: Maybe<CurrencyCode>;\r\n defaultTaxZoneId?: Maybe<Scalars['ID']>;\r\n defaultShippingZoneId?: Maybe<Scalars['ID']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateChannelResult = Channel | LanguageNotAvailableError;\r\n\r\nexport type UpdateCollectionInput = {\r\n id: Scalars['ID'];\r\n isPrivate?: Maybe<Scalars['Boolean']>;\r\n featuredAssetId?: Maybe<Scalars['ID']>;\r\n parentId?: Maybe<Scalars['ID']>;\r\n assetIds?: Maybe<Array<Scalars['ID']>>;\r\n filters?: Maybe<Array<ConfigurableOperationInput>>;\r\n translations?: Maybe<Array<UpdateCollectionTranslationInput>>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateCollectionTranslationInput = {\r\n id?: Maybe<Scalars['ID']>;\r\n languageCode: LanguageCode;\r\n name?: Maybe<Scalars['String']>;\r\n slug?: Maybe<Scalars['String']>;\r\n description?: Maybe<Scalars['String']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateCountryInput = {\r\n id: Scalars['ID'];\r\n code?: Maybe<Scalars['String']>;\r\n translations?: Maybe<Array<CountryTranslationInput>>;\r\n enabled?: Maybe<Scalars['Boolean']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateCustomerGroupInput = {\r\n id: Scalars['ID'];\r\n name?: Maybe<Scalars['String']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateCustomerInput = {\r\n id: Scalars['ID'];\r\n title?: Maybe<Scalars['String']>;\r\n firstName?: Maybe<Scalars['String']>;\r\n lastName?: Maybe<Scalars['String']>;\r\n phoneNumber?: Maybe<Scalars['String']>;\r\n emailAddress?: Maybe<Scalars['String']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateCustomerNoteInput = {\r\n noteId: Scalars['ID'];\r\n note: Scalars['String'];\r\n};\r\n\r\nexport type UpdateCustomerResult = Customer | EmailAddressConflictError;\r\n\r\nexport type UpdateFacetInput = {\r\n id: Scalars['ID'];\r\n isPrivate?: Maybe<Scalars['Boolean']>;\r\n code?: Maybe<Scalars['String']>;\r\n translations?: Maybe<Array<FacetTranslationInput>>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateFacetValueInput = {\r\n id: Scalars['ID'];\r\n code?: Maybe<Scalars['String']>;\r\n translations?: Maybe<Array<FacetValueTranslationInput>>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateGlobalSettingsInput = {\r\n availableLanguages?: Maybe<Array<LanguageCode>>;\r\n trackInventory?: Maybe<Scalars['Boolean']>;\r\n outOfStockThreshold?: Maybe<Scalars['Int']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateGlobalSettingsResult = GlobalSettings | ChannelDefaultLanguageError;\r\n\r\nexport type UpdateOrderAddressInput = {\r\n fullName?: Maybe<Scalars['String']>;\r\n company?: Maybe<Scalars['String']>;\r\n streetLine1?: Maybe<Scalars['String']>;\r\n streetLine2?: Maybe<Scalars['String']>;\r\n city?: Maybe<Scalars['String']>;\r\n province?: Maybe<Scalars['String']>;\r\n postalCode?: Maybe<Scalars['String']>;\r\n countryCode?: Maybe<Scalars['String']>;\r\n phoneNumber?: Maybe<Scalars['String']>;\r\n};\r\n\r\nexport type UpdateOrderInput = {\r\n id: Scalars['ID'];\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateOrderItemsResult = Order | OrderModificationError | OrderLimitError | NegativeQuantityError | InsufficientStockError;\r\n\r\nexport type UpdateOrderNoteInput = {\r\n noteId: Scalars['ID'];\r\n note?: Maybe<Scalars['String']>;\r\n isPublic?: Maybe<Scalars['Boolean']>;\r\n};\r\n\r\nexport type UpdatePaymentMethodInput = {\r\n id: Scalars['ID'];\r\n name?: Maybe<Scalars['String']>;\r\n code?: Maybe<Scalars['String']>;\r\n description?: Maybe<Scalars['String']>;\r\n enabled?: Maybe<Scalars['Boolean']>;\r\n checker?: Maybe<ConfigurableOperationInput>;\r\n handler?: Maybe<ConfigurableOperationInput>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateProductInput = {\r\n id: Scalars['ID'];\r\n enabled?: Maybe<Scalars['Boolean']>;\r\n featuredAssetId?: Maybe<Scalars['ID']>;\r\n assetIds?: Maybe<Array<Scalars['ID']>>;\r\n facetValueIds?: Maybe<Array<Scalars['ID']>>;\r\n translations?: Maybe<Array<ProductTranslationInput>>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateProductOptionGroupInput = {\r\n id: Scalars['ID'];\r\n code?: Maybe<Scalars['String']>;\r\n translations?: Maybe<Array<ProductOptionGroupTranslationInput>>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateProductOptionInput = {\r\n id: Scalars['ID'];\r\n code?: Maybe<Scalars['String']>;\r\n translations?: Maybe<Array<ProductOptionGroupTranslationInput>>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateProductVariantInput = {\r\n id: Scalars['ID'];\r\n enabled?: Maybe<Scalars['Boolean']>;\r\n translations?: Maybe<Array<ProductVariantTranslationInput>>;\r\n facetValueIds?: Maybe<Array<Scalars['ID']>>;\r\n sku?: Maybe<Scalars['String']>;\r\n taxCategoryId?: Maybe<Scalars['ID']>;\r\n price?: Maybe<Scalars['Int']>;\r\n featuredAssetId?: Maybe<Scalars['ID']>;\r\n assetIds?: Maybe<Array<Scalars['ID']>>;\r\n stockOnHand?: Maybe<Scalars['Int']>;\r\n outOfStockThreshold?: Maybe<Scalars['Int']>;\r\n useGlobalOutOfStockThreshold?: Maybe<Scalars['Boolean']>;\r\n trackInventory?: Maybe<GlobalFlag>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdatePromotionInput = {\r\n id: Scalars['ID'];\r\n name?: Maybe<Scalars['String']>;\r\n enabled?: Maybe<Scalars['Boolean']>;\r\n startsAt?: Maybe<Scalars['DateTime']>;\r\n endsAt?: Maybe<Scalars['DateTime']>;\r\n couponCode?: Maybe<Scalars['String']>;\r\n perCustomerUsageLimit?: Maybe<Scalars['Int']>;\r\n conditions?: Maybe<Array<ConfigurableOperationInput>>;\r\n actions?: Maybe<Array<ConfigurableOperationInput>>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdatePromotionResult = Promotion | MissingConditionsError;\r\n\r\nexport type UpdateRoleInput = {\r\n id: Scalars['ID'];\r\n code?: Maybe<Scalars['String']>;\r\n description?: Maybe<Scalars['String']>;\r\n permissions?: Maybe<Array<Permission>>;\r\n channelIds?: Maybe<Array<Scalars['ID']>>;\r\n};\r\n\r\nexport type UpdateShippingMethodInput = {\r\n id: Scalars['ID'];\r\n code?: Maybe<Scalars['String']>;\r\n fulfillmentHandler?: Maybe<Scalars['String']>;\r\n checker?: Maybe<ConfigurableOperationInput>;\r\n calculator?: Maybe<ConfigurableOperationInput>;\r\n translations: Array<ShippingMethodTranslationInput>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateTagInput = {\r\n id: Scalars['ID'];\r\n value?: Maybe<Scalars['String']>;\r\n};\r\n\r\nexport type UpdateTaxCategoryInput = {\r\n id: Scalars['ID'];\r\n name?: Maybe<Scalars['String']>;\r\n isDefault?: Maybe<Scalars['Boolean']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateTaxRateInput = {\r\n id: Scalars['ID'];\r\n name?: Maybe<Scalars['String']>;\r\n value?: Maybe<Scalars['Float']>;\r\n enabled?: Maybe<Scalars['Boolean']>;\r\n categoryId?: Maybe<Scalars['ID']>;\r\n zoneId?: Maybe<Scalars['ID']>;\r\n customerGroupId?: Maybe<Scalars['ID']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UpdateZoneInput = {\r\n id: Scalars['ID'];\r\n name?: Maybe<Scalars['String']>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\n\r\nexport type User = Node & {\r\n __typename?: 'User';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n identifier: Scalars['String'];\r\n verified: Scalars['Boolean'];\r\n roles: Array<Role>;\r\n lastLogin?: Maybe<Scalars['DateTime']>;\r\n authenticationMethods: Array<AuthenticationMethod>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type UserStatus = {\r\n __typename?: 'UserStatus';\r\n username: Scalars['String'];\r\n isLoggedIn: Scalars['Boolean'];\r\n loginTime: Scalars['String'];\r\n permissions: Array<Permission>;\r\n activeChannelId?: Maybe<Scalars['ID']>;\r\n channels: Array<CurrentUserChannel>;\r\n};\r\n\r\nexport type UserStatusInput = {\r\n username: Scalars['String'];\r\n loginTime: Scalars['String'];\r\n activeChannelId: Scalars['ID'];\r\n channels: Array<CurrentUserChannelInput>;\r\n};\r\n\r\nexport type Zone = Node & {\r\n __typename?: 'Zone';\r\n id: Scalars['ID'];\r\n createdAt: Scalars['DateTime'];\r\n updatedAt: Scalars['DateTime'];\r\n name: Scalars['String'];\r\n members: Array<Country>;\r\n customFields?: Maybe<Scalars['JSON']>;\r\n};\r\n\r\nexport type GetProductsWithFacetValuesByIdsQueryVariables = Exact<{\r\n ids: Array<Scalars['String']> | Scalars['String'];\r\n}>;\r\n\r\n\r\nexport type GetProductsWithFacetValuesByIdsQuery = { products: (\r\n { __typename?: 'ProductList' }\r\n & { items: Array<(\r\n { __typename?: 'Product' }\r\n & Pick<Product, 'id' | 'name'>\r\n & { facetValues: Array<(\r\n { __typename?: 'FacetValue' }\r\n & Pick<FacetValue, 'id' | 'name' | 'code'>\r\n & { facet: (\r\n { __typename?: 'Facet' }\r\n & Pick<Facet, 'id' | 'name' | 'code'>\r\n ) }\r\n )> }\r\n )> }\r\n ) };\r\n\r\nexport type GetVariantsWithFacetValuesByIdsQueryVariables = Exact<{\r\n ids: Array<Scalars['String']> | Scalars['String'];\r\n}>;\r\n\r\n\r\nexport type GetVariantsWithFacetValuesByIdsQuery = { productVariants: (\r\n { __typename?: 'ProductVariantList' }\r\n & { items: Array<(\r\n { __typename?: 'ProductVariant' }\r\n & Pick<ProductVariant, 'id' | 'name' | 'sku'>\r\n & { facetValues: Array<(\r\n { __typename?: 'FacetValue' }\r\n & Pick<FacetValue, 'id' | 'name' | 'code'>\r\n & { facet: (\r\n { __typename?: 'Facet' }\r\n & Pick<Facet, 'id' | 'name' | 'code'>\r\n ) }\r\n )> }\r\n )> }\r\n ) };\r\n\r\nexport type UpdateProductsBulkMutationVariables = Exact<{\r\n input: Array<UpdateProductInput> | UpdateProductInput;\r\n}>;\r\n\r\n\r\nexport type UpdateProductsBulkMutation = { updateProducts: Array<(\r\n { __typename?: 'Product' }\r\n & Pick<Product, 'id' | 'name'>\r\n & { facetValues: Array<(\r\n { __typename?: 'FacetValue' }\r\n & Pick<FacetValue, 'id' | 'name' | 'code'>\r\n )> }\r\n )> };\r\n\r\nexport type UpdateVariantsBulkMutationVariables = Exact<{\r\n input: Array<UpdateProductVariantInput> | UpdateProductVariantInput;\r\n}>;\r\n\r\n\r\nexport type UpdateVariantsBulkMutation = { updateProductVariants: Array<Maybe<(\r\n { __typename?: 'ProductVariant' }\r\n & Pick<ProductVariant, 'id' | 'name'>\r\n & { facetValues: Array<(\r\n { __typename?: 'FacetValue' }\r\n & Pick<FacetValue, 'id' | 'name' | 'code'>\r\n )> }\r\n )>> };\r\n\r\nexport type RoleFragment = (\r\n { __typename?: 'Role' }\r\n & Pick<Role, 'id' | 'createdAt' | 'updatedAt' | 'code' | 'description' | 'permissions'>\r\n & { channels: Array<(\r\n { __typename?: 'Channel' }\r\n & Pick<Channel, 'id' | 'code' | 'token'>\r\n )> }\r\n);\r\n\r\nexport type AdministratorFragment = (\r\n { __typename?: 'Administrator' }\r\n & Pick<Administrator, 'id' | 'createdAt' | 'updatedAt' | 'firstName' | 'lastName' | 'emailAddress'>\r\n & { user: (\r\n { __typename?: 'User' }\r\n & Pick<User, 'id' | 'identifier' | 'lastLogin'>\r\n & { roles: Array<(\r\n { __typename?: 'Role' }\r\n & RoleFragment\r\n )> }\r\n ) }\r\n);\r\n\r\nexport type GetAdministratorsQueryVariables = Exact<{\r\n options?: Maybe<AdministratorListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetAdministratorsQuery = { administrators: (\r\n { __typename?: 'AdministratorList' }\r\n & Pick<AdministratorList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'Administrator' }\r\n & AdministratorFragment\r\n )> }\r\n ) };\r\n\r\nexport type GetActiveAdministratorQueryVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type GetActiveAdministratorQuery = { activeAdministrator?: Maybe<(\r\n { __typename?: 'Administrator' }\r\n & AdministratorFragment\r\n )> };\r\n\r\nexport type GetAdministratorQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetAdministratorQuery = { administrator?: Maybe<(\r\n { __typename?: 'Administrator' }\r\n & AdministratorFragment\r\n )> };\r\n\r\nexport type CreateAdministratorMutationVariables = Exact<{\r\n input: CreateAdministratorInput;\r\n}>;\r\n\r\n\r\nexport type CreateAdministratorMutation = { createAdministrator: (\r\n { __typename?: 'Administrator' }\r\n & AdministratorFragment\r\n ) };\r\n\r\nexport type UpdateAdministratorMutationVariables = Exact<{\r\n input: UpdateAdministratorInput;\r\n}>;\r\n\r\n\r\nexport type UpdateAdministratorMutation = { updateAdministrator: (\r\n { __typename?: 'Administrator' }\r\n & AdministratorFragment\r\n ) };\r\n\r\nexport type UpdateActiveAdministratorMutationVariables = Exact<{\r\n input: UpdateActiveAdministratorInput;\r\n}>;\r\n\r\n\r\nexport type UpdateActiveAdministratorMutation = { updateActiveAdministrator: (\r\n { __typename?: 'Administrator' }\r\n & AdministratorFragment\r\n ) };\r\n\r\nexport type DeleteAdministratorMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteAdministratorMutation = { deleteAdministrator: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n ) };\r\n\r\nexport type GetRolesQueryVariables = Exact<{\r\n options?: Maybe<RoleListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetRolesQuery = { roles: (\r\n { __typename?: 'RoleList' }\r\n & Pick<RoleList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'Role' }\r\n & RoleFragment\r\n )> }\r\n ) };\r\n\r\nexport type GetRoleQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetRoleQuery = { role?: Maybe<(\r\n { __typename?: 'Role' }\r\n & RoleFragment\r\n )> };\r\n\r\nexport type CreateRoleMutationVariables = Exact<{\r\n input: CreateRoleInput;\r\n}>;\r\n\r\n\r\nexport type CreateRoleMutation = { createRole: (\r\n { __typename?: 'Role' }\r\n & RoleFragment\r\n ) };\r\n\r\nexport type UpdateRoleMutationVariables = Exact<{\r\n input: UpdateRoleInput;\r\n}>;\r\n\r\n\r\nexport type UpdateRoleMutation = { updateRole: (\r\n { __typename?: 'Role' }\r\n & RoleFragment\r\n ) };\r\n\r\nexport type DeleteRoleMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteRoleMutation = { deleteRole: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n ) };\r\n\r\nexport type AssignRoleToAdministratorMutationVariables = Exact<{\r\n administratorId: Scalars['ID'];\r\n roleId: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type AssignRoleToAdministratorMutation = { assignRoleToAdministrator: (\r\n { __typename?: 'Administrator' }\r\n & AdministratorFragment\r\n ) };\r\n\r\nexport type CurrentUserFragment = (\r\n { __typename?: 'CurrentUser' }\r\n & Pick<CurrentUser, 'id' | 'identifier'>\r\n & { channels: Array<(\r\n { __typename?: 'CurrentUserChannel' }\r\n & Pick<CurrentUserChannel, 'id' | 'code' | 'token' | 'permissions'>\r\n )> }\r\n);\r\n\r\nexport type AttemptLoginMutationVariables = Exact<{\r\n username: Scalars['String'];\r\n password: Scalars['String'];\r\n rememberMe: Scalars['Boolean'];\r\n}>;\r\n\r\n\r\nexport type AttemptLoginMutation = { login: (\r\n { __typename?: 'CurrentUser' }\r\n & CurrentUserFragment\r\n ) | (\r\n { __typename?: 'InvalidCredentialsError' }\r\n & ErrorResult_InvalidCredentialsError_Fragment\r\n ) | (\r\n { __typename?: 'NativeAuthStrategyError' }\r\n & ErrorResult_NativeAuthStrategyError_Fragment\r\n ) };\r\n\r\nexport type LogOutMutationVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type LogOutMutation = { logout: (\r\n { __typename?: 'Success' }\r\n & Pick<Success, 'success'>\r\n ) };\r\n\r\nexport type GetCurrentUserQueryVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type GetCurrentUserQuery = { me?: Maybe<(\r\n { __typename?: 'CurrentUser' }\r\n & CurrentUserFragment\r\n )> };\r\n\r\nexport type RequestStartedMutationVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type RequestStartedMutation = Pick<Mutation, 'requestStarted'>;\r\n\r\nexport type RequestCompletedMutationVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type RequestCompletedMutation = Pick<Mutation, 'requestCompleted'>;\r\n\r\nexport type UserStatusFragment = (\r\n { __typename?: 'UserStatus' }\r\n & Pick<UserStatus, 'username' | 'isLoggedIn' | 'loginTime' | 'activeChannelId' | 'permissions'>\r\n & { channels: Array<(\r\n { __typename?: 'CurrentUserChannel' }\r\n & Pick<CurrentUserChannel, 'id' | 'code' | 'token' | 'permissions'>\r\n )> }\r\n);\r\n\r\nexport type SetAsLoggedInMutationVariables = Exact<{\r\n input: UserStatusInput;\r\n}>;\r\n\r\n\r\nexport type SetAsLoggedInMutation = { setAsLoggedIn: (\r\n { __typename?: 'UserStatus' }\r\n & UserStatusFragment\r\n ) };\r\n\r\nexport type SetAsLoggedOutMutationVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type SetAsLoggedOutMutation = { setAsLoggedOut: (\r\n { __typename?: 'UserStatus' }\r\n & UserStatusFragment\r\n ) };\r\n\r\nexport type SetUiLanguageMutationVariables = Exact<{\r\n languageCode: LanguageCode;\r\n locale?: Maybe<Scalars['String']>;\r\n}>;\r\n\r\n\r\nexport type SetUiLanguageMutation = Pick<Mutation, 'setUiLanguage' | 'setUiLocale'>;\r\n\r\nexport type SetUiLocaleMutationVariables = Exact<{\r\n locale?: Maybe<Scalars['String']>;\r\n}>;\r\n\r\n\r\nexport type SetUiLocaleMutation = Pick<Mutation, 'setUiLocale'>;\r\n\r\nexport type SetDisplayUiExtensionPointsMutationVariables = Exact<{\r\n display: Scalars['Boolean'];\r\n}>;\r\n\r\n\r\nexport type SetDisplayUiExtensionPointsMutation = Pick<Mutation, 'setDisplayUiExtensionPoints'>;\r\n\r\nexport type SetContentLanguageMutationVariables = Exact<{\r\n languageCode: LanguageCode;\r\n}>;\r\n\r\n\r\nexport type SetContentLanguageMutation = Pick<Mutation, 'setContentLanguage'>;\r\n\r\nexport type SetUiThemeMutationVariables = Exact<{\r\n theme: Scalars['String'];\r\n}>;\r\n\r\n\r\nexport type SetUiThemeMutation = Pick<Mutation, 'setUiTheme'>;\r\n\r\nexport type GetNetworkStatusQueryVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type GetNetworkStatusQuery = { networkStatus: (\r\n { __typename?: 'NetworkStatus' }\r\n & Pick<NetworkStatus, 'inFlightRequests'>\r\n ) };\r\n\r\nexport type GetUserStatusQueryVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type GetUserStatusQuery = { userStatus: (\r\n { __typename?: 'UserStatus' }\r\n & UserStatusFragment\r\n ) };\r\n\r\nexport type GetUiStateQueryVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type GetUiStateQuery = { uiState: (\r\n { __typename?: 'UiState' }\r\n & Pick<UiState, 'language' | 'locale' | 'contentLanguage' | 'theme' | 'displayUiExtensionPoints'>\r\n ) };\r\n\r\nexport type GetClientStateQueryVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type GetClientStateQuery = { networkStatus: (\r\n { __typename?: 'NetworkStatus' }\r\n & Pick<NetworkStatus, 'inFlightRequests'>\r\n ), userStatus: (\r\n { __typename?: 'UserStatus' }\r\n & UserStatusFragment\r\n ), uiState: (\r\n { __typename?: 'UiState' }\r\n & Pick<UiState, 'language' | 'locale' | 'contentLanguage' | 'theme' | 'displayUiExtensionPoints'>\r\n ) };\r\n\r\nexport type SetActiveChannelMutationVariables = Exact<{\r\n channelId: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type SetActiveChannelMutation = { setActiveChannel: (\r\n { __typename?: 'UserStatus' }\r\n & UserStatusFragment\r\n ) };\r\n\r\nexport type UpdateUserChannelsMutationVariables = Exact<{\r\n channels: Array<CurrentUserChannelInput> | CurrentUserChannelInput;\r\n}>;\r\n\r\n\r\nexport type UpdateUserChannelsMutation = { updateUserChannels: (\r\n { __typename?: 'UserStatus' }\r\n & UserStatusFragment\r\n ) };\r\n\r\nexport type GetCollectionFiltersQueryVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type GetCollectionFiltersQuery = { collectionFilters: Array<(\r\n { __typename?: 'ConfigurableOperationDefinition' }\r\n & ConfigurableOperationDefFragment\r\n )> };\r\n\r\nexport type CollectionFragment = (\r\n { __typename?: 'Collection' }\r\n & Pick<Collection, 'id' | 'createdAt' | 'updatedAt' | 'name' | 'slug' | 'description' | 'isPrivate' | 'languageCode'>\r\n & { breadcrumbs: Array<(\r\n { __typename?: 'CollectionBreadcrumb' }\r\n & Pick<CollectionBreadcrumb, 'id' | 'name' | 'slug'>\r\n )>, featuredAsset?: Maybe<(\r\n { __typename?: 'Asset' }\r\n & AssetFragment\r\n )>, assets: Array<(\r\n { __typename?: 'Asset' }\r\n & AssetFragment\r\n )>, filters: Array<(\r\n { __typename?: 'ConfigurableOperation' }\r\n & ConfigurableOperationFragment\r\n )>, translations: Array<(\r\n { __typename?: 'CollectionTranslation' }\r\n & Pick<CollectionTranslation, 'id' | 'languageCode' | 'name' | 'slug' | 'description'>\r\n )>, parent?: Maybe<(\r\n { __typename?: 'Collection' }\r\n & Pick<Collection, 'id' | 'name'>\r\n )>, children?: Maybe<Array<(\r\n { __typename?: 'Collection' }\r\n & Pick<Collection, 'id' | 'name'>\r\n )>> }\r\n);\r\n\r\nexport type GetCollectionListQueryVariables = Exact<{\r\n options?: Maybe<CollectionListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetCollectionListQuery = { collections: (\r\n { __typename?: 'CollectionList' }\r\n & Pick<CollectionList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'Collection' }\r\n & Pick<Collection, 'id' | 'name' | 'slug' | 'description' | 'isPrivate'>\r\n & { featuredAsset?: Maybe<(\r\n { __typename?: 'Asset' }\r\n & AssetFragment\r\n )>, parent?: Maybe<(\r\n { __typename?: 'Collection' }\r\n & Pick<Collection, 'id'>\r\n )> }\r\n )> }\r\n ) };\r\n\r\nexport type GetCollectionQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetCollectionQuery = { collection?: Maybe<(\r\n { __typename?: 'Collection' }\r\n & CollectionFragment\r\n )> };\r\n\r\nexport type CreateCollectionMutationVariables = Exact<{\r\n input: CreateCollectionInput;\r\n}>;\r\n\r\n\r\nexport type CreateCollectionMutation = { createCollection: (\r\n { __typename?: 'Collection' }\r\n & CollectionFragment\r\n ) };\r\n\r\nexport type UpdateCollectionMutationVariables = Exact<{\r\n input: UpdateCollectionInput;\r\n}>;\r\n\r\n\r\nexport type UpdateCollectionMutation = { updateCollection: (\r\n { __typename?: 'Collection' }\r\n & CollectionFragment\r\n ) };\r\n\r\nexport type MoveCollectionMutationVariables = Exact<{\r\n input: MoveCollectionInput;\r\n}>;\r\n\r\n\r\nexport type MoveCollectionMutation = { moveCollection: (\r\n { __typename?: 'Collection' }\r\n & CollectionFragment\r\n ) };\r\n\r\nexport type DeleteCollectionMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteCollectionMutation = { deleteCollection: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n ) };\r\n\r\nexport type DeleteCollectionsMutationVariables = Exact<{\r\n ids: Array<Scalars['ID']> | Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteCollectionsMutation = { deleteCollections: Array<(\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n )> };\r\n\r\nexport type GetCollectionContentsQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n options?: Maybe<ProductVariantListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetCollectionContentsQuery = { collection?: Maybe<(\r\n { __typename?: 'Collection' }\r\n & Pick<Collection, 'id' | 'name'>\r\n & { productVariants: (\r\n { __typename?: 'ProductVariantList' }\r\n & Pick<ProductVariantList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'ProductVariant' }\r\n & Pick<ProductVariant, 'id' | 'productId' | 'name' | 'sku'>\r\n )> }\r\n ) }\r\n )> };\r\n\r\nexport type PreviewCollectionContentsQueryVariables = Exact<{\r\n input: PreviewCollectionVariantsInput;\r\n options?: Maybe<ProductVariantListOptions>;\r\n}>;\r\n\r\n\r\nexport type PreviewCollectionContentsQuery = { previewCollectionVariants: (\r\n { __typename?: 'ProductVariantList' }\r\n & Pick<ProductVariantList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'ProductVariant' }\r\n & Pick<ProductVariant, 'id' | 'productId' | 'name' | 'sku'>\r\n )> }\r\n ) };\r\n\r\nexport type AssignCollectionsToChannelMutationVariables = Exact<{\r\n input: AssignCollectionsToChannelInput;\r\n}>;\r\n\r\n\r\nexport type AssignCollectionsToChannelMutation = { assignCollectionsToChannel: Array<(\r\n { __typename?: 'Collection' }\r\n & Pick<Collection, 'id' | 'name'>\r\n )> };\r\n\r\nexport type RemoveCollectionsFromChannelMutationVariables = Exact<{\r\n input: RemoveCollectionsFromChannelInput;\r\n}>;\r\n\r\n\r\nexport type RemoveCollectionsFromChannelMutation = { removeCollectionsFromChannel: Array<(\r\n { __typename?: 'Collection' }\r\n & Pick<Collection, 'id' | 'name'>\r\n )> };\r\n\r\nexport type AddressFragment = (\r\n { __typename?: 'Address' }\r\n & Pick<Address, 'id' | 'createdAt' | 'updatedAt' | 'fullName' | 'company' | 'streetLine1' | 'streetLine2' | 'city' | 'province' | 'postalCode' | 'phoneNumber' | 'defaultShippingAddress' | 'defaultBillingAddress'>\r\n & { country: (\r\n { __typename?: 'Country' }\r\n & Pick<Country, 'id' | 'code' | 'name'>\r\n ) }\r\n);\r\n\r\nexport type CustomerFragment = (\r\n { __typename?: 'Customer' }\r\n & Pick<Customer, 'id' | 'createdAt' | 'updatedAt' | 'title' | 'firstName' | 'lastName' | 'phoneNumber' | 'emailAddress'>\r\n & { user?: Maybe<(\r\n { __typename?: 'User' }\r\n & Pick<User, 'id' | 'identifier' | 'verified' | 'lastLogin'>\r\n )>, addresses?: Maybe<Array<(\r\n { __typename?: 'Address' }\r\n & AddressFragment\r\n )>> }\r\n);\r\n\r\nexport type CustomerGroupFragment = (\r\n { __typename?: 'CustomerGroup' }\r\n & Pick<CustomerGroup, 'id' | 'createdAt' | 'updatedAt' | 'name'>\r\n);\r\n\r\nexport type GetCustomerListQueryVariables = Exact<{\r\n options?: Maybe<CustomerListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetCustomerListQuery = { customers: (\r\n { __typename?: 'CustomerList' }\r\n & Pick<CustomerList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'Customer' }\r\n & Pick<Customer, 'id' | 'createdAt' | 'updatedAt' | 'title' | 'firstName' | 'lastName' | 'emailAddress'>\r\n & { user?: Maybe<(\r\n { __typename?: 'User' }\r\n & Pick<User, 'id' | 'verified'>\r\n )> }\r\n )> }\r\n ) };\r\n\r\nexport type GetCustomerQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n orderListOptions?: Maybe<OrderListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetCustomerQuery = { customer?: Maybe<(\r\n { __typename?: 'Customer' }\r\n & { groups: Array<(\r\n { __typename?: 'CustomerGroup' }\r\n & Pick<CustomerGroup, 'id' | 'name'>\r\n )>, orders: (\r\n { __typename?: 'OrderList' }\r\n & Pick<OrderList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'Order' }\r\n & Pick<Order, 'id' | 'code' | 'state' | 'totalWithTax' | 'currencyCode' | 'updatedAt'>\r\n )> }\r\n ) }\r\n & CustomerFragment\r\n )> };\r\n\r\nexport type CreateCustomerMutationVariables = Exact<{\r\n input: CreateCustomerInput;\r\n password?: Maybe<Scalars['String']>;\r\n}>;\r\n\r\n\r\nexport type CreateCustomerMutation = { createCustomer: (\r\n { __typename?: 'Customer' }\r\n & CustomerFragment\r\n ) | (\r\n { __typename?: 'EmailAddressConflictError' }\r\n & ErrorResult_EmailAddressConflictError_Fragment\r\n ) };\r\n\r\nexport type UpdateCustomerMutationVariables = Exact<{\r\n input: UpdateCustomerInput;\r\n}>;\r\n\r\n\r\nexport type UpdateCustomerMutation = { updateCustomer: (\r\n { __typename?: 'Customer' }\r\n & CustomerFragment\r\n ) | (\r\n { __typename?: 'EmailAddressConflictError' }\r\n & ErrorResult_EmailAddressConflictError_Fragment\r\n ) };\r\n\r\nexport type DeleteCustomerMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteCustomerMutation = { deleteCustomer: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n ) };\r\n\r\nexport type CreateCustomerAddressMutationVariables = Exact<{\r\n customerId: Scalars['ID'];\r\n input: CreateAddressInput;\r\n}>;\r\n\r\n\r\nexport type CreateCustomerAddressMutation = { createCustomerAddress: (\r\n { __typename?: 'Address' }\r\n & AddressFragment\r\n ) };\r\n\r\nexport type UpdateCustomerAddressMutationVariables = Exact<{\r\n input: UpdateAddressInput;\r\n}>;\r\n\r\n\r\nexport type UpdateCustomerAddressMutation = { updateCustomerAddress: (\r\n { __typename?: 'Address' }\r\n & AddressFragment\r\n ) };\r\n\r\nexport type DeleteCustomerAddressMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteCustomerAddressMutation = { deleteCustomerAddress: (\r\n { __typename?: 'Success' }\r\n & Pick<Success, 'success'>\r\n ) };\r\n\r\nexport type CreateCustomerGroupMutationVariables = Exact<{\r\n input: CreateCustomerGroupInput;\r\n}>;\r\n\r\n\r\nexport type CreateCustomerGroupMutation = { createCustomerGroup: (\r\n { __typename?: 'CustomerGroup' }\r\n & CustomerGroupFragment\r\n ) };\r\n\r\nexport type UpdateCustomerGroupMutationVariables = Exact<{\r\n input: UpdateCustomerGroupInput;\r\n}>;\r\n\r\n\r\nexport type UpdateCustomerGroupMutation = { updateCustomerGroup: (\r\n { __typename?: 'CustomerGroup' }\r\n & CustomerGroupFragment\r\n ) };\r\n\r\nexport type DeleteCustomerGroupMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteCustomerGroupMutation = { deleteCustomerGroup: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n ) };\r\n\r\nexport type GetCustomerGroupsQueryVariables = Exact<{\r\n options?: Maybe<CustomerGroupListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetCustomerGroupsQuery = { customerGroups: (\r\n { __typename?: 'CustomerGroupList' }\r\n & Pick<CustomerGroupList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'CustomerGroup' }\r\n & CustomerGroupFragment\r\n )> }\r\n ) };\r\n\r\nexport type GetCustomerGroupWithCustomersQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n options?: Maybe<CustomerListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetCustomerGroupWithCustomersQuery = { customerGroup?: Maybe<(\r\n { __typename?: 'CustomerGroup' }\r\n & { customers: (\r\n { __typename?: 'CustomerList' }\r\n & Pick<CustomerList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'Customer' }\r\n & Pick<Customer, 'id' | 'createdAt' | 'updatedAt' | 'emailAddress' | 'firstName' | 'lastName'>\r\n )> }\r\n ) }\r\n & CustomerGroupFragment\r\n )> };\r\n\r\nexport type AddCustomersToGroupMutationVariables = Exact<{\r\n groupId: Scalars['ID'];\r\n customerIds: Array<Scalars['ID']> | Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type AddCustomersToGroupMutation = { addCustomersToGroup: (\r\n { __typename?: 'CustomerGroup' }\r\n & CustomerGroupFragment\r\n ) };\r\n\r\nexport type RemoveCustomersFromGroupMutationVariables = Exact<{\r\n groupId: Scalars['ID'];\r\n customerIds: Array<Scalars['ID']> | Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type RemoveCustomersFromGroupMutation = { removeCustomersFromGroup: (\r\n { __typename?: 'CustomerGroup' }\r\n & CustomerGroupFragment\r\n ) };\r\n\r\nexport type GetCustomerHistoryQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n options?: Maybe<HistoryEntryListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetCustomerHistoryQuery = { customer?: Maybe<(\r\n { __typename?: 'Customer' }\r\n & Pick<Customer, 'id'>\r\n & { history: (\r\n { __typename?: 'HistoryEntryList' }\r\n & Pick<HistoryEntryList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'HistoryEntry' }\r\n & Pick<HistoryEntry, 'id' | 'type' | 'createdAt' | 'isPublic' | 'data'>\r\n & { administrator?: Maybe<(\r\n { __typename?: 'Administrator' }\r\n & Pick<Administrator, 'id' | 'firstName' | 'lastName'>\r\n )> }\r\n )> }\r\n ) }\r\n )> };\r\n\r\nexport type AddNoteToCustomerMutationVariables = Exact<{\r\n input: AddNoteToCustomerInput;\r\n}>;\r\n\r\n\r\nexport type AddNoteToCustomerMutation = { addNoteToCustomer: (\r\n { __typename?: 'Customer' }\r\n & Pick<Customer, 'id'>\r\n ) };\r\n\r\nexport type UpdateCustomerNoteMutationVariables = Exact<{\r\n input: UpdateCustomerNoteInput;\r\n}>;\r\n\r\n\r\nexport type UpdateCustomerNoteMutation = { updateCustomerNote: (\r\n { __typename?: 'HistoryEntry' }\r\n & Pick<HistoryEntry, 'id' | 'data' | 'isPublic'>\r\n ) };\r\n\r\nexport type DeleteCustomerNoteMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteCustomerNoteMutation = { deleteCustomerNote: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n ) };\r\n\r\nexport type FacetValueFragment = (\r\n { __typename?: 'FacetValue' }\r\n & Pick<FacetValue, 'id' | 'createdAt' | 'updatedAt' | 'languageCode' | 'code' | 'name'>\r\n & { translations: Array<(\r\n { __typename?: 'FacetValueTranslation' }\r\n & Pick<FacetValueTranslation, 'id' | 'languageCode' | 'name'>\r\n )>, facet: (\r\n { __typename?: 'Facet' }\r\n & Pick<Facet, 'id' | 'createdAt' | 'updatedAt' | 'name'>\r\n ) }\r\n);\r\n\r\nexport type FacetWithValuesFragment = (\r\n { __typename?: 'Facet' }\r\n & Pick<Facet, 'id' | 'createdAt' | 'updatedAt' | 'languageCode' | 'isPrivate' | 'code' | 'name'>\r\n & { translations: Array<(\r\n { __typename?: 'FacetTranslation' }\r\n & Pick<FacetTranslation, 'id' | 'languageCode' | 'name'>\r\n )>, values: Array<(\r\n { __typename?: 'FacetValue' }\r\n & FacetValueFragment\r\n )> }\r\n);\r\n\r\nexport type CreateFacetMutationVariables = Exact<{\r\n input: CreateFacetInput;\r\n}>;\r\n\r\n\r\nexport type CreateFacetMutation = { createFacet: (\r\n { __typename?: 'Facet' }\r\n & FacetWithValuesFragment\r\n ) };\r\n\r\nexport type UpdateFacetMutationVariables = Exact<{\r\n input: UpdateFacetInput;\r\n}>;\r\n\r\n\r\nexport type UpdateFacetMutation = { updateFacet: (\r\n { __typename?: 'Facet' }\r\n & FacetWithValuesFragment\r\n ) };\r\n\r\nexport type DeleteFacetMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n force?: Maybe<Scalars['Boolean']>;\r\n}>;\r\n\r\n\r\nexport type DeleteFacetMutation = { deleteFacet: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n ) };\r\n\r\nexport type DeleteFacetsMutationVariables = Exact<{\r\n ids: Array<Scalars['ID']> | Scalars['ID'];\r\n force?: Maybe<Scalars['Boolean']>;\r\n}>;\r\n\r\n\r\nexport type DeleteFacetsMutation = { deleteFacets: Array<(\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n )> };\r\n\r\nexport type CreateFacetValuesMutationVariables = Exact<{\r\n input: Array<CreateFacetValueInput> | CreateFacetValueInput;\r\n}>;\r\n\r\n\r\nexport type CreateFacetValuesMutation = { createFacetValues: Array<(\r\n { __typename?: 'FacetValue' }\r\n & FacetValueFragment\r\n )> };\r\n\r\nexport type UpdateFacetValuesMutationVariables = Exact<{\r\n input: Array<UpdateFacetValueInput> | UpdateFacetValueInput;\r\n}>;\r\n\r\n\r\nexport type UpdateFacetValuesMutation = { updateFacetValues: Array<(\r\n { __typename?: 'FacetValue' }\r\n & FacetValueFragment\r\n )> };\r\n\r\nexport type DeleteFacetValuesMutationVariables = Exact<{\r\n ids: Array<Scalars['ID']> | Scalars['ID'];\r\n force?: Maybe<Scalars['Boolean']>;\r\n}>;\r\n\r\n\r\nexport type DeleteFacetValuesMutation = { deleteFacetValues: Array<(\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n )> };\r\n\r\nexport type GetFacetListQueryVariables = Exact<{\r\n options?: Maybe<FacetListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetFacetListQuery = { facets: (\r\n { __typename?: 'FacetList' }\r\n & Pick<FacetList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'Facet' }\r\n & FacetWithValuesFragment\r\n )> }\r\n ) };\r\n\r\nexport type GetFacetWithValuesQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetFacetWithValuesQuery = { facet?: Maybe<(\r\n { __typename?: 'Facet' }\r\n & FacetWithValuesFragment\r\n )> };\r\n\r\nexport type AssignFacetsToChannelMutationVariables = Exact<{\r\n input: AssignFacetsToChannelInput;\r\n}>;\r\n\r\n\r\nexport type AssignFacetsToChannelMutation = { assignFacetsToChannel: Array<(\r\n { __typename?: 'Facet' }\r\n & Pick<Facet, 'id'>\r\n )> };\r\n\r\nexport type RemoveFacetsFromChannelMutationVariables = Exact<{\r\n input: RemoveFacetsFromChannelInput;\r\n}>;\r\n\r\n\r\nexport type RemoveFacetsFromChannelMutation = { removeFacetsFromChannel: Array<(\r\n { __typename?: 'Facet' }\r\n & Pick<Facet, 'id'>\r\n ) | (\r\n { __typename?: 'FacetInUseError' }\r\n & Pick<FacetInUseError, 'errorCode' | 'message' | 'variantCount' | 'productCount'>\r\n )> };\r\n\r\nexport type DiscountFragment = (\r\n { __typename?: 'Discount' }\r\n & Pick<Discount, 'adjustmentSource' | 'amount' | 'amountWithTax' | 'description' | 'type'>\r\n);\r\n\r\nexport type PaymentFragment = (\r\n { __typename?: 'Payment' }\r\n & Pick<Payment, 'id' | 'transactionId' | 'amount' | 'method' | 'state' | 'metadata'>\r\n);\r\n\r\nexport type RefundFragment = (\r\n { __typename?: 'Refund' }\r\n & Pick<Refund, 'id' | 'state' | 'items' | 'shipping' | 'adjustment' | 'transactionId' | 'paymentId'>\r\n);\r\n\r\nexport type OrderAddressFragment = (\r\n { __typename?: 'OrderAddress' }\r\n & Pick<OrderAddress, 'fullName' | 'company' | 'streetLine1' | 'streetLine2' | 'city' | 'province' | 'postalCode' | 'country' | 'countryCode' | 'phoneNumber'>\r\n);\r\n\r\nexport type OrderFragment = (\r\n { __typename?: 'Order' }\r\n & Pick<Order, 'id' | 'createdAt' | 'updatedAt' | 'orderPlacedAt' | 'code' | 'state' | 'nextStates' | 'total' | 'totalWithTax' | 'currencyCode'>\r\n & { customer?: Maybe<(\r\n { __typename?: 'Customer' }\r\n & Pick<Customer, 'id' | 'firstName' | 'lastName'>\r\n )>, shippingLines: Array<(\r\n { __typename?: 'ShippingLine' }\r\n & { shippingMethod: (\r\n { __typename?: 'ShippingMethod' }\r\n & Pick<ShippingMethod, 'name'>\r\n ) }\r\n )> }\r\n);\r\n\r\nexport type FulfillmentFragment = (\r\n { __typename?: 'Fulfillment' }\r\n & Pick<Fulfillment, 'id' | 'state' | 'nextStates' | 'createdAt' | 'updatedAt' | 'method' | 'trackingCode'>\r\n & { summary: Array<(\r\n { __typename?: 'FulfillmentLineSummary' }\r\n & Pick<FulfillmentLineSummary, 'quantity'>\r\n & { orderLine: (\r\n { __typename?: 'OrderLine' }\r\n & Pick<OrderLine, 'id'>\r\n ) }\r\n )> }\r\n);\r\n\r\nexport type OrderLineFragment = (\r\n { __typename?: 'OrderLine' }\r\n & Pick<OrderLine, 'id' | 'unitPrice' | 'unitPriceWithTax' | 'proratedUnitPrice' | 'proratedUnitPriceWithTax' | 'quantity' | 'linePrice' | 'lineTax' | 'linePriceWithTax' | 'discountedLinePrice' | 'discountedLinePriceWithTax'>\r\n & { featuredAsset?: Maybe<(\r\n { __typename?: 'Asset' }\r\n & Pick<Asset, 'preview'>\r\n )>, productVariant: (\r\n { __typename?: 'ProductVariant' }\r\n & Pick<ProductVariant, 'id' | 'name' | 'sku' | 'trackInventory' | 'stockOnHand'>\r\n ), discounts: Array<(\r\n { __typename?: 'Discount' }\r\n & DiscountFragment\r\n )>, fulfillments?: Maybe<Array<(\r\n { __typename?: 'Fulfillment' }\r\n & FulfillmentFragment\r\n )>>, items: Array<(\r\n { __typename?: 'OrderItem' }\r\n & Pick<OrderItem, 'id' | 'refundId' | 'cancelled'>\r\n )> }\r\n);\r\n\r\nexport type OrderDetailFragment = (\r\n { __typename?: 'Order' }\r\n & Pick<Order, 'id' | 'createdAt' | 'updatedAt' | 'code' | 'state' | 'nextStates' | 'active' | 'couponCodes' | 'subTotal' | 'subTotalWithTax' | 'total' | 'totalWithTax' | 'currencyCode' | 'shipping' | 'shippingWithTax'>\r\n & { customer?: Maybe<(\r\n { __typename?: 'Customer' }\r\n & Pick<Customer, 'id' | 'firstName' | 'lastName'>\r\n )>, lines: Array<(\r\n { __typename?: 'OrderLine' }\r\n & OrderLineFragment\r\n )>, surcharges: Array<(\r\n { __typename?: 'Surcharge' }\r\n & Pick<Surcharge, 'id' | 'sku' | 'description' | 'price' | 'priceWithTax' | 'taxRate'>\r\n )>, discounts: Array<(\r\n { __typename?: 'Discount' }\r\n & DiscountFragment\r\n )>, promotions: Array<(\r\n { __typename?: 'Promotion' }\r\n & Pick<Promotion, 'id' | 'couponCode'>\r\n )>, shippingLines: Array<(\r\n { __typename?: 'ShippingLine' }\r\n & { shippingMethod: (\r\n { __typename?: 'ShippingMethod' }\r\n & Pick<ShippingMethod, 'id' | 'code' | 'name' | 'fulfillmentHandlerCode' | 'description'>\r\n ) }\r\n )>, taxSummary: Array<(\r\n { __typename?: 'OrderTaxSummary' }\r\n & Pick<OrderTaxSummary, 'description' | 'taxBase' | 'taxRate' | 'taxTotal'>\r\n )>, shippingAddress?: Maybe<(\r\n { __typename?: 'OrderAddress' }\r\n & OrderAddressFragment\r\n )>, billingAddress?: Maybe<(\r\n { __typename?: 'OrderAddress' }\r\n & OrderAddressFragment\r\n )>, payments?: Maybe<Array<(\r\n { __typename?: 'Payment' }\r\n & Pick<Payment, 'id' | 'createdAt' | 'transactionId' | 'amount' | 'method' | 'state' | 'nextStates' | 'errorMessage' | 'metadata'>\r\n & { refunds: Array<(\r\n { __typename?: 'Refund' }\r\n & Pick<Refund, 'id' | 'createdAt' | 'state' | 'items' | 'adjustment' | 'total' | 'paymentId' | 'reason' | 'transactionId' | 'method' | 'metadata'>\r\n & { orderItems: Array<(\r\n { __typename?: 'OrderItem' }\r\n & Pick<OrderItem, 'id'>\r\n )> }\r\n )> }\r\n )>>, fulfillments?: Maybe<Array<(\r\n { __typename?: 'Fulfillment' }\r\n & FulfillmentFragment\r\n )>>, modifications: Array<(\r\n { __typename?: 'OrderModification' }\r\n & Pick<OrderModification, 'id' | 'createdAt' | 'isSettled' | 'priceChange' | 'note'>\r\n & { payment?: Maybe<(\r\n { __typename?: 'Payment' }\r\n & Pick<Payment, 'id' | 'amount'>\r\n )>, orderItems?: Maybe<Array<(\r\n { __typename?: 'OrderItem' }\r\n & Pick<OrderItem, 'id'>\r\n )>>, refund?: Maybe<(\r\n { __typename?: 'Refund' }\r\n & Pick<Refund, 'id' | 'paymentId' | 'total'>\r\n )>, surcharges?: Maybe<Array<(\r\n { __typename?: 'Surcharge' }\r\n & Pick<Surcharge, 'id'>\r\n )>> }\r\n )> }\r\n);\r\n\r\nexport type GetOrderListQueryVariables = Exact<{\r\n options?: Maybe<OrderListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetOrderListQuery = { orders: (\r\n { __typename?: 'OrderList' }\r\n & Pick<OrderList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'Order' }\r\n & OrderFragment\r\n )> }\r\n ) };\r\n\r\nexport type GetOrderQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetOrderQuery = { order?: Maybe<(\r\n { __typename?: 'Order' }\r\n & OrderDetailFragment\r\n )> };\r\n\r\nexport type SettlePaymentMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type SettlePaymentMutation = { settlePayment: (\r\n { __typename?: 'Payment' }\r\n & PaymentFragment\r\n ) | (\r\n { __typename?: 'SettlePaymentError' }\r\n & Pick<SettlePaymentError, 'paymentErrorMessage'>\r\n & ErrorResult_SettlePaymentError_Fragment\r\n ) | (\r\n { __typename?: 'PaymentStateTransitionError' }\r\n & Pick<PaymentStateTransitionError, 'transitionError'>\r\n & ErrorResult_PaymentStateTransitionError_Fragment\r\n ) | (\r\n { __typename?: 'OrderStateTransitionError' }\r\n & Pick<OrderStateTransitionError, 'transitionError'>\r\n & ErrorResult_OrderStateTransitionError_Fragment\r\n ) };\r\n\r\nexport type CancelPaymentMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type CancelPaymentMutation = { cancelPayment: (\r\n { __typename?: 'Payment' }\r\n & PaymentFragment\r\n ) | (\r\n { __typename?: 'CancelPaymentError' }\r\n & Pick<CancelPaymentError, 'paymentErrorMessage'>\r\n & ErrorResult_CancelPaymentError_Fragment\r\n ) | (\r\n { __typename?: 'PaymentStateTransitionError' }\r\n & Pick<PaymentStateTransitionError, 'transitionError'>\r\n & ErrorResult_PaymentStateTransitionError_Fragment\r\n ) };\r\n\r\nexport type TransitionPaymentToStateMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n state: Scalars['String'];\r\n}>;\r\n\r\n\r\nexport type TransitionPaymentToStateMutation = { transitionPaymentToState: (\r\n { __typename?: 'Payment' }\r\n & PaymentFragment\r\n ) | (\r\n { __typename?: 'PaymentStateTransitionError' }\r\n & Pick<PaymentStateTransitionError, 'transitionError'>\r\n & ErrorResult_PaymentStateTransitionError_Fragment\r\n ) };\r\n\r\nexport type CreateFulfillmentMutationVariables = Exact<{\r\n input: FulfillOrderInput;\r\n}>;\r\n\r\n\r\nexport type CreateFulfillmentMutation = { addFulfillmentToOrder: (\r\n { __typename?: 'Fulfillment' }\r\n & FulfillmentFragment\r\n ) | (\r\n { __typename?: 'EmptyOrderLineSelectionError' }\r\n & ErrorResult_EmptyOrderLineSelectionError_Fragment\r\n ) | (\r\n { __typename?: 'ItemsAlreadyFulfilledError' }\r\n & ErrorResult_ItemsAlreadyFulfilledError_Fragment\r\n ) | (\r\n { __typename?: 'InsufficientStockOnHandError' }\r\n & ErrorResult_InsufficientStockOnHandError_Fragment\r\n ) | (\r\n { __typename?: 'InvalidFulfillmentHandlerError' }\r\n & ErrorResult_InvalidFulfillmentHandlerError_Fragment\r\n ) | (\r\n { __typename?: 'FulfillmentStateTransitionError' }\r\n & Pick<FulfillmentStateTransitionError, 'errorCode' | 'message' | 'transitionError'>\r\n & ErrorResult_FulfillmentStateTransitionError_Fragment\r\n ) | (\r\n { __typename?: 'CreateFulfillmentError' }\r\n & Pick<CreateFulfillmentError, 'errorCode' | 'message' | 'fulfillmentHandlerError'>\r\n & ErrorResult_CreateFulfillmentError_Fragment\r\n ) };\r\n\r\nexport type CancelOrderMutationVariables = Exact<{\r\n input: CancelOrderInput;\r\n}>;\r\n\r\n\r\nexport type CancelOrderMutation = { cancelOrder: (\r\n { __typename?: 'Order' }\r\n & OrderDetailFragment\r\n ) | (\r\n { __typename?: 'EmptyOrderLineSelectionError' }\r\n & ErrorResult_EmptyOrderLineSelectionError_Fragment\r\n ) | (\r\n { __typename?: 'QuantityTooGreatError' }\r\n & ErrorResult_QuantityTooGreatError_Fragment\r\n ) | (\r\n { __typename?: 'MultipleOrderError' }\r\n & ErrorResult_MultipleOrderError_Fragment\r\n ) | (\r\n { __typename?: 'CancelActiveOrderError' }\r\n & ErrorResult_CancelActiveOrderError_Fragment\r\n ) | (\r\n { __typename?: 'OrderStateTransitionError' }\r\n & ErrorResult_OrderStateTransitionError_Fragment\r\n ) };\r\n\r\nexport type RefundOrderMutationVariables = Exact<{\r\n input: RefundOrderInput;\r\n}>;\r\n\r\n\r\nexport type RefundOrderMutation = { refundOrder: (\r\n { __typename?: 'Refund' }\r\n & RefundFragment\r\n ) | (\r\n { __typename?: 'QuantityTooGreatError' }\r\n & ErrorResult_QuantityTooGreatError_Fragment\r\n ) | (\r\n { __typename?: 'NothingToRefundError' }\r\n & ErrorResult_NothingToRefundError_Fragment\r\n ) | (\r\n { __typename?: 'OrderStateTransitionError' }\r\n & ErrorResult_OrderStateTransitionError_Fragment\r\n ) | (\r\n { __typename?: 'MultipleOrderError' }\r\n & ErrorResult_MultipleOrderError_Fragment\r\n ) | (\r\n { __typename?: 'PaymentOrderMismatchError' }\r\n & ErrorResult_PaymentOrderMismatchError_Fragment\r\n ) | (\r\n { __typename?: 'RefundOrderStateError' }\r\n & ErrorResult_RefundOrderStateError_Fragment\r\n ) | (\r\n { __typename?: 'AlreadyRefundedError' }\r\n & ErrorResult_AlreadyRefundedError_Fragment\r\n ) | (\r\n { __typename?: 'RefundStateTransitionError' }\r\n & ErrorResult_RefundStateTransitionError_Fragment\r\n ) };\r\n\r\nexport type SettleRefundMutationVariables = Exact<{\r\n input: SettleRefundInput;\r\n}>;\r\n\r\n\r\nexport type SettleRefundMutation = { settleRefund: (\r\n { __typename?: 'Refund' }\r\n & RefundFragment\r\n ) | (\r\n { __typename?: 'RefundStateTransitionError' }\r\n & ErrorResult_RefundStateTransitionError_Fragment\r\n ) };\r\n\r\nexport type GetOrderHistoryQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n options?: Maybe<HistoryEntryListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetOrderHistoryQuery = { order?: Maybe<(\r\n { __typename?: 'Order' }\r\n & Pick<Order, 'id'>\r\n & { history: (\r\n { __typename?: 'HistoryEntryList' }\r\n & Pick<HistoryEntryList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'HistoryEntry' }\r\n & Pick<HistoryEntry, 'id' | 'type' | 'createdAt' | 'isPublic' | 'data'>\r\n & { administrator?: Maybe<(\r\n { __typename?: 'Administrator' }\r\n & Pick<Administrator, 'id' | 'firstName' | 'lastName'>\r\n )> }\r\n )> }\r\n ) }\r\n )> };\r\n\r\nexport type AddNoteToOrderMutationVariables = Exact<{\r\n input: AddNoteToOrderInput;\r\n}>;\r\n\r\n\r\nexport type AddNoteToOrderMutation = { addNoteToOrder: (\r\n { __typename?: 'Order' }\r\n & Pick<Order, 'id'>\r\n ) };\r\n\r\nexport type UpdateOrderNoteMutationVariables = Exact<{\r\n input: UpdateOrderNoteInput;\r\n}>;\r\n\r\n\r\nexport type UpdateOrderNoteMutation = { updateOrderNote: (\r\n { __typename?: 'HistoryEntry' }\r\n & Pick<HistoryEntry, 'id' | 'data' | 'isPublic'>\r\n ) };\r\n\r\nexport type DeleteOrderNoteMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteOrderNoteMutation = { deleteOrderNote: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n ) };\r\n\r\nexport type TransitionOrderToStateMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n state: Scalars['String'];\r\n}>;\r\n\r\n\r\nexport type TransitionOrderToStateMutation = { transitionOrderToState?: Maybe<(\r\n { __typename?: 'Order' }\r\n & OrderFragment\r\n ) | (\r\n { __typename?: 'OrderStateTransitionError' }\r\n & Pick<OrderStateTransitionError, 'transitionError'>\r\n & ErrorResult_OrderStateTransitionError_Fragment\r\n )> };\r\n\r\nexport type UpdateOrderCustomFieldsMutationVariables = Exact<{\r\n input: UpdateOrderInput;\r\n}>;\r\n\r\n\r\nexport type UpdateOrderCustomFieldsMutation = { setOrderCustomFields?: Maybe<(\r\n { __typename?: 'Order' }\r\n & OrderFragment\r\n )> };\r\n\r\nexport type TransitionFulfillmentToStateMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n state: Scalars['String'];\r\n}>;\r\n\r\n\r\nexport type TransitionFulfillmentToStateMutation = { transitionFulfillmentToState: (\r\n { __typename?: 'Fulfillment' }\r\n & FulfillmentFragment\r\n ) | (\r\n { __typename?: 'FulfillmentStateTransitionError' }\r\n & Pick<FulfillmentStateTransitionError, 'transitionError'>\r\n & ErrorResult_FulfillmentStateTransitionError_Fragment\r\n ) };\r\n\r\nexport type GetOrderSummaryQueryVariables = Exact<{\r\n start: Scalars['DateTime'];\r\n end: Scalars['DateTime'];\r\n}>;\r\n\r\n\r\nexport type GetOrderSummaryQuery = { orders: (\r\n { __typename?: 'OrderList' }\r\n & Pick<OrderList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'Order' }\r\n & Pick<Order, 'id' | 'total' | 'currencyCode'>\r\n )> }\r\n ) };\r\n\r\nexport type ModifyOrderMutationVariables = Exact<{\r\n input: ModifyOrderInput;\r\n}>;\r\n\r\n\r\nexport type ModifyOrderMutation = { modifyOrder: (\r\n { __typename?: 'Order' }\r\n & OrderDetailFragment\r\n ) | (\r\n { __typename?: 'NoChangesSpecifiedError' }\r\n & ErrorResult_NoChangesSpecifiedError_Fragment\r\n ) | (\r\n { __typename?: 'OrderModificationStateError' }\r\n & ErrorResult_OrderModificationStateError_Fragment\r\n ) | (\r\n { __typename?: 'PaymentMethodMissingError' }\r\n & ErrorResult_PaymentMethodMissingError_Fragment\r\n ) | (\r\n { __typename?: 'RefundPaymentIdMissingError' }\r\n & ErrorResult_RefundPaymentIdMissingError_Fragment\r\n ) | (\r\n { __typename?: 'OrderLimitError' }\r\n & ErrorResult_OrderLimitError_Fragment\r\n ) | (\r\n { __typename?: 'NegativeQuantityError' }\r\n & ErrorResult_NegativeQuantityError_Fragment\r\n ) | (\r\n { __typename?: 'InsufficientStockError' }\r\n & ErrorResult_InsufficientStockError_Fragment\r\n ) | (\r\n { __typename?: 'CouponCodeExpiredError' }\r\n & ErrorResult_CouponCodeExpiredError_Fragment\r\n ) | (\r\n { __typename?: 'CouponCodeInvalidError' }\r\n & ErrorResult_CouponCodeInvalidError_Fragment\r\n ) | (\r\n { __typename?: 'CouponCodeLimitError' }\r\n & ErrorResult_CouponCodeLimitError_Fragment\r\n ) };\r\n\r\nexport type AddManualPaymentMutationVariables = Exact<{\r\n input: ManualPaymentInput;\r\n}>;\r\n\r\n\r\nexport type AddManualPaymentMutation = { addManualPaymentToOrder: (\r\n { __typename?: 'Order' }\r\n & OrderDetailFragment\r\n ) | (\r\n { __typename?: 'ManualPaymentStateError' }\r\n & ErrorResult_ManualPaymentStateError_Fragment\r\n ) };\r\n\r\nexport type CreateDraftOrderMutationVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type CreateDraftOrderMutation = { createDraftOrder: (\r\n { __typename?: 'Order' }\r\n & OrderDetailFragment\r\n ) };\r\n\r\nexport type DeleteDraftOrderMutationVariables = Exact<{\r\n orderId: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteDraftOrderMutation = { deleteDraftOrder: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n ) };\r\n\r\nexport type AddItemToDraftOrderMutationVariables = Exact<{\r\n orderId: Scalars['ID'];\r\n input: AddItemToDraftOrderInput;\r\n}>;\r\n\r\n\r\nexport type AddItemToDraftOrderMutation = { addItemToDraftOrder: (\r\n { __typename?: 'Order' }\r\n & OrderDetailFragment\r\n ) | (\r\n { __typename?: 'OrderModificationError' }\r\n & ErrorResult_OrderModificationError_Fragment\r\n ) | (\r\n { __typename?: 'OrderLimitError' }\r\n & ErrorResult_OrderLimitError_Fragment\r\n ) | (\r\n { __typename?: 'NegativeQuantityError' }\r\n & ErrorResult_NegativeQuantityError_Fragment\r\n ) | (\r\n { __typename?: 'InsufficientStockError' }\r\n & ErrorResult_InsufficientStockError_Fragment\r\n ) };\r\n\r\nexport type AdjustDraftOrderLineMutationVariables = Exact<{\r\n orderId: Scalars['ID'];\r\n input: AdjustDraftOrderLineInput;\r\n}>;\r\n\r\n\r\nexport type AdjustDraftOrderLineMutation = { adjustDraftOrderLine: (\r\n { __typename?: 'Order' }\r\n & OrderDetailFragment\r\n ) | (\r\n { __typename?: 'OrderModificationError' }\r\n & ErrorResult_OrderModificationError_Fragment\r\n ) | (\r\n { __typename?: 'OrderLimitError' }\r\n & ErrorResult_OrderLimitError_Fragment\r\n ) | (\r\n { __typename?: 'NegativeQuantityError' }\r\n & ErrorResult_NegativeQuantityError_Fragment\r\n ) | (\r\n { __typename?: 'InsufficientStockError' }\r\n & ErrorResult_InsufficientStockError_Fragment\r\n ) };\r\n\r\nexport type RemoveDraftOrderLineMutationVariables = Exact<{\r\n orderId: Scalars['ID'];\r\n orderLineId: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type RemoveDraftOrderLineMutation = { removeDraftOrderLine: (\r\n { __typename?: 'Order' }\r\n & OrderDetailFragment\r\n ) | (\r\n { __typename?: 'OrderModificationError' }\r\n & ErrorResult_OrderModificationError_Fragment\r\n ) };\r\n\r\nexport type SetCustomerForDraftOrderMutationVariables = Exact<{\r\n orderId: Scalars['ID'];\r\n customerId?: Maybe<Scalars['ID']>;\r\n input?: Maybe<CreateCustomerInput>;\r\n}>;\r\n\r\n\r\nexport type SetCustomerForDraftOrderMutation = { setCustomerForDraftOrder: (\r\n { __typename?: 'Order' }\r\n & OrderDetailFragment\r\n ) | (\r\n { __typename?: 'EmailAddressConflictError' }\r\n & ErrorResult_EmailAddressConflictError_Fragment\r\n ) };\r\n\r\nexport type SetDraftOrderShippingAddressMutationVariables = Exact<{\r\n orderId: Scalars['ID'];\r\n input: CreateAddressInput;\r\n}>;\r\n\r\n\r\nexport type SetDraftOrderShippingAddressMutation = { setDraftOrderShippingAddress: (\r\n { __typename?: 'Order' }\r\n & OrderDetailFragment\r\n ) };\r\n\r\nexport type SetDraftOrderBillingAddressMutationVariables = Exact<{\r\n orderId: Scalars['ID'];\r\n input: CreateAddressInput;\r\n}>;\r\n\r\n\r\nexport type SetDraftOrderBillingAddressMutation = { setDraftOrderBillingAddress: (\r\n { __typename?: 'Order' }\r\n & OrderDetailFragment\r\n ) };\r\n\r\nexport type ApplyCouponCodeToDraftOrderMutationVariables = Exact<{\r\n orderId: Scalars['ID'];\r\n couponCode: Scalars['String'];\r\n}>;\r\n\r\n\r\nexport type ApplyCouponCodeToDraftOrderMutation = { applyCouponCodeToDraftOrder: (\r\n { __typename?: 'Order' }\r\n & OrderDetailFragment\r\n ) | (\r\n { __typename?: 'CouponCodeExpiredError' }\r\n & ErrorResult_CouponCodeExpiredError_Fragment\r\n ) | (\r\n { __typename?: 'CouponCodeInvalidError' }\r\n & ErrorResult_CouponCodeInvalidError_Fragment\r\n ) | (\r\n { __typename?: 'CouponCodeLimitError' }\r\n & ErrorResult_CouponCodeLimitError_Fragment\r\n ) };\r\n\r\nexport type RemoveCouponCodeFromDraftOrderMutationVariables = Exact<{\r\n orderId: Scalars['ID'];\r\n couponCode: Scalars['String'];\r\n}>;\r\n\r\n\r\nexport type RemoveCouponCodeFromDraftOrderMutation = { removeCouponCodeFromDraftOrder?: Maybe<(\r\n { __typename?: 'Order' }\r\n & OrderDetailFragment\r\n )> };\r\n\r\nexport type DraftOrderEligibleShippingMethodsQueryVariables = Exact<{\r\n orderId: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DraftOrderEligibleShippingMethodsQuery = { eligibleShippingMethodsForDraftOrder: Array<(\r\n { __typename?: 'ShippingMethodQuote' }\r\n & Pick<ShippingMethodQuote, 'id' | 'name' | 'code' | 'description' | 'price' | 'priceWithTax' | 'metadata'>\r\n )> };\r\n\r\nexport type SetDraftOrderShippingMethodMutationVariables = Exact<{\r\n orderId: Scalars['ID'];\r\n shippingMethodId: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type SetDraftOrderShippingMethodMutation = { setDraftOrderShippingMethod: (\r\n { __typename?: 'Order' }\r\n & OrderDetailFragment\r\n ) | (\r\n { __typename?: 'OrderModificationError' }\r\n & ErrorResult_OrderModificationError_Fragment\r\n ) | (\r\n { __typename?: 'IneligibleShippingMethodError' }\r\n & ErrorResult_IneligibleShippingMethodError_Fragment\r\n ) | (\r\n { __typename?: 'NoActiveOrderError' }\r\n & ErrorResult_NoActiveOrderError_Fragment\r\n ) };\r\n\r\nexport type AssetFragment = (\r\n { __typename?: 'Asset' }\r\n & Pick<Asset, 'id' | 'createdAt' | 'updatedAt' | 'name' | 'fileSize' | 'mimeType' | 'type' | 'preview' | 'source' | 'width' | 'height'>\r\n & { focalPoint?: Maybe<(\r\n { __typename?: 'Coordinate' }\r\n & Pick<Coordinate, 'x' | 'y'>\r\n )> }\r\n);\r\n\r\nexport type TagFragment = (\r\n { __typename?: 'Tag' }\r\n & Pick<Tag, 'id' | 'value'>\r\n);\r\n\r\nexport type ProductOptionGroupFragment = (\r\n { __typename?: 'ProductOptionGroup' }\r\n & Pick<ProductOptionGroup, 'id' | 'createdAt' | 'updatedAt' | 'code' | 'languageCode' | 'name'>\r\n & { translations: Array<(\r\n { __typename?: 'ProductOptionGroupTranslation' }\r\n & Pick<ProductOptionGroupTranslation, 'id' | 'languageCode' | 'name'>\r\n )> }\r\n);\r\n\r\nexport type ProductOptionFragment = (\r\n { __typename?: 'ProductOption' }\r\n & Pick<ProductOption, 'id' | 'createdAt' | 'updatedAt' | 'code' | 'languageCode' | 'name' | 'groupId'>\r\n & { translations: Array<(\r\n { __typename?: 'ProductOptionTranslation' }\r\n & Pick<ProductOptionTranslation, 'id' | 'languageCode' | 'name'>\r\n )> }\r\n);\r\n\r\nexport type ProductVariantFragment = (\r\n { __typename?: 'ProductVariant' }\r\n & Pick<ProductVariant, 'id' | 'createdAt' | 'updatedAt' | 'enabled' | 'languageCode' | 'name' | 'price' | 'currencyCode' | 'priceWithTax' | 'stockOnHand' | 'stockAllocated' | 'trackInventory' | 'outOfStockThreshold' | 'useGlobalOutOfStockThreshold' | 'sku'>\r\n & { taxRateApplied: (\r\n { __typename?: 'TaxRate' }\r\n & Pick<TaxRate, 'id' | 'name' | 'value'>\r\n ), taxCategory: (\r\n { __typename?: 'TaxCategory' }\r\n & Pick<TaxCategory, 'id' | 'name'>\r\n ), options: Array<(\r\n { __typename?: 'ProductOption' }\r\n & ProductOptionFragment\r\n )>, facetValues: Array<(\r\n { __typename?: 'FacetValue' }\r\n & Pick<FacetValue, 'id' | 'code' | 'name'>\r\n & { facet: (\r\n { __typename?: 'Facet' }\r\n & Pick<Facet, 'id' | 'name'>\r\n ) }\r\n )>, featuredAsset?: Maybe<(\r\n { __typename?: 'Asset' }\r\n & AssetFragment\r\n )>, assets: Array<(\r\n { __typename?: 'Asset' }\r\n & AssetFragment\r\n )>, translations: Array<(\r\n { __typename?: 'ProductVariantTranslation' }\r\n & Pick<ProductVariantTranslation, 'id' | 'languageCode' | 'name'>\r\n )>, channels: Array<(\r\n { __typename?: 'Channel' }\r\n & Pick<Channel, 'id' | 'code'>\r\n )> }\r\n);\r\n\r\nexport type ProductDetailFragment = (\r\n { __typename?: 'Product' }\r\n & Pick<Product, 'id' | 'createdAt' | 'updatedAt' | 'enabled' | 'languageCode' | 'name' | 'slug' | 'description'>\r\n & { featuredAsset?: Maybe<(\r\n { __typename?: 'Asset' }\r\n & AssetFragment\r\n )>, assets: Array<(\r\n { __typename?: 'Asset' }\r\n & AssetFragment\r\n )>, translations: Array<(\r\n { __typename?: 'ProductTranslation' }\r\n & Pick<ProductTranslation, 'id' | 'languageCode' | 'name' | 'slug' | 'description'>\r\n )>, optionGroups: Array<(\r\n { __typename?: 'ProductOptionGroup' }\r\n & ProductOptionGroupFragment\r\n )>, facetValues: Array<(\r\n { __typename?: 'FacetValue' }\r\n & Pick<FacetValue, 'id' | 'code' | 'name'>\r\n & { facet: (\r\n { __typename?: 'Facet' }\r\n & Pick<Facet, 'id' | 'name'>\r\n ) }\r\n )>, channels: Array<(\r\n { __typename?: 'Channel' }\r\n & Pick<Channel, 'id' | 'code'>\r\n )> }\r\n);\r\n\r\nexport type ProductOptionGroupWithOptionsFragment = (\r\n { __typename?: 'ProductOptionGroup' }\r\n & Pick<ProductOptionGroup, 'id' | 'createdAt' | 'updatedAt' | 'languageCode' | 'code' | 'name'>\r\n & { translations: Array<(\r\n { __typename?: 'ProductOptionGroupTranslation' }\r\n & Pick<ProductOptionGroupTranslation, 'id' | 'name'>\r\n )>, options: Array<(\r\n { __typename?: 'ProductOption' }\r\n & Pick<ProductOption, 'id' | 'languageCode' | 'name' | 'code'>\r\n & { translations: Array<(\r\n { __typename?: 'ProductOptionTranslation' }\r\n & Pick<ProductOptionTranslation, 'name'>\r\n )> }\r\n )> }\r\n);\r\n\r\nexport type UpdateProductMutationVariables = Exact<{\r\n input: UpdateProductInput;\r\n variantListOptions?: Maybe<ProductVariantListOptions>;\r\n}>;\r\n\r\n\r\nexport type UpdateProductMutation = { updateProduct: (\r\n { __typename?: 'Product' }\r\n & { variantList: (\r\n { __typename?: 'ProductVariantList' }\r\n & Pick<ProductVariantList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'ProductVariant' }\r\n & ProductVariantFragment\r\n )> }\r\n ) }\r\n & ProductDetailFragment\r\n ) };\r\n\r\nexport type CreateProductMutationVariables = Exact<{\r\n input: CreateProductInput;\r\n variantListOptions?: Maybe<ProductVariantListOptions>;\r\n}>;\r\n\r\n\r\nexport type CreateProductMutation = { createProduct: (\r\n { __typename?: 'Product' }\r\n & { variantList: (\r\n { __typename?: 'ProductVariantList' }\r\n & Pick<ProductVariantList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'ProductVariant' }\r\n & ProductVariantFragment\r\n )> }\r\n ) }\r\n & ProductDetailFragment\r\n ) };\r\n\r\nexport type DeleteProductMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteProductMutation = { deleteProduct: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n ) };\r\n\r\nexport type DeleteProductsMutationVariables = Exact<{\r\n ids: Array<Scalars['ID']> | Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteProductsMutation = { deleteProducts: Array<(\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n )> };\r\n\r\nexport type CreateProductVariantsMutationVariables = Exact<{\r\n input: Array<CreateProductVariantInput> | CreateProductVariantInput;\r\n}>;\r\n\r\n\r\nexport type CreateProductVariantsMutation = { createProductVariants: Array<Maybe<(\r\n { __typename?: 'ProductVariant' }\r\n & ProductVariantFragment\r\n )>> };\r\n\r\nexport type UpdateProductVariantsMutationVariables = Exact<{\r\n input: Array<UpdateProductVariantInput> | UpdateProductVariantInput;\r\n}>;\r\n\r\n\r\nexport type UpdateProductVariantsMutation = { updateProductVariants: Array<Maybe<(\r\n { __typename?: 'ProductVariant' }\r\n & ProductVariantFragment\r\n )>> };\r\n\r\nexport type CreateProductOptionGroupMutationVariables = Exact<{\r\n input: CreateProductOptionGroupInput;\r\n}>;\r\n\r\n\r\nexport type CreateProductOptionGroupMutation = { createProductOptionGroup: (\r\n { __typename?: 'ProductOptionGroup' }\r\n & ProductOptionGroupWithOptionsFragment\r\n ) };\r\n\r\nexport type GetProductOptionGroupQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetProductOptionGroupQuery = { productOptionGroup?: Maybe<(\r\n { __typename?: 'ProductOptionGroup' }\r\n & ProductOptionGroupWithOptionsFragment\r\n )> };\r\n\r\nexport type AddOptionToGroupMutationVariables = Exact<{\r\n input: CreateProductOptionInput;\r\n}>;\r\n\r\n\r\nexport type AddOptionToGroupMutation = { createProductOption: (\r\n { __typename?: 'ProductOption' }\r\n & Pick<ProductOption, 'id' | 'createdAt' | 'updatedAt' | 'name' | 'code' | 'groupId'>\r\n ) };\r\n\r\nexport type AddOptionGroupToProductMutationVariables = Exact<{\r\n productId: Scalars['ID'];\r\n optionGroupId: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type AddOptionGroupToProductMutation = { addOptionGroupToProduct: (\r\n { __typename?: 'Product' }\r\n & Pick<Product, 'id' | 'createdAt' | 'updatedAt'>\r\n & { optionGroups: Array<(\r\n { __typename?: 'ProductOptionGroup' }\r\n & Pick<ProductOptionGroup, 'id' | 'createdAt' | 'updatedAt' | 'code'>\r\n & { options: Array<(\r\n { __typename?: 'ProductOption' }\r\n & Pick<ProductOption, 'id' | 'createdAt' | 'updatedAt' | 'code'>\r\n )> }\r\n )> }\r\n ) };\r\n\r\nexport type RemoveOptionGroupFromProductMutationVariables = Exact<{\r\n productId: Scalars['ID'];\r\n optionGroupId: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type RemoveOptionGroupFromProductMutation = { removeOptionGroupFromProduct: (\r\n { __typename?: 'Product' }\r\n & Pick<Product, 'id' | 'createdAt' | 'updatedAt'>\r\n & { optionGroups: Array<(\r\n { __typename?: 'ProductOptionGroup' }\r\n & Pick<ProductOptionGroup, 'id' | 'createdAt' | 'updatedAt' | 'code'>\r\n & { options: Array<(\r\n { __typename?: 'ProductOption' }\r\n & Pick<ProductOption, 'id' | 'createdAt' | 'updatedAt' | 'code'>\r\n )> }\r\n )> }\r\n ) | (\r\n { __typename?: 'ProductOptionInUseError' }\r\n & ErrorResult_ProductOptionInUseError_Fragment\r\n ) };\r\n\r\nexport type GetProductWithVariantsQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n variantListOptions?: Maybe<ProductVariantListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetProductWithVariantsQuery = { product?: Maybe<(\r\n { __typename?: 'Product' }\r\n & { variantList: (\r\n { __typename?: 'ProductVariantList' }\r\n & Pick<ProductVariantList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'ProductVariant' }\r\n & ProductVariantFragment\r\n )> }\r\n ) }\r\n & ProductDetailFragment\r\n )> };\r\n\r\nexport type GetProductSimpleQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetProductSimpleQuery = { product?: Maybe<(\r\n { __typename?: 'Product' }\r\n & Pick<Product, 'id' | 'name'>\r\n & { featuredAsset?: Maybe<(\r\n { __typename?: 'Asset' }\r\n & AssetFragment\r\n )> }\r\n )> };\r\n\r\nexport type GetProductListQueryVariables = Exact<{\r\n options?: Maybe<ProductListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetProductListQuery = { products: (\r\n { __typename?: 'ProductList' }\r\n & Pick<ProductList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'Product' }\r\n & Pick<Product, 'id' | 'createdAt' | 'updatedAt' | 'enabled' | 'languageCode' | 'name' | 'slug'>\r\n & { featuredAsset?: Maybe<(\r\n { __typename?: 'Asset' }\r\n & Pick<Asset, 'id' | 'createdAt' | 'updatedAt' | 'preview'>\r\n )> }\r\n )> }\r\n ) };\r\n\r\nexport type GetProductOptionGroupsQueryVariables = Exact<{\r\n filterTerm?: Maybe<Scalars['String']>;\r\n}>;\r\n\r\n\r\nexport type GetProductOptionGroupsQuery = { productOptionGroups: Array<(\r\n { __typename?: 'ProductOptionGroup' }\r\n & Pick<ProductOptionGroup, 'id' | 'createdAt' | 'updatedAt' | 'languageCode' | 'code' | 'name'>\r\n & { options: Array<(\r\n { __typename?: 'ProductOption' }\r\n & Pick<ProductOption, 'id' | 'createdAt' | 'updatedAt' | 'languageCode' | 'code' | 'name'>\r\n )> }\r\n )> };\r\n\r\nexport type GetAssetListQueryVariables = Exact<{\r\n options?: Maybe<AssetListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetAssetListQuery = { assets: (\r\n { __typename?: 'AssetList' }\r\n & Pick<AssetList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'Asset' }\r\n & { tags: Array<(\r\n { __typename?: 'Tag' }\r\n & TagFragment\r\n )> }\r\n & AssetFragment\r\n )> }\r\n ) };\r\n\r\nexport type GetAssetQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetAssetQuery = { asset?: Maybe<(\r\n { __typename?: 'Asset' }\r\n & { tags: Array<(\r\n { __typename?: 'Tag' }\r\n & TagFragment\r\n )> }\r\n & AssetFragment\r\n )> };\r\n\r\nexport type CreateAssetsMutationVariables = Exact<{\r\n input: Array<CreateAssetInput> | CreateAssetInput;\r\n}>;\r\n\r\n\r\nexport type CreateAssetsMutation = { createAssets: Array<(\r\n { __typename?: 'Asset' }\r\n & { tags: Array<(\r\n { __typename?: 'Tag' }\r\n & TagFragment\r\n )> }\r\n & AssetFragment\r\n ) | (\r\n { __typename?: 'MimeTypeError' }\r\n & Pick<MimeTypeError, 'message'>\r\n )> };\r\n\r\nexport type UpdateAssetMutationVariables = Exact<{\r\n input: UpdateAssetInput;\r\n}>;\r\n\r\n\r\nexport type UpdateAssetMutation = { updateAsset: (\r\n { __typename?: 'Asset' }\r\n & { tags: Array<(\r\n { __typename?: 'Tag' }\r\n & TagFragment\r\n )> }\r\n & AssetFragment\r\n ) };\r\n\r\nexport type DeleteAssetsMutationVariables = Exact<{\r\n input: DeleteAssetsInput;\r\n}>;\r\n\r\n\r\nexport type DeleteAssetsMutation = { deleteAssets: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n ) };\r\n\r\nexport type SearchProductsQueryVariables = Exact<{\r\n input: SearchInput;\r\n}>;\r\n\r\n\r\nexport type SearchProductsQuery = { search: (\r\n { __typename?: 'SearchResponse' }\r\n & Pick<SearchResponse, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'SearchResult' }\r\n & Pick<SearchResult, 'enabled' | 'productId' | 'productName' | 'productVariantId' | 'productVariantName' | 'sku' | 'channelIds'>\r\n & { productAsset?: Maybe<(\r\n { __typename?: 'SearchResultAsset' }\r\n & Pick<SearchResultAsset, 'id' | 'preview'>\r\n & { focalPoint?: Maybe<(\r\n { __typename?: 'Coordinate' }\r\n & Pick<Coordinate, 'x' | 'y'>\r\n )> }\r\n )>, productVariantAsset?: Maybe<(\r\n { __typename?: 'SearchResultAsset' }\r\n & Pick<SearchResultAsset, 'id' | 'preview'>\r\n & { focalPoint?: Maybe<(\r\n { __typename?: 'Coordinate' }\r\n & Pick<Coordinate, 'x' | 'y'>\r\n )> }\r\n )> }\r\n )>, facetValues: Array<(\r\n { __typename?: 'FacetValueResult' }\r\n & Pick<FacetValueResult, 'count'>\r\n & { facetValue: (\r\n { __typename?: 'FacetValue' }\r\n & Pick<FacetValue, 'id' | 'createdAt' | 'updatedAt' | 'name'>\r\n & { facet: (\r\n { __typename?: 'Facet' }\r\n & Pick<Facet, 'id' | 'createdAt' | 'updatedAt' | 'name'>\r\n ) }\r\n ) }\r\n )> }\r\n ) };\r\n\r\nexport type ProductSelectorSearchQueryVariables = Exact<{\r\n term: Scalars['String'];\r\n take: Scalars['Int'];\r\n}>;\r\n\r\n\r\nexport type ProductSelectorSearchQuery = { search: (\r\n { __typename?: 'SearchResponse' }\r\n & { items: Array<(\r\n { __typename?: 'SearchResult' }\r\n & Pick<SearchResult, 'productVariantId' | 'productVariantName' | 'sku'>\r\n & { productAsset?: Maybe<(\r\n { __typename?: 'SearchResultAsset' }\r\n & Pick<SearchResultAsset, 'id' | 'preview'>\r\n & { focalPoint?: Maybe<(\r\n { __typename?: 'Coordinate' }\r\n & Pick<Coordinate, 'x' | 'y'>\r\n )> }\r\n )>, price: { __typename?: 'PriceRange' } | (\r\n { __typename?: 'SinglePrice' }\r\n & Pick<SinglePrice, 'value'>\r\n ), priceWithTax: { __typename?: 'PriceRange' } | (\r\n { __typename?: 'SinglePrice' }\r\n & Pick<SinglePrice, 'value'>\r\n ) }\r\n )> }\r\n ) };\r\n\r\nexport type UpdateProductOptionGroupMutationVariables = Exact<{\r\n input: UpdateProductOptionGroupInput;\r\n}>;\r\n\r\n\r\nexport type UpdateProductOptionGroupMutation = { updateProductOptionGroup: (\r\n { __typename?: 'ProductOptionGroup' }\r\n & ProductOptionGroupFragment\r\n ) };\r\n\r\nexport type UpdateProductOptionMutationVariables = Exact<{\r\n input: UpdateProductOptionInput;\r\n}>;\r\n\r\n\r\nexport type UpdateProductOptionMutation = { updateProductOption: (\r\n { __typename?: 'ProductOption' }\r\n & ProductOptionFragment\r\n ) };\r\n\r\nexport type DeleteProductOptionMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteProductOptionMutation = { deleteProductOption: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n ) };\r\n\r\nexport type DeleteProductVariantMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteProductVariantMutation = { deleteProductVariant: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n ) };\r\n\r\nexport type GetProductVariantOptionsQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetProductVariantOptionsQuery = { product?: Maybe<(\r\n { __typename?: 'Product' }\r\n & Pick<Product, 'id' | 'createdAt' | 'updatedAt' | 'name'>\r\n & { optionGroups: Array<(\r\n { __typename?: 'ProductOptionGroup' }\r\n & { options: Array<(\r\n { __typename?: 'ProductOption' }\r\n & ProductOptionFragment\r\n )> }\r\n & ProductOptionGroupFragment\r\n )>, variants: Array<(\r\n { __typename?: 'ProductVariant' }\r\n & Pick<ProductVariant, 'id' | 'createdAt' | 'updatedAt' | 'enabled' | 'name' | 'sku' | 'price' | 'stockOnHand'>\r\n & { options: Array<(\r\n { __typename?: 'ProductOption' }\r\n & Pick<ProductOption, 'id' | 'createdAt' | 'updatedAt' | 'name' | 'code' | 'groupId'>\r\n )> }\r\n )> }\r\n )> };\r\n\r\nexport type AssignProductsToChannelMutationVariables = Exact<{\r\n input: AssignProductsToChannelInput;\r\n}>;\r\n\r\n\r\nexport type AssignProductsToChannelMutation = { assignProductsToChannel: Array<(\r\n { __typename?: 'Product' }\r\n & Pick<Product, 'id'>\r\n & { channels: Array<(\r\n { __typename?: 'Channel' }\r\n & Pick<Channel, 'id' | 'code'>\r\n )> }\r\n )> };\r\n\r\nexport type AssignVariantsToChannelMutationVariables = Exact<{\r\n input: AssignProductVariantsToChannelInput;\r\n}>;\r\n\r\n\r\nexport type AssignVariantsToChannelMutation = { assignProductVariantsToChannel: Array<(\r\n { __typename?: 'ProductVariant' }\r\n & Pick<ProductVariant, 'id'>\r\n & { channels: Array<(\r\n { __typename?: 'Channel' }\r\n & Pick<Channel, 'id' | 'code'>\r\n )> }\r\n )> };\r\n\r\nexport type RemoveProductsFromChannelMutationVariables = Exact<{\r\n input: RemoveProductsFromChannelInput;\r\n}>;\r\n\r\n\r\nexport type RemoveProductsFromChannelMutation = { removeProductsFromChannel: Array<(\r\n { __typename?: 'Product' }\r\n & Pick<Product, 'id'>\r\n & { channels: Array<(\r\n { __typename?: 'Channel' }\r\n & Pick<Channel, 'id' | 'code'>\r\n )> }\r\n )> };\r\n\r\nexport type RemoveVariantsFromChannelMutationVariables = Exact<{\r\n input: RemoveProductVariantsFromChannelInput;\r\n}>;\r\n\r\n\r\nexport type RemoveVariantsFromChannelMutation = { removeProductVariantsFromChannel: Array<(\r\n { __typename?: 'ProductVariant' }\r\n & Pick<ProductVariant, 'id'>\r\n & { channels: Array<(\r\n { __typename?: 'Channel' }\r\n & Pick<Channel, 'id' | 'code'>\r\n )> }\r\n )> };\r\n\r\nexport type GetProductVariantQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetProductVariantQuery = { productVariant?: Maybe<(\r\n { __typename?: 'ProductVariant' }\r\n & Pick<ProductVariant, 'id' | 'name' | 'sku' | 'stockOnHand' | 'stockAllocated' | 'stockLevel' | 'useGlobalOutOfStockThreshold' | 'price' | 'priceWithTax'>\r\n & { featuredAsset?: Maybe<(\r\n { __typename?: 'Asset' }\r\n & Pick<Asset, 'id' | 'preview'>\r\n & { focalPoint?: Maybe<(\r\n { __typename?: 'Coordinate' }\r\n & Pick<Coordinate, 'x' | 'y'>\r\n )> }\r\n )>, product: (\r\n { __typename?: 'Product' }\r\n & Pick<Product, 'id'>\r\n & { featuredAsset?: Maybe<(\r\n { __typename?: 'Asset' }\r\n & Pick<Asset, 'id' | 'preview'>\r\n & { focalPoint?: Maybe<(\r\n { __typename?: 'Coordinate' }\r\n & Pick<Coordinate, 'x' | 'y'>\r\n )> }\r\n )> }\r\n ) }\r\n )> };\r\n\r\nexport type GetProductVariantListSimpleQueryVariables = Exact<{\r\n options: ProductVariantListOptions;\r\n productId?: Maybe<Scalars['ID']>;\r\n}>;\r\n\r\n\r\nexport type GetProductVariantListSimpleQuery = { productVariants: (\r\n { __typename?: 'ProductVariantList' }\r\n & Pick<ProductVariantList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'ProductVariant' }\r\n & Pick<ProductVariant, 'id' | 'name' | 'sku'>\r\n & { featuredAsset?: Maybe<(\r\n { __typename?: 'Asset' }\r\n & Pick<Asset, 'id' | 'preview'>\r\n & { focalPoint?: Maybe<(\r\n { __typename?: 'Coordinate' }\r\n & Pick<Coordinate, 'x' | 'y'>\r\n )> }\r\n )>, product: (\r\n { __typename?: 'Product' }\r\n & Pick<Product, 'id'>\r\n & { featuredAsset?: Maybe<(\r\n { __typename?: 'Asset' }\r\n & Pick<Asset, 'id' | 'preview'>\r\n & { focalPoint?: Maybe<(\r\n { __typename?: 'Coordinate' }\r\n & Pick<Coordinate, 'x' | 'y'>\r\n )> }\r\n )> }\r\n ) }\r\n )> }\r\n ) };\r\n\r\nexport type GetProductVariantListQueryVariables = Exact<{\r\n options: ProductVariantListOptions;\r\n productId?: Maybe<Scalars['ID']>;\r\n}>;\r\n\r\n\r\nexport type GetProductVariantListQuery = { productVariants: (\r\n { __typename?: 'ProductVariantList' }\r\n & Pick<ProductVariantList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'ProductVariant' }\r\n & ProductVariantFragment\r\n )> }\r\n ) };\r\n\r\nexport type GetTagListQueryVariables = Exact<{\r\n options?: Maybe<TagListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetTagListQuery = { tags: (\r\n { __typename?: 'TagList' }\r\n & Pick<TagList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'Tag' }\r\n & TagFragment\r\n )> }\r\n ) };\r\n\r\nexport type GetTagQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetTagQuery = { tag: (\r\n { __typename?: 'Tag' }\r\n & TagFragment\r\n ) };\r\n\r\nexport type CreateTagMutationVariables = Exact<{\r\n input: CreateTagInput;\r\n}>;\r\n\r\n\r\nexport type CreateTagMutation = { createTag: (\r\n { __typename?: 'Tag' }\r\n & TagFragment\r\n ) };\r\n\r\nexport type UpdateTagMutationVariables = Exact<{\r\n input: UpdateTagInput;\r\n}>;\r\n\r\n\r\nexport type UpdateTagMutation = { updateTag: (\r\n { __typename?: 'Tag' }\r\n & TagFragment\r\n ) };\r\n\r\nexport type DeleteTagMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteTagMutation = { deleteTag: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'message' | 'result'>\r\n ) };\r\n\r\nexport type PromotionFragment = (\r\n { __typename?: 'Promotion' }\r\n & Pick<Promotion, 'id' | 'createdAt' | 'updatedAt' | 'name' | 'enabled' | 'couponCode' | 'perCustomerUsageLimit' | 'startsAt' | 'endsAt'>\r\n & { conditions: Array<(\r\n { __typename?: 'ConfigurableOperation' }\r\n & ConfigurableOperationFragment\r\n )>, actions: Array<(\r\n { __typename?: 'ConfigurableOperation' }\r\n & ConfigurableOperationFragment\r\n )> }\r\n);\r\n\r\nexport type GetPromotionListQueryVariables = Exact<{\r\n options?: Maybe<PromotionListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetPromotionListQuery = { promotions: (\r\n { __typename?: 'PromotionList' }\r\n & Pick<PromotionList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'Promotion' }\r\n & PromotionFragment\r\n )> }\r\n ) };\r\n\r\nexport type GetPromotionQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetPromotionQuery = { promotion?: Maybe<(\r\n { __typename?: 'Promotion' }\r\n & PromotionFragment\r\n )> };\r\n\r\nexport type GetAdjustmentOperationsQueryVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type GetAdjustmentOperationsQuery = { promotionConditions: Array<(\r\n { __typename?: 'ConfigurableOperationDefinition' }\r\n & ConfigurableOperationDefFragment\r\n )>, promotionActions: Array<(\r\n { __typename?: 'ConfigurableOperationDefinition' }\r\n & ConfigurableOperationDefFragment\r\n )> };\r\n\r\nexport type CreatePromotionMutationVariables = Exact<{\r\n input: CreatePromotionInput;\r\n}>;\r\n\r\n\r\nexport type CreatePromotionMutation = { createPromotion: (\r\n { __typename?: 'Promotion' }\r\n & PromotionFragment\r\n ) | (\r\n { __typename?: 'MissingConditionsError' }\r\n & ErrorResult_MissingConditionsError_Fragment\r\n ) };\r\n\r\nexport type UpdatePromotionMutationVariables = Exact<{\r\n input: UpdatePromotionInput;\r\n}>;\r\n\r\n\r\nexport type UpdatePromotionMutation = { updatePromotion: (\r\n { __typename?: 'Promotion' }\r\n & PromotionFragment\r\n ) | { __typename?: 'MissingConditionsError' } };\r\n\r\nexport type DeletePromotionMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeletePromotionMutation = { deletePromotion: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n ) };\r\n\r\nexport type CountryFragment = (\r\n { __typename?: 'Country' }\r\n & Pick<Country, 'id' | 'createdAt' | 'updatedAt' | 'code' | 'name' | 'enabled'>\r\n & { translations: Array<(\r\n { __typename?: 'CountryTranslation' }\r\n & Pick<CountryTranslation, 'id' | 'languageCode' | 'name'>\r\n )> }\r\n);\r\n\r\nexport type GetCountryListQueryVariables = Exact<{\r\n options?: Maybe<CountryListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetCountryListQuery = { countries: (\r\n { __typename?: 'CountryList' }\r\n & Pick<CountryList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'Country' }\r\n & Pick<Country, 'id' | 'code' | 'name' | 'enabled'>\r\n )> }\r\n ) };\r\n\r\nexport type GetAvailableCountriesQueryVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type GetAvailableCountriesQuery = { countries: (\r\n { __typename?: 'CountryList' }\r\n & { items: Array<(\r\n { __typename?: 'Country' }\r\n & Pick<Country, 'id' | 'code' | 'name' | 'enabled'>\r\n )> }\r\n ) };\r\n\r\nexport type GetCountryQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetCountryQuery = { country?: Maybe<(\r\n { __typename?: 'Country' }\r\n & CountryFragment\r\n )> };\r\n\r\nexport type CreateCountryMutationVariables = Exact<{\r\n input: CreateCountryInput;\r\n}>;\r\n\r\n\r\nexport type CreateCountryMutation = { createCountry: (\r\n { __typename?: 'Country' }\r\n & CountryFragment\r\n ) };\r\n\r\nexport type UpdateCountryMutationVariables = Exact<{\r\n input: UpdateCountryInput;\r\n}>;\r\n\r\n\r\nexport type UpdateCountryMutation = { updateCountry: (\r\n { __typename?: 'Country' }\r\n & CountryFragment\r\n ) };\r\n\r\nexport type DeleteCountryMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteCountryMutation = { deleteCountry: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n ) };\r\n\r\nexport type ZoneFragment = (\r\n { __typename?: 'Zone' }\r\n & Pick<Zone, 'id' | 'createdAt' | 'updatedAt' | 'name'>\r\n & { members: Array<(\r\n { __typename?: 'Country' }\r\n & CountryFragment\r\n )> }\r\n);\r\n\r\nexport type GetZonesQueryVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type GetZonesQuery = { zones: Array<(\r\n { __typename?: 'Zone' }\r\n & { members: Array<(\r\n { __typename?: 'Country' }\r\n & Pick<Country, 'createdAt' | 'updatedAt' | 'id' | 'name' | 'code' | 'enabled'>\r\n )> }\r\n & ZoneFragment\r\n )> };\r\n\r\nexport type GetZoneQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetZoneQuery = { zone?: Maybe<(\r\n { __typename?: 'Zone' }\r\n & ZoneFragment\r\n )> };\r\n\r\nexport type CreateZoneMutationVariables = Exact<{\r\n input: CreateZoneInput;\r\n}>;\r\n\r\n\r\nexport type CreateZoneMutation = { createZone: (\r\n { __typename?: 'Zone' }\r\n & ZoneFragment\r\n ) };\r\n\r\nexport type UpdateZoneMutationVariables = Exact<{\r\n input: UpdateZoneInput;\r\n}>;\r\n\r\n\r\nexport type UpdateZoneMutation = { updateZone: (\r\n { __typename?: 'Zone' }\r\n & ZoneFragment\r\n ) };\r\n\r\nexport type DeleteZoneMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteZoneMutation = { deleteZone: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'message' | 'result'>\r\n ) };\r\n\r\nexport type AddMembersToZoneMutationVariables = Exact<{\r\n zoneId: Scalars['ID'];\r\n memberIds: Array<Scalars['ID']> | Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type AddMembersToZoneMutation = { addMembersToZone: (\r\n { __typename?: 'Zone' }\r\n & ZoneFragment\r\n ) };\r\n\r\nexport type RemoveMembersFromZoneMutationVariables = Exact<{\r\n zoneId: Scalars['ID'];\r\n memberIds: Array<Scalars['ID']> | Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type RemoveMembersFromZoneMutation = { removeMembersFromZone: (\r\n { __typename?: 'Zone' }\r\n & ZoneFragment\r\n ) };\r\n\r\nexport type TaxCategoryFragment = (\r\n { __typename?: 'TaxCategory' }\r\n & Pick<TaxCategory, 'id' | 'createdAt' | 'updatedAt' | 'name' | 'isDefault'>\r\n);\r\n\r\nexport type GetTaxCategoriesQueryVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type GetTaxCategoriesQuery = { taxCategories: Array<(\r\n { __typename?: 'TaxCategory' }\r\n & TaxCategoryFragment\r\n )> };\r\n\r\nexport type GetTaxCategoryQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetTaxCategoryQuery = { taxCategory?: Maybe<(\r\n { __typename?: 'TaxCategory' }\r\n & TaxCategoryFragment\r\n )> };\r\n\r\nexport type CreateTaxCategoryMutationVariables = Exact<{\r\n input: CreateTaxCategoryInput;\r\n}>;\r\n\r\n\r\nexport type CreateTaxCategoryMutation = { createTaxCategory: (\r\n { __typename?: 'TaxCategory' }\r\n & TaxCategoryFragment\r\n ) };\r\n\r\nexport type UpdateTaxCategoryMutationVariables = Exact<{\r\n input: UpdateTaxCategoryInput;\r\n}>;\r\n\r\n\r\nexport type UpdateTaxCategoryMutation = { updateTaxCategory: (\r\n { __typename?: 'TaxCategory' }\r\n & TaxCategoryFragment\r\n ) };\r\n\r\nexport type DeleteTaxCategoryMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteTaxCategoryMutation = { deleteTaxCategory: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n ) };\r\n\r\nexport type TaxRateFragment = (\r\n { __typename?: 'TaxRate' }\r\n & Pick<TaxRate, 'id' | 'createdAt' | 'updatedAt' | 'name' | 'enabled' | 'value'>\r\n & { category: (\r\n { __typename?: 'TaxCategory' }\r\n & Pick<TaxCategory, 'id' | 'name'>\r\n ), zone: (\r\n { __typename?: 'Zone' }\r\n & Pick<Zone, 'id' | 'name'>\r\n ), customerGroup?: Maybe<(\r\n { __typename?: 'CustomerGroup' }\r\n & Pick<CustomerGroup, 'id' | 'name'>\r\n )> }\r\n);\r\n\r\nexport type GetTaxRateListQueryVariables = Exact<{\r\n options?: Maybe<TaxRateListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetTaxRateListQuery = { taxRates: (\r\n { __typename?: 'TaxRateList' }\r\n & Pick<TaxRateList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'TaxRate' }\r\n & TaxRateFragment\r\n )> }\r\n ) };\r\n\r\nexport type GetTaxRateListSimpleQueryVariables = Exact<{\r\n options?: Maybe<TaxRateListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetTaxRateListSimpleQuery = { taxRates: (\r\n { __typename?: 'TaxRateList' }\r\n & Pick<TaxRateList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'TaxRate' }\r\n & Pick<TaxRate, 'id' | 'createdAt' | 'updatedAt' | 'name' | 'enabled' | 'value'>\r\n & { category: (\r\n { __typename?: 'TaxCategory' }\r\n & Pick<TaxCategory, 'id' | 'name'>\r\n ), zone: (\r\n { __typename?: 'Zone' }\r\n & Pick<Zone, 'id' | 'name'>\r\n ) }\r\n )> }\r\n ) };\r\n\r\nexport type GetTaxRateQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetTaxRateQuery = { taxRate?: Maybe<(\r\n { __typename?: 'TaxRate' }\r\n & TaxRateFragment\r\n )> };\r\n\r\nexport type CreateTaxRateMutationVariables = Exact<{\r\n input: CreateTaxRateInput;\r\n}>;\r\n\r\n\r\nexport type CreateTaxRateMutation = { createTaxRate: (\r\n { __typename?: 'TaxRate' }\r\n & TaxRateFragment\r\n ) };\r\n\r\nexport type UpdateTaxRateMutationVariables = Exact<{\r\n input: UpdateTaxRateInput;\r\n}>;\r\n\r\n\r\nexport type UpdateTaxRateMutation = { updateTaxRate: (\r\n { __typename?: 'TaxRate' }\r\n & TaxRateFragment\r\n ) };\r\n\r\nexport type DeleteTaxRateMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteTaxRateMutation = { deleteTaxRate: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n ) };\r\n\r\nexport type ChannelFragment = (\r\n { __typename?: 'Channel' }\r\n & Pick<Channel, 'id' | 'createdAt' | 'updatedAt' | 'code' | 'token' | 'pricesIncludeTax' | 'currencyCode' | 'defaultLanguageCode'>\r\n & { defaultShippingZone?: Maybe<(\r\n { __typename?: 'Zone' }\r\n & Pick<Zone, 'id' | 'name'>\r\n )>, defaultTaxZone?: Maybe<(\r\n { __typename?: 'Zone' }\r\n & Pick<Zone, 'id' | 'name'>\r\n )> }\r\n);\r\n\r\nexport type GetChannelsQueryVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type GetChannelsQuery = { channels: Array<(\r\n { __typename?: 'Channel' }\r\n & ChannelFragment\r\n )> };\r\n\r\nexport type GetChannelQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetChannelQuery = { channel?: Maybe<(\r\n { __typename?: 'Channel' }\r\n & ChannelFragment\r\n )> };\r\n\r\nexport type GetActiveChannelQueryVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type GetActiveChannelQuery = { activeChannel: (\r\n { __typename?: 'Channel' }\r\n & ChannelFragment\r\n ) };\r\n\r\nexport type CreateChannelMutationVariables = Exact<{\r\n input: CreateChannelInput;\r\n}>;\r\n\r\n\r\nexport type CreateChannelMutation = { createChannel: (\r\n { __typename?: 'Channel' }\r\n & ChannelFragment\r\n ) | (\r\n { __typename?: 'LanguageNotAvailableError' }\r\n & ErrorResult_LanguageNotAvailableError_Fragment\r\n ) };\r\n\r\nexport type UpdateChannelMutationVariables = Exact<{\r\n input: UpdateChannelInput;\r\n}>;\r\n\r\n\r\nexport type UpdateChannelMutation = { updateChannel: (\r\n { __typename?: 'Channel' }\r\n & ChannelFragment\r\n ) | (\r\n { __typename?: 'LanguageNotAvailableError' }\r\n & ErrorResult_LanguageNotAvailableError_Fragment\r\n ) };\r\n\r\nexport type DeleteChannelMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteChannelMutation = { deleteChannel: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n ) };\r\n\r\nexport type PaymentMethodFragment = (\r\n { __typename?: 'PaymentMethod' }\r\n & Pick<PaymentMethod, 'id' | 'createdAt' | 'updatedAt' | 'name' | 'code' | 'description' | 'enabled'>\r\n & { checker?: Maybe<(\r\n { __typename?: 'ConfigurableOperation' }\r\n & ConfigurableOperationFragment\r\n )>, handler: (\r\n { __typename?: 'ConfigurableOperation' }\r\n & ConfigurableOperationFragment\r\n ) }\r\n);\r\n\r\nexport type GetPaymentMethodListQueryVariables = Exact<{\r\n options: PaymentMethodListOptions;\r\n}>;\r\n\r\n\r\nexport type GetPaymentMethodListQuery = { paymentMethods: (\r\n { __typename?: 'PaymentMethodList' }\r\n & Pick<PaymentMethodList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'PaymentMethod' }\r\n & PaymentMethodFragment\r\n )> }\r\n ) };\r\n\r\nexport type GetPaymentMethodOperationsQueryVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type GetPaymentMethodOperationsQuery = { paymentMethodEligibilityCheckers: Array<(\r\n { __typename?: 'ConfigurableOperationDefinition' }\r\n & ConfigurableOperationDefFragment\r\n )>, paymentMethodHandlers: Array<(\r\n { __typename?: 'ConfigurableOperationDefinition' }\r\n & ConfigurableOperationDefFragment\r\n )> };\r\n\r\nexport type GetPaymentMethodQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetPaymentMethodQuery = { paymentMethod?: Maybe<(\r\n { __typename?: 'PaymentMethod' }\r\n & PaymentMethodFragment\r\n )> };\r\n\r\nexport type CreatePaymentMethodMutationVariables = Exact<{\r\n input: CreatePaymentMethodInput;\r\n}>;\r\n\r\n\r\nexport type CreatePaymentMethodMutation = { createPaymentMethod: (\r\n { __typename?: 'PaymentMethod' }\r\n & PaymentMethodFragment\r\n ) };\r\n\r\nexport type UpdatePaymentMethodMutationVariables = Exact<{\r\n input: UpdatePaymentMethodInput;\r\n}>;\r\n\r\n\r\nexport type UpdatePaymentMethodMutation = { updatePaymentMethod: (\r\n { __typename?: 'PaymentMethod' }\r\n & PaymentMethodFragment\r\n ) };\r\n\r\nexport type DeletePaymentMethodMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n force?: Maybe<Scalars['Boolean']>;\r\n}>;\r\n\r\n\r\nexport type DeletePaymentMethodMutation = { deletePaymentMethod: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n ) };\r\n\r\nexport type GlobalSettingsFragment = (\r\n { __typename?: 'GlobalSettings' }\r\n & Pick<GlobalSettings, 'id' | 'availableLanguages' | 'trackInventory' | 'outOfStockThreshold'>\r\n & { serverConfig: (\r\n { __typename?: 'ServerConfig' }\r\n & { permissions: Array<(\r\n { __typename?: 'PermissionDefinition' }\r\n & Pick<PermissionDefinition, 'name' | 'description' | 'assignable'>\r\n )>, orderProcess: Array<(\r\n { __typename?: 'OrderProcessState' }\r\n & Pick<OrderProcessState, 'name'>\r\n )> }\r\n ) }\r\n);\r\n\r\nexport type GetGlobalSettingsQueryVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type GetGlobalSettingsQuery = { globalSettings: (\r\n { __typename?: 'GlobalSettings' }\r\n & GlobalSettingsFragment\r\n ) };\r\n\r\nexport type UpdateGlobalSettingsMutationVariables = Exact<{\r\n input: UpdateGlobalSettingsInput;\r\n}>;\r\n\r\n\r\nexport type UpdateGlobalSettingsMutation = { updateGlobalSettings: (\r\n { __typename?: 'GlobalSettings' }\r\n & GlobalSettingsFragment\r\n ) | (\r\n { __typename?: 'ChannelDefaultLanguageError' }\r\n & ErrorResult_ChannelDefaultLanguageError_Fragment\r\n ) };\r\n\r\ntype CustomFieldConfig_BooleanCustomFieldConfig_Fragment = (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & Pick<BooleanCustomFieldConfig, 'name' | 'type' | 'list' | 'readonly' | 'nullable' | 'ui'>\r\n & { description?: Maybe<Array<(\r\n { __typename?: 'LocalizedString' }\r\n & Pick<LocalizedString, 'languageCode' | 'value'>\r\n )>>, label?: Maybe<Array<(\r\n { __typename?: 'LocalizedString' }\r\n & Pick<LocalizedString, 'languageCode' | 'value'>\r\n )>> }\r\n);\r\n\r\ntype CustomFieldConfig_DateTimeCustomFieldConfig_Fragment = (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & Pick<DateTimeCustomFieldConfig, 'name' | 'type' | 'list' | 'readonly' | 'nullable' | 'ui'>\r\n & { description?: Maybe<Array<(\r\n { __typename?: 'LocalizedString' }\r\n & Pick<LocalizedString, 'languageCode' | 'value'>\r\n )>>, label?: Maybe<Array<(\r\n { __typename?: 'LocalizedString' }\r\n & Pick<LocalizedString, 'languageCode' | 'value'>\r\n )>> }\r\n);\r\n\r\ntype CustomFieldConfig_FloatCustomFieldConfig_Fragment = (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & Pick<FloatCustomFieldConfig, 'name' | 'type' | 'list' | 'readonly' | 'nullable' | 'ui'>\r\n & { description?: Maybe<Array<(\r\n { __typename?: 'LocalizedString' }\r\n & Pick<LocalizedString, 'languageCode' | 'value'>\r\n )>>, label?: Maybe<Array<(\r\n { __typename?: 'LocalizedString' }\r\n & Pick<LocalizedString, 'languageCode' | 'value'>\r\n )>> }\r\n);\r\n\r\ntype CustomFieldConfig_IntCustomFieldConfig_Fragment = (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & Pick<IntCustomFieldConfig, 'name' | 'type' | 'list' | 'readonly' | 'nullable' | 'ui'>\r\n & { description?: Maybe<Array<(\r\n { __typename?: 'LocalizedString' }\r\n & Pick<LocalizedString, 'languageCode' | 'value'>\r\n )>>, label?: Maybe<Array<(\r\n { __typename?: 'LocalizedString' }\r\n & Pick<LocalizedString, 'languageCode' | 'value'>\r\n )>> }\r\n);\r\n\r\ntype CustomFieldConfig_LocaleStringCustomFieldConfig_Fragment = (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & Pick<LocaleStringCustomFieldConfig, 'name' | 'type' | 'list' | 'readonly' | 'nullable' | 'ui'>\r\n & { description?: Maybe<Array<(\r\n { __typename?: 'LocalizedString' }\r\n & Pick<LocalizedString, 'languageCode' | 'value'>\r\n )>>, label?: Maybe<Array<(\r\n { __typename?: 'LocalizedString' }\r\n & Pick<LocalizedString, 'languageCode' | 'value'>\r\n )>> }\r\n);\r\n\r\ntype CustomFieldConfig_RelationCustomFieldConfig_Fragment = (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & Pick<RelationCustomFieldConfig, 'name' | 'type' | 'list' | 'readonly' | 'nullable' | 'ui'>\r\n & { description?: Maybe<Array<(\r\n { __typename?: 'LocalizedString' }\r\n & Pick<LocalizedString, 'languageCode' | 'value'>\r\n )>>, label?: Maybe<Array<(\r\n { __typename?: 'LocalizedString' }\r\n & Pick<LocalizedString, 'languageCode' | 'value'>\r\n )>> }\r\n);\r\n\r\ntype CustomFieldConfig_StringCustomFieldConfig_Fragment = (\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & Pick<StringCustomFieldConfig, 'name' | 'type' | 'list' | 'readonly' | 'nullable' | 'ui'>\r\n & { description?: Maybe<Array<(\r\n { __typename?: 'LocalizedString' }\r\n & Pick<LocalizedString, 'languageCode' | 'value'>\r\n )>>, label?: Maybe<Array<(\r\n { __typename?: 'LocalizedString' }\r\n & Pick<LocalizedString, 'languageCode' | 'value'>\r\n )>> }\r\n);\r\n\r\ntype CustomFieldConfig_TextCustomFieldConfig_Fragment = (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & Pick<TextCustomFieldConfig, 'name' | 'type' | 'list' | 'readonly' | 'nullable' | 'ui'>\r\n & { description?: Maybe<Array<(\r\n { __typename?: 'LocalizedString' }\r\n & Pick<LocalizedString, 'languageCode' | 'value'>\r\n )>>, label?: Maybe<Array<(\r\n { __typename?: 'LocalizedString' }\r\n & Pick<LocalizedString, 'languageCode' | 'value'>\r\n )>> }\r\n);\r\n\r\nexport type CustomFieldConfigFragment = CustomFieldConfig_BooleanCustomFieldConfig_Fragment | CustomFieldConfig_DateTimeCustomFieldConfig_Fragment | CustomFieldConfig_FloatCustomFieldConfig_Fragment | CustomFieldConfig_IntCustomFieldConfig_Fragment | CustomFieldConfig_LocaleStringCustomFieldConfig_Fragment | CustomFieldConfig_RelationCustomFieldConfig_Fragment | CustomFieldConfig_StringCustomFieldConfig_Fragment | CustomFieldConfig_TextCustomFieldConfig_Fragment;\r\n\r\nexport type StringCustomFieldFragment = (\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & Pick<StringCustomFieldConfig, 'pattern'>\r\n & { options?: Maybe<Array<(\r\n { __typename?: 'StringFieldOption' }\r\n & Pick<StringFieldOption, 'value'>\r\n & { label?: Maybe<Array<(\r\n { __typename?: 'LocalizedString' }\r\n & Pick<LocalizedString, 'languageCode' | 'value'>\r\n )>> }\r\n )>> }\r\n & CustomFieldConfig_StringCustomFieldConfig_Fragment\r\n);\r\n\r\nexport type LocaleStringCustomFieldFragment = (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & Pick<LocaleStringCustomFieldConfig, 'pattern'>\r\n & CustomFieldConfig_LocaleStringCustomFieldConfig_Fragment\r\n);\r\n\r\nexport type TextCustomFieldFragment = (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFieldConfig_TextCustomFieldConfig_Fragment\r\n);\r\n\r\nexport type BooleanCustomFieldFragment = (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFieldConfig_BooleanCustomFieldConfig_Fragment\r\n);\r\n\r\nexport type IntCustomFieldFragment = (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & { intMin: IntCustomFieldConfig['min'], intMax: IntCustomFieldConfig['max'], intStep: IntCustomFieldConfig['step'] }\r\n & CustomFieldConfig_IntCustomFieldConfig_Fragment\r\n);\r\n\r\nexport type FloatCustomFieldFragment = (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & { floatMin: FloatCustomFieldConfig['min'], floatMax: FloatCustomFieldConfig['max'], floatStep: FloatCustomFieldConfig['step'] }\r\n & CustomFieldConfig_FloatCustomFieldConfig_Fragment\r\n);\r\n\r\nexport type DateTimeCustomFieldFragment = (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & { datetimeMin: DateTimeCustomFieldConfig['min'], datetimeMax: DateTimeCustomFieldConfig['max'], datetimeStep: DateTimeCustomFieldConfig['step'] }\r\n & CustomFieldConfig_DateTimeCustomFieldConfig_Fragment\r\n);\r\n\r\nexport type RelationCustomFieldFragment = (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & Pick<RelationCustomFieldConfig, 'entity' | 'scalarFields'>\r\n & CustomFieldConfig_RelationCustomFieldConfig_Fragment\r\n);\r\n\r\ntype CustomFields_BooleanCustomFieldConfig_Fragment = (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & BooleanCustomFieldFragment\r\n);\r\n\r\ntype CustomFields_DateTimeCustomFieldConfig_Fragment = (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & DateTimeCustomFieldFragment\r\n);\r\n\r\ntype CustomFields_FloatCustomFieldConfig_Fragment = (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & FloatCustomFieldFragment\r\n);\r\n\r\ntype CustomFields_IntCustomFieldConfig_Fragment = (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & IntCustomFieldFragment\r\n);\r\n\r\ntype CustomFields_LocaleStringCustomFieldConfig_Fragment = (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & LocaleStringCustomFieldFragment\r\n);\r\n\r\ntype CustomFields_RelationCustomFieldConfig_Fragment = (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & RelationCustomFieldFragment\r\n);\r\n\r\ntype CustomFields_StringCustomFieldConfig_Fragment = (\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & StringCustomFieldFragment\r\n);\r\n\r\ntype CustomFields_TextCustomFieldConfig_Fragment = (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & TextCustomFieldFragment\r\n);\r\n\r\nexport type CustomFieldsFragment = CustomFields_BooleanCustomFieldConfig_Fragment | CustomFields_DateTimeCustomFieldConfig_Fragment | CustomFields_FloatCustomFieldConfig_Fragment | CustomFields_IntCustomFieldConfig_Fragment | CustomFields_LocaleStringCustomFieldConfig_Fragment | CustomFields_RelationCustomFieldConfig_Fragment | CustomFields_StringCustomFieldConfig_Fragment | CustomFields_TextCustomFieldConfig_Fragment;\r\n\r\nexport type GetServerConfigQueryVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type GetServerConfigQuery = { globalSettings: (\r\n { __typename?: 'GlobalSettings' }\r\n & Pick<GlobalSettings, 'id'>\r\n & { serverConfig: (\r\n { __typename?: 'ServerConfig' }\r\n & Pick<ServerConfig, 'permittedAssetTypes'>\r\n & { orderProcess: Array<(\r\n { __typename?: 'OrderProcessState' }\r\n & Pick<OrderProcessState, 'name' | 'to'>\r\n )>, permissions: Array<(\r\n { __typename?: 'PermissionDefinition' }\r\n & Pick<PermissionDefinition, 'name' | 'description' | 'assignable'>\r\n )>, customFieldConfig: (\r\n { __typename?: 'CustomFields' }\r\n & { Address: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, Administrator: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, Asset: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, Channel: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, Collection: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, Country: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, Customer: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, CustomerGroup: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, Facet: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, FacetValue: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, Fulfillment: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, GlobalSettings: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, Order: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, OrderLine: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, PaymentMethod: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, Product: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, ProductOption: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, ProductOptionGroup: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, ProductVariant: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, Promotion: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, ShippingMethod: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, TaxCategory: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, TaxRate: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, User: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )>, Zone: Array<(\r\n { __typename?: 'StringCustomFieldConfig' }\r\n & CustomFields_StringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'LocaleStringCustomFieldConfig' }\r\n & CustomFields_LocaleStringCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'IntCustomFieldConfig' }\r\n & CustomFields_IntCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'FloatCustomFieldConfig' }\r\n & CustomFields_FloatCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'BooleanCustomFieldConfig' }\r\n & CustomFields_BooleanCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'DateTimeCustomFieldConfig' }\r\n & CustomFields_DateTimeCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'RelationCustomFieldConfig' }\r\n & CustomFields_RelationCustomFieldConfig_Fragment\r\n ) | (\r\n { __typename?: 'TextCustomFieldConfig' }\r\n & CustomFields_TextCustomFieldConfig_Fragment\r\n )> }\r\n ) }\r\n ) }\r\n ) };\r\n\r\nexport type JobInfoFragment = (\r\n { __typename?: 'Job' }\r\n & Pick<Job, 'id' | 'createdAt' | 'startedAt' | 'settledAt' | 'queueName' | 'state' | 'isSettled' | 'progress' | 'duration' | 'data' | 'result' | 'error' | 'retries' | 'attempts'>\r\n);\r\n\r\nexport type GetJobInfoQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetJobInfoQuery = { job?: Maybe<(\r\n { __typename?: 'Job' }\r\n & JobInfoFragment\r\n )> };\r\n\r\nexport type GetAllJobsQueryVariables = Exact<{\r\n options?: Maybe<JobListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetAllJobsQuery = { jobs: (\r\n { __typename?: 'JobList' }\r\n & Pick<JobList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'Job' }\r\n & JobInfoFragment\r\n )> }\r\n ) };\r\n\r\nexport type GetJobsByIdQueryVariables = Exact<{\r\n ids: Array<Scalars['ID']> | Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetJobsByIdQuery = { jobsById: Array<(\r\n { __typename?: 'Job' }\r\n & JobInfoFragment\r\n )> };\r\n\r\nexport type GetJobQueueListQueryVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type GetJobQueueListQuery = { jobQueues: Array<(\r\n { __typename?: 'JobQueue' }\r\n & Pick<JobQueue, 'name' | 'running'>\r\n )> };\r\n\r\nexport type CancelJobMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type CancelJobMutation = { cancelJob: (\r\n { __typename?: 'Job' }\r\n & JobInfoFragment\r\n ) };\r\n\r\nexport type ReindexMutationVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type ReindexMutation = { reindex: (\r\n { __typename?: 'Job' }\r\n & JobInfoFragment\r\n ) };\r\n\r\nexport type GetPendingSearchIndexUpdatesQueryVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type GetPendingSearchIndexUpdatesQuery = Pick<Query, 'pendingSearchIndexUpdates'>;\r\n\r\nexport type RunPendingSearchIndexUpdatesMutationVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type RunPendingSearchIndexUpdatesMutation = { runPendingSearchIndexUpdates: (\r\n { __typename?: 'Success' }\r\n & Pick<Success, 'success'>\r\n ) };\r\n\r\nexport type ConfigurableOperationFragment = (\r\n { __typename?: 'ConfigurableOperation' }\r\n & Pick<ConfigurableOperation, 'code'>\r\n & { args: Array<(\r\n { __typename?: 'ConfigArg' }\r\n & Pick<ConfigArg, 'name' | 'value'>\r\n )> }\r\n);\r\n\r\nexport type ConfigurableOperationDefFragment = (\r\n { __typename?: 'ConfigurableOperationDefinition' }\r\n & Pick<ConfigurableOperationDefinition, 'code' | 'description'>\r\n & { args: Array<(\r\n { __typename?: 'ConfigArgDefinition' }\r\n & Pick<ConfigArgDefinition, 'name' | 'type' | 'required' | 'defaultValue' | 'list' | 'ui' | 'label' | 'description'>\r\n )> }\r\n);\r\n\r\ntype ErrorResult_AlreadyRefundedError_Fragment = (\r\n { __typename?: 'AlreadyRefundedError' }\r\n & Pick<AlreadyRefundedError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_CancelActiveOrderError_Fragment = (\r\n { __typename?: 'CancelActiveOrderError' }\r\n & Pick<CancelActiveOrderError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_CancelPaymentError_Fragment = (\r\n { __typename?: 'CancelPaymentError' }\r\n & Pick<CancelPaymentError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_ChannelDefaultLanguageError_Fragment = (\r\n { __typename?: 'ChannelDefaultLanguageError' }\r\n & Pick<ChannelDefaultLanguageError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_CouponCodeExpiredError_Fragment = (\r\n { __typename?: 'CouponCodeExpiredError' }\r\n & Pick<CouponCodeExpiredError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_CouponCodeInvalidError_Fragment = (\r\n { __typename?: 'CouponCodeInvalidError' }\r\n & Pick<CouponCodeInvalidError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_CouponCodeLimitError_Fragment = (\r\n { __typename?: 'CouponCodeLimitError' }\r\n & Pick<CouponCodeLimitError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_CreateFulfillmentError_Fragment = (\r\n { __typename?: 'CreateFulfillmentError' }\r\n & Pick<CreateFulfillmentError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_EmailAddressConflictError_Fragment = (\r\n { __typename?: 'EmailAddressConflictError' }\r\n & Pick<EmailAddressConflictError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_EmptyOrderLineSelectionError_Fragment = (\r\n { __typename?: 'EmptyOrderLineSelectionError' }\r\n & Pick<EmptyOrderLineSelectionError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_FacetInUseError_Fragment = (\r\n { __typename?: 'FacetInUseError' }\r\n & Pick<FacetInUseError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_FulfillmentStateTransitionError_Fragment = (\r\n { __typename?: 'FulfillmentStateTransitionError' }\r\n & Pick<FulfillmentStateTransitionError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_IneligibleShippingMethodError_Fragment = (\r\n { __typename?: 'IneligibleShippingMethodError' }\r\n & Pick<IneligibleShippingMethodError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_InsufficientStockError_Fragment = (\r\n { __typename?: 'InsufficientStockError' }\r\n & Pick<InsufficientStockError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_InsufficientStockOnHandError_Fragment = (\r\n { __typename?: 'InsufficientStockOnHandError' }\r\n & Pick<InsufficientStockOnHandError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_InvalidCredentialsError_Fragment = (\r\n { __typename?: 'InvalidCredentialsError' }\r\n & Pick<InvalidCredentialsError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_InvalidFulfillmentHandlerError_Fragment = (\r\n { __typename?: 'InvalidFulfillmentHandlerError' }\r\n & Pick<InvalidFulfillmentHandlerError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_ItemsAlreadyFulfilledError_Fragment = (\r\n { __typename?: 'ItemsAlreadyFulfilledError' }\r\n & Pick<ItemsAlreadyFulfilledError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_LanguageNotAvailableError_Fragment = (\r\n { __typename?: 'LanguageNotAvailableError' }\r\n & Pick<LanguageNotAvailableError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_ManualPaymentStateError_Fragment = (\r\n { __typename?: 'ManualPaymentStateError' }\r\n & Pick<ManualPaymentStateError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_MimeTypeError_Fragment = (\r\n { __typename?: 'MimeTypeError' }\r\n & Pick<MimeTypeError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_MissingConditionsError_Fragment = (\r\n { __typename?: 'MissingConditionsError' }\r\n & Pick<MissingConditionsError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_MultipleOrderError_Fragment = (\r\n { __typename?: 'MultipleOrderError' }\r\n & Pick<MultipleOrderError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_NativeAuthStrategyError_Fragment = (\r\n { __typename?: 'NativeAuthStrategyError' }\r\n & Pick<NativeAuthStrategyError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_NegativeQuantityError_Fragment = (\r\n { __typename?: 'NegativeQuantityError' }\r\n & Pick<NegativeQuantityError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_NoActiveOrderError_Fragment = (\r\n { __typename?: 'NoActiveOrderError' }\r\n & Pick<NoActiveOrderError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_NoChangesSpecifiedError_Fragment = (\r\n { __typename?: 'NoChangesSpecifiedError' }\r\n & Pick<NoChangesSpecifiedError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_NothingToRefundError_Fragment = (\r\n { __typename?: 'NothingToRefundError' }\r\n & Pick<NothingToRefundError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_OrderLimitError_Fragment = (\r\n { __typename?: 'OrderLimitError' }\r\n & Pick<OrderLimitError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_OrderModificationError_Fragment = (\r\n { __typename?: 'OrderModificationError' }\r\n & Pick<OrderModificationError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_OrderModificationStateError_Fragment = (\r\n { __typename?: 'OrderModificationStateError' }\r\n & Pick<OrderModificationStateError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_OrderStateTransitionError_Fragment = (\r\n { __typename?: 'OrderStateTransitionError' }\r\n & Pick<OrderStateTransitionError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_PaymentMethodMissingError_Fragment = (\r\n { __typename?: 'PaymentMethodMissingError' }\r\n & Pick<PaymentMethodMissingError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_PaymentOrderMismatchError_Fragment = (\r\n { __typename?: 'PaymentOrderMismatchError' }\r\n & Pick<PaymentOrderMismatchError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_PaymentStateTransitionError_Fragment = (\r\n { __typename?: 'PaymentStateTransitionError' }\r\n & Pick<PaymentStateTransitionError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_ProductOptionInUseError_Fragment = (\r\n { __typename?: 'ProductOptionInUseError' }\r\n & Pick<ProductOptionInUseError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_QuantityTooGreatError_Fragment = (\r\n { __typename?: 'QuantityTooGreatError' }\r\n & Pick<QuantityTooGreatError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_RefundOrderStateError_Fragment = (\r\n { __typename?: 'RefundOrderStateError' }\r\n & Pick<RefundOrderStateError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_RefundPaymentIdMissingError_Fragment = (\r\n { __typename?: 'RefundPaymentIdMissingError' }\r\n & Pick<RefundPaymentIdMissingError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_RefundStateTransitionError_Fragment = (\r\n { __typename?: 'RefundStateTransitionError' }\r\n & Pick<RefundStateTransitionError, 'errorCode' | 'message'>\r\n);\r\n\r\ntype ErrorResult_SettlePaymentError_Fragment = (\r\n { __typename?: 'SettlePaymentError' }\r\n & Pick<SettlePaymentError, 'errorCode' | 'message'>\r\n);\r\n\r\nexport type ErrorResultFragment = ErrorResult_AlreadyRefundedError_Fragment | ErrorResult_CancelActiveOrderError_Fragment | ErrorResult_CancelPaymentError_Fragment | ErrorResult_ChannelDefaultLanguageError_Fragment | ErrorResult_CouponCodeExpiredError_Fragment | ErrorResult_CouponCodeInvalidError_Fragment | ErrorResult_CouponCodeLimitError_Fragment | ErrorResult_CreateFulfillmentError_Fragment | ErrorResult_EmailAddressConflictError_Fragment | ErrorResult_EmptyOrderLineSelectionError_Fragment | ErrorResult_FacetInUseError_Fragment | ErrorResult_FulfillmentStateTransitionError_Fragment | ErrorResult_IneligibleShippingMethodError_Fragment | ErrorResult_InsufficientStockError_Fragment | ErrorResult_InsufficientStockOnHandError_Fragment | ErrorResult_InvalidCredentialsError_Fragment | ErrorResult_InvalidFulfillmentHandlerError_Fragment | ErrorResult_ItemsAlreadyFulfilledError_Fragment | ErrorResult_LanguageNotAvailableError_Fragment | ErrorResult_ManualPaymentStateError_Fragment | ErrorResult_MimeTypeError_Fragment | ErrorResult_MissingConditionsError_Fragment | ErrorResult_MultipleOrderError_Fragment | ErrorResult_NativeAuthStrategyError_Fragment | ErrorResult_NegativeQuantityError_Fragment | ErrorResult_NoActiveOrderError_Fragment | ErrorResult_NoChangesSpecifiedError_Fragment | ErrorResult_NothingToRefundError_Fragment | ErrorResult_OrderLimitError_Fragment | ErrorResult_OrderModificationError_Fragment | ErrorResult_OrderModificationStateError_Fragment | ErrorResult_OrderStateTransitionError_Fragment | ErrorResult_PaymentMethodMissingError_Fragment | ErrorResult_PaymentOrderMismatchError_Fragment | ErrorResult_PaymentStateTransitionError_Fragment | ErrorResult_ProductOptionInUseError_Fragment | ErrorResult_QuantityTooGreatError_Fragment | ErrorResult_RefundOrderStateError_Fragment | ErrorResult_RefundPaymentIdMissingError_Fragment | ErrorResult_RefundStateTransitionError_Fragment | ErrorResult_SettlePaymentError_Fragment;\r\n\r\nexport type ShippingMethodFragment = (\r\n { __typename?: 'ShippingMethod' }\r\n & Pick<ShippingMethod, 'id' | 'createdAt' | 'updatedAt' | 'code' | 'name' | 'description' | 'fulfillmentHandlerCode'>\r\n & { checker: (\r\n { __typename?: 'ConfigurableOperation' }\r\n & ConfigurableOperationFragment\r\n ), calculator: (\r\n { __typename?: 'ConfigurableOperation' }\r\n & ConfigurableOperationFragment\r\n ), translations: Array<(\r\n { __typename?: 'ShippingMethodTranslation' }\r\n & Pick<ShippingMethodTranslation, 'id' | 'languageCode' | 'name' | 'description'>\r\n )> }\r\n);\r\n\r\nexport type GetShippingMethodListQueryVariables = Exact<{\r\n options?: Maybe<ShippingMethodListOptions>;\r\n}>;\r\n\r\n\r\nexport type GetShippingMethodListQuery = { shippingMethods: (\r\n { __typename?: 'ShippingMethodList' }\r\n & Pick<ShippingMethodList, 'totalItems'>\r\n & { items: Array<(\r\n { __typename?: 'ShippingMethod' }\r\n & ShippingMethodFragment\r\n )> }\r\n ) };\r\n\r\nexport type GetShippingMethodQueryVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetShippingMethodQuery = { shippingMethod?: Maybe<(\r\n { __typename?: 'ShippingMethod' }\r\n & ShippingMethodFragment\r\n )> };\r\n\r\nexport type GetShippingMethodOperationsQueryVariables = Exact<{ [key: string]: never; }>;\r\n\r\n\r\nexport type GetShippingMethodOperationsQuery = { shippingEligibilityCheckers: Array<(\r\n { __typename?: 'ConfigurableOperationDefinition' }\r\n & ConfigurableOperationDefFragment\r\n )>, shippingCalculators: Array<(\r\n { __typename?: 'ConfigurableOperationDefinition' }\r\n & ConfigurableOperationDefFragment\r\n )>, fulfillmentHandlers: Array<(\r\n { __typename?: 'ConfigurableOperationDefinition' }\r\n & ConfigurableOperationDefFragment\r\n )> };\r\n\r\nexport type CreateShippingMethodMutationVariables = Exact<{\r\n input: CreateShippingMethodInput;\r\n}>;\r\n\r\n\r\nexport type CreateShippingMethodMutation = { createShippingMethod: (\r\n { __typename?: 'ShippingMethod' }\r\n & ShippingMethodFragment\r\n ) };\r\n\r\nexport type UpdateShippingMethodMutationVariables = Exact<{\r\n input: UpdateShippingMethodInput;\r\n}>;\r\n\r\n\r\nexport type UpdateShippingMethodMutation = { updateShippingMethod: (\r\n { __typename?: 'ShippingMethod' }\r\n & ShippingMethodFragment\r\n ) };\r\n\r\nexport type DeleteShippingMethodMutationVariables = Exact<{\r\n id: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type DeleteShippingMethodMutation = { deleteShippingMethod: (\r\n { __typename?: 'DeletionResponse' }\r\n & Pick<DeletionResponse, 'result' | 'message'>\r\n ) };\r\n\r\nexport type TestShippingMethodQueryVariables = Exact<{\r\n input: TestShippingMethodInput;\r\n}>;\r\n\r\n\r\nexport type TestShippingMethodQuery = { testShippingMethod: (\r\n { __typename?: 'TestShippingMethodResult' }\r\n & Pick<TestShippingMethodResult, 'eligible'>\r\n & { quote?: Maybe<(\r\n { __typename?: 'TestShippingMethodQuote' }\r\n & Pick<TestShippingMethodQuote, 'price' | 'priceWithTax' | 'metadata'>\r\n )> }\r\n ) };\r\n\r\nexport type TestEligibleShippingMethodsQueryVariables = Exact<{\r\n input: TestEligibleShippingMethodsInput;\r\n}>;\r\n\r\n\r\nexport type TestEligibleShippingMethodsQuery = { testEligibleShippingMethods: Array<(\r\n { __typename?: 'ShippingMethodQuote' }\r\n & Pick<ShippingMethodQuote, 'id' | 'name' | 'code' | 'description' | 'price' | 'priceWithTax' | 'metadata'>\r\n )> };\r\n\r\nexport type GetCustomerAddressesQueryVariables = Exact<{\r\n customerId: Scalars['ID'];\r\n}>;\r\n\r\n\r\nexport type GetCustomerAddressesQuery = { customer?: Maybe<(\r\n { __typename?: 'Customer' }\r\n & Pick<Customer, 'id'>\r\n & { addresses?: Maybe<Array<(\r\n { __typename?: 'Address' }\r\n & AddressFragment\r\n )>> }\r\n )> };\r\n\r\ntype DiscriminateUnion<T, U> = T extends U ? T : never;\r\n\r\nexport namespace GetProductsWithFacetValuesByIds {\r\n export type Variables = GetProductsWithFacetValuesByIdsQueryVariables;\r\n export type Query = GetProductsWithFacetValuesByIdsQuery;\r\n export type Products = (NonNullable<GetProductsWithFacetValuesByIdsQuery['products']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetProductsWithFacetValuesByIdsQuery['products']>)['items']>)[number]>;\r\n export type FacetValues = NonNullable<(NonNullable<NonNullable<(NonNullable<(NonNullable<GetProductsWithFacetValuesByIdsQuery['products']>)['items']>)[number]>['facetValues']>)[number]>;\r\n export type Facet = (NonNullable<NonNullable<(NonNullable<NonNullable<(NonNullable<(NonNullable<GetProductsWithFacetValuesByIdsQuery['products']>)['items']>)[number]>['facetValues']>)[number]>['facet']>);\r\n}\r\n\r\nexport namespace GetVariantsWithFacetValuesByIds {\r\n export type Variables = GetVariantsWithFacetValuesByIdsQueryVariables;\r\n export type Query = GetVariantsWithFacetValuesByIdsQuery;\r\n export type ProductVariants = (NonNullable<GetVariantsWithFacetValuesByIdsQuery['productVariants']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetVariantsWithFacetValuesByIdsQuery['productVariants']>)['items']>)[number]>;\r\n export type FacetValues = NonNullable<(NonNullable<NonNullable<(NonNullable<(NonNullable<GetVariantsWithFacetValuesByIdsQuery['productVariants']>)['items']>)[number]>['facetValues']>)[number]>;\r\n export type Facet = (NonNullable<NonNullable<(NonNullable<NonNullable<(NonNullable<(NonNullable<GetVariantsWithFacetValuesByIdsQuery['productVariants']>)['items']>)[number]>['facetValues']>)[number]>['facet']>);\r\n}\r\n\r\nexport namespace UpdateProductsBulk {\r\n export type Variables = UpdateProductsBulkMutationVariables;\r\n export type Mutation = UpdateProductsBulkMutation;\r\n export type UpdateProducts = NonNullable<(NonNullable<UpdateProductsBulkMutation['updateProducts']>)[number]>;\r\n export type FacetValues = NonNullable<(NonNullable<NonNullable<(NonNullable<UpdateProductsBulkMutation['updateProducts']>)[number]>['facetValues']>)[number]>;\r\n}\r\n\r\nexport namespace UpdateVariantsBulk {\r\n export type Variables = UpdateVariantsBulkMutationVariables;\r\n export type Mutation = UpdateVariantsBulkMutation;\r\n export type UpdateProductVariants = NonNullable<(NonNullable<UpdateVariantsBulkMutation['updateProductVariants']>)[number]>;\r\n export type FacetValues = NonNullable<(NonNullable<NonNullable<(NonNullable<UpdateVariantsBulkMutation['updateProductVariants']>)[number]>['facetValues']>)[number]>;\r\n}\r\n\r\nexport namespace Role {\r\n export type Fragment = RoleFragment;\r\n export type Channels = NonNullable<(NonNullable<RoleFragment['channels']>)[number]>;\r\n}\r\n\r\nexport namespace Administrator {\r\n export type Fragment = AdministratorFragment;\r\n export type User = (NonNullable<AdministratorFragment['user']>);\r\n export type Roles = NonNullable<(NonNullable<(NonNullable<AdministratorFragment['user']>)['roles']>)[number]>;\r\n}\r\n\r\nexport namespace GetAdministrators {\r\n export type Variables = GetAdministratorsQueryVariables;\r\n export type Query = GetAdministratorsQuery;\r\n export type Administrators = (NonNullable<GetAdministratorsQuery['administrators']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetAdministratorsQuery['administrators']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace GetActiveAdministrator {\r\n export type Variables = GetActiveAdministratorQueryVariables;\r\n export type Query = GetActiveAdministratorQuery;\r\n export type ActiveAdministrator = (NonNullable<GetActiveAdministratorQuery['activeAdministrator']>);\r\n}\r\n\r\nexport namespace GetAdministrator {\r\n export type Variables = GetAdministratorQueryVariables;\r\n export type Query = GetAdministratorQuery;\r\n export type Administrator = (NonNullable<GetAdministratorQuery['administrator']>);\r\n}\r\n\r\nexport namespace CreateAdministrator {\r\n export type Variables = CreateAdministratorMutationVariables;\r\n export type Mutation = CreateAdministratorMutation;\r\n export type CreateAdministrator = (NonNullable<CreateAdministratorMutation['createAdministrator']>);\r\n}\r\n\r\nexport namespace UpdateAdministrator {\r\n export type Variables = UpdateAdministratorMutationVariables;\r\n export type Mutation = UpdateAdministratorMutation;\r\n export type UpdateAdministrator = (NonNullable<UpdateAdministratorMutation['updateAdministrator']>);\r\n}\r\n\r\nexport namespace UpdateActiveAdministrator {\r\n export type Variables = UpdateActiveAdministratorMutationVariables;\r\n export type Mutation = UpdateActiveAdministratorMutation;\r\n export type UpdateActiveAdministrator = (NonNullable<UpdateActiveAdministratorMutation['updateActiveAdministrator']>);\r\n}\r\n\r\nexport namespace DeleteAdministrator {\r\n export type Variables = DeleteAdministratorMutationVariables;\r\n export type Mutation = DeleteAdministratorMutation;\r\n export type DeleteAdministrator = (NonNullable<DeleteAdministratorMutation['deleteAdministrator']>);\r\n}\r\n\r\nexport namespace GetRoles {\r\n export type Variables = GetRolesQueryVariables;\r\n export type Query = GetRolesQuery;\r\n export type Roles = (NonNullable<GetRolesQuery['roles']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetRolesQuery['roles']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace GetRole {\r\n export type Variables = GetRoleQueryVariables;\r\n export type Query = GetRoleQuery;\r\n export type Role = (NonNullable<GetRoleQuery['role']>);\r\n}\r\n\r\nexport namespace CreateRole {\r\n export type Variables = CreateRoleMutationVariables;\r\n export type Mutation = CreateRoleMutation;\r\n export type CreateRole = (NonNullable<CreateRoleMutation['createRole']>);\r\n}\r\n\r\nexport namespace UpdateRole {\r\n export type Variables = UpdateRoleMutationVariables;\r\n export type Mutation = UpdateRoleMutation;\r\n export type UpdateRole = (NonNullable<UpdateRoleMutation['updateRole']>);\r\n}\r\n\r\nexport namespace DeleteRole {\r\n export type Variables = DeleteRoleMutationVariables;\r\n export type Mutation = DeleteRoleMutation;\r\n export type DeleteRole = (NonNullable<DeleteRoleMutation['deleteRole']>);\r\n}\r\n\r\nexport namespace AssignRoleToAdministrator {\r\n export type Variables = AssignRoleToAdministratorMutationVariables;\r\n export type Mutation = AssignRoleToAdministratorMutation;\r\n export type AssignRoleToAdministrator = (NonNullable<AssignRoleToAdministratorMutation['assignRoleToAdministrator']>);\r\n}\r\n\r\nexport namespace CurrentUser {\r\n export type Fragment = CurrentUserFragment;\r\n export type Channels = NonNullable<(NonNullable<CurrentUserFragment['channels']>)[number]>;\r\n}\r\n\r\nexport namespace AttemptLogin {\r\n export type Variables = AttemptLoginMutationVariables;\r\n export type Mutation = AttemptLoginMutation;\r\n export type Login = (NonNullable<AttemptLoginMutation['login']>);\r\n}\r\n\r\nexport namespace LogOut {\r\n export type Variables = LogOutMutationVariables;\r\n export type Mutation = LogOutMutation;\r\n export type Logout = (NonNullable<LogOutMutation['logout']>);\r\n}\r\n\r\nexport namespace GetCurrentUser {\r\n export type Variables = GetCurrentUserQueryVariables;\r\n export type Query = GetCurrentUserQuery;\r\n export type Me = (NonNullable<GetCurrentUserQuery['me']>);\r\n}\r\n\r\nexport namespace RequestStarted {\r\n export type Variables = RequestStartedMutationVariables;\r\n export type Mutation = RequestStartedMutation;\r\n}\r\n\r\nexport namespace RequestCompleted {\r\n export type Variables = RequestCompletedMutationVariables;\r\n export type Mutation = RequestCompletedMutation;\r\n}\r\n\r\nexport namespace UserStatus {\r\n export type Fragment = UserStatusFragment;\r\n export type Channels = NonNullable<(NonNullable<UserStatusFragment['channels']>)[number]>;\r\n}\r\n\r\nexport namespace SetAsLoggedIn {\r\n export type Variables = SetAsLoggedInMutationVariables;\r\n export type Mutation = SetAsLoggedInMutation;\r\n export type SetAsLoggedIn = (NonNullable<SetAsLoggedInMutation['setAsLoggedIn']>);\r\n}\r\n\r\nexport namespace SetAsLoggedOut {\r\n export type Variables = SetAsLoggedOutMutationVariables;\r\n export type Mutation = SetAsLoggedOutMutation;\r\n export type SetAsLoggedOut = (NonNullable<SetAsLoggedOutMutation['setAsLoggedOut']>);\r\n}\r\n\r\nexport namespace SetUiLanguage {\r\n export type Variables = SetUiLanguageMutationVariables;\r\n export type Mutation = SetUiLanguageMutation;\r\n}\r\n\r\nexport namespace SetUiLocale {\r\n export type Variables = SetUiLocaleMutationVariables;\r\n export type Mutation = SetUiLocaleMutation;\r\n}\r\n\r\nexport namespace SetDisplayUiExtensionPoints {\r\n export type Variables = SetDisplayUiExtensionPointsMutationVariables;\r\n export type Mutation = SetDisplayUiExtensionPointsMutation;\r\n}\r\n\r\nexport namespace SetContentLanguage {\r\n export type Variables = SetContentLanguageMutationVariables;\r\n export type Mutation = SetContentLanguageMutation;\r\n}\r\n\r\nexport namespace SetUiTheme {\r\n export type Variables = SetUiThemeMutationVariables;\r\n export type Mutation = SetUiThemeMutation;\r\n}\r\n\r\nexport namespace GetNetworkStatus {\r\n export type Variables = GetNetworkStatusQueryVariables;\r\n export type Query = GetNetworkStatusQuery;\r\n export type NetworkStatus = (NonNullable<GetNetworkStatusQuery['networkStatus']>);\r\n}\r\n\r\nexport namespace GetUserStatus {\r\n export type Variables = GetUserStatusQueryVariables;\r\n export type Query = GetUserStatusQuery;\r\n export type UserStatus = (NonNullable<GetUserStatusQuery['userStatus']>);\r\n}\r\n\r\nexport namespace GetUiState {\r\n export type Variables = GetUiStateQueryVariables;\r\n export type Query = GetUiStateQuery;\r\n export type UiState = (NonNullable<GetUiStateQuery['uiState']>);\r\n}\r\n\r\nexport namespace GetClientState {\r\n export type Variables = GetClientStateQueryVariables;\r\n export type Query = GetClientStateQuery;\r\n export type NetworkStatus = (NonNullable<GetClientStateQuery['networkStatus']>);\r\n export type UserStatus = (NonNullable<GetClientStateQuery['userStatus']>);\r\n export type UiState = (NonNullable<GetClientStateQuery['uiState']>);\r\n}\r\n\r\nexport namespace SetActiveChannel {\r\n export type Variables = SetActiveChannelMutationVariables;\r\n export type Mutation = SetActiveChannelMutation;\r\n export type SetActiveChannel = (NonNullable<SetActiveChannelMutation['setActiveChannel']>);\r\n}\r\n\r\nexport namespace UpdateUserChannels {\r\n export type Variables = UpdateUserChannelsMutationVariables;\r\n export type Mutation = UpdateUserChannelsMutation;\r\n export type UpdateUserChannels = (NonNullable<UpdateUserChannelsMutation['updateUserChannels']>);\r\n}\r\n\r\nexport namespace GetCollectionFilters {\r\n export type Variables = GetCollectionFiltersQueryVariables;\r\n export type Query = GetCollectionFiltersQuery;\r\n export type CollectionFilters = NonNullable<(NonNullable<GetCollectionFiltersQuery['collectionFilters']>)[number]>;\r\n}\r\n\r\nexport namespace Collection {\r\n export type Fragment = CollectionFragment;\r\n export type Breadcrumbs = NonNullable<(NonNullable<CollectionFragment['breadcrumbs']>)[number]>;\r\n export type FeaturedAsset = (NonNullable<CollectionFragment['featuredAsset']>);\r\n export type Assets = NonNullable<(NonNullable<CollectionFragment['assets']>)[number]>;\r\n export type Filters = NonNullable<(NonNullable<CollectionFragment['filters']>)[number]>;\r\n export type Translations = NonNullable<(NonNullable<CollectionFragment['translations']>)[number]>;\r\n export type Parent = (NonNullable<CollectionFragment['parent']>);\r\n export type Children = NonNullable<(NonNullable<CollectionFragment['children']>)[number]>;\r\n}\r\n\r\nexport namespace GetCollectionList {\r\n export type Variables = GetCollectionListQueryVariables;\r\n export type Query = GetCollectionListQuery;\r\n export type Collections = (NonNullable<GetCollectionListQuery['collections']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetCollectionListQuery['collections']>)['items']>)[number]>;\r\n export type FeaturedAsset = (NonNullable<NonNullable<(NonNullable<(NonNullable<GetCollectionListQuery['collections']>)['items']>)[number]>['featuredAsset']>);\r\n export type Parent = (NonNullable<NonNullable<(NonNullable<(NonNullable<GetCollectionListQuery['collections']>)['items']>)[number]>['parent']>);\r\n}\r\n\r\nexport namespace GetCollection {\r\n export type Variables = GetCollectionQueryVariables;\r\n export type Query = GetCollectionQuery;\r\n export type Collection = (NonNullable<GetCollectionQuery['collection']>);\r\n}\r\n\r\nexport namespace CreateCollection {\r\n export type Variables = CreateCollectionMutationVariables;\r\n export type Mutation = CreateCollectionMutation;\r\n export type CreateCollection = (NonNullable<CreateCollectionMutation['createCollection']>);\r\n}\r\n\r\nexport namespace UpdateCollection {\r\n export type Variables = UpdateCollectionMutationVariables;\r\n export type Mutation = UpdateCollectionMutation;\r\n export type UpdateCollection = (NonNullable<UpdateCollectionMutation['updateCollection']>);\r\n}\r\n\r\nexport namespace MoveCollection {\r\n export type Variables = MoveCollectionMutationVariables;\r\n export type Mutation = MoveCollectionMutation;\r\n export type MoveCollection = (NonNullable<MoveCollectionMutation['moveCollection']>);\r\n}\r\n\r\nexport namespace DeleteCollection {\r\n export type Variables = DeleteCollectionMutationVariables;\r\n export type Mutation = DeleteCollectionMutation;\r\n export type DeleteCollection = (NonNullable<DeleteCollectionMutation['deleteCollection']>);\r\n}\r\n\r\nexport namespace DeleteCollections {\r\n export type Variables = DeleteCollectionsMutationVariables;\r\n export type Mutation = DeleteCollectionsMutation;\r\n export type DeleteCollections = NonNullable<(NonNullable<DeleteCollectionsMutation['deleteCollections']>)[number]>;\r\n}\r\n\r\nexport namespace GetCollectionContents {\r\n export type Variables = GetCollectionContentsQueryVariables;\r\n export type Query = GetCollectionContentsQuery;\r\n export type Collection = (NonNullable<GetCollectionContentsQuery['collection']>);\r\n export type ProductVariants = (NonNullable<(NonNullable<GetCollectionContentsQuery['collection']>)['productVariants']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<(NonNullable<GetCollectionContentsQuery['collection']>)['productVariants']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace PreviewCollectionContents {\r\n export type Variables = PreviewCollectionContentsQueryVariables;\r\n export type Query = PreviewCollectionContentsQuery;\r\n export type PreviewCollectionVariants = (NonNullable<PreviewCollectionContentsQuery['previewCollectionVariants']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<PreviewCollectionContentsQuery['previewCollectionVariants']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace AssignCollectionsToChannel {\r\n export type Variables = AssignCollectionsToChannelMutationVariables;\r\n export type Mutation = AssignCollectionsToChannelMutation;\r\n export type AssignCollectionsToChannel = NonNullable<(NonNullable<AssignCollectionsToChannelMutation['assignCollectionsToChannel']>)[number]>;\r\n}\r\n\r\nexport namespace RemoveCollectionsFromChannel {\r\n export type Variables = RemoveCollectionsFromChannelMutationVariables;\r\n export type Mutation = RemoveCollectionsFromChannelMutation;\r\n export type RemoveCollectionsFromChannel = NonNullable<(NonNullable<RemoveCollectionsFromChannelMutation['removeCollectionsFromChannel']>)[number]>;\r\n}\r\n\r\nexport namespace Address {\r\n export type Fragment = AddressFragment;\r\n export type Country = (NonNullable<AddressFragment['country']>);\r\n}\r\n\r\nexport namespace Customer {\r\n export type Fragment = CustomerFragment;\r\n export type User = (NonNullable<CustomerFragment['user']>);\r\n export type Addresses = NonNullable<(NonNullable<CustomerFragment['addresses']>)[number]>;\r\n}\r\n\r\nexport namespace CustomerGroup {\r\n export type Fragment = CustomerGroupFragment;\r\n}\r\n\r\nexport namespace GetCustomerList {\r\n export type Variables = GetCustomerListQueryVariables;\r\n export type Query = GetCustomerListQuery;\r\n export type Customers = (NonNullable<GetCustomerListQuery['customers']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetCustomerListQuery['customers']>)['items']>)[number]>;\r\n export type User = (NonNullable<NonNullable<(NonNullable<(NonNullable<GetCustomerListQuery['customers']>)['items']>)[number]>['user']>);\r\n}\r\n\r\nexport namespace GetCustomer {\r\n export type Variables = GetCustomerQueryVariables;\r\n export type Query = GetCustomerQuery;\r\n export type Customer = (NonNullable<GetCustomerQuery['customer']>);\r\n export type Groups = NonNullable<(NonNullable<(NonNullable<GetCustomerQuery['customer']>)['groups']>)[number]>;\r\n export type Orders = (NonNullable<(NonNullable<GetCustomerQuery['customer']>)['orders']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<(NonNullable<GetCustomerQuery['customer']>)['orders']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace CreateCustomer {\r\n export type Variables = CreateCustomerMutationVariables;\r\n export type Mutation = CreateCustomerMutation;\r\n export type CreateCustomer = (NonNullable<CreateCustomerMutation['createCustomer']>);\r\n}\r\n\r\nexport namespace UpdateCustomer {\r\n export type Variables = UpdateCustomerMutationVariables;\r\n export type Mutation = UpdateCustomerMutation;\r\n export type UpdateCustomer = (NonNullable<UpdateCustomerMutation['updateCustomer']>);\r\n}\r\n\r\nexport namespace DeleteCustomer {\r\n export type Variables = DeleteCustomerMutationVariables;\r\n export type Mutation = DeleteCustomerMutation;\r\n export type DeleteCustomer = (NonNullable<DeleteCustomerMutation['deleteCustomer']>);\r\n}\r\n\r\nexport namespace CreateCustomerAddress {\r\n export type Variables = CreateCustomerAddressMutationVariables;\r\n export type Mutation = CreateCustomerAddressMutation;\r\n export type CreateCustomerAddress = (NonNullable<CreateCustomerAddressMutation['createCustomerAddress']>);\r\n}\r\n\r\nexport namespace UpdateCustomerAddress {\r\n export type Variables = UpdateCustomerAddressMutationVariables;\r\n export type Mutation = UpdateCustomerAddressMutation;\r\n export type UpdateCustomerAddress = (NonNullable<UpdateCustomerAddressMutation['updateCustomerAddress']>);\r\n}\r\n\r\nexport namespace DeleteCustomerAddress {\r\n export type Variables = DeleteCustomerAddressMutationVariables;\r\n export type Mutation = DeleteCustomerAddressMutation;\r\n export type DeleteCustomerAddress = (NonNullable<DeleteCustomerAddressMutation['deleteCustomerAddress']>);\r\n}\r\n\r\nexport namespace CreateCustomerGroup {\r\n export type Variables = CreateCustomerGroupMutationVariables;\r\n export type Mutation = CreateCustomerGroupMutation;\r\n export type CreateCustomerGroup = (NonNullable<CreateCustomerGroupMutation['createCustomerGroup']>);\r\n}\r\n\r\nexport namespace UpdateCustomerGroup {\r\n export type Variables = UpdateCustomerGroupMutationVariables;\r\n export type Mutation = UpdateCustomerGroupMutation;\r\n export type UpdateCustomerGroup = (NonNullable<UpdateCustomerGroupMutation['updateCustomerGroup']>);\r\n}\r\n\r\nexport namespace DeleteCustomerGroup {\r\n export type Variables = DeleteCustomerGroupMutationVariables;\r\n export type Mutation = DeleteCustomerGroupMutation;\r\n export type DeleteCustomerGroup = (NonNullable<DeleteCustomerGroupMutation['deleteCustomerGroup']>);\r\n}\r\n\r\nexport namespace GetCustomerGroups {\r\n export type Variables = GetCustomerGroupsQueryVariables;\r\n export type Query = GetCustomerGroupsQuery;\r\n export type CustomerGroups = (NonNullable<GetCustomerGroupsQuery['customerGroups']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetCustomerGroupsQuery['customerGroups']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace GetCustomerGroupWithCustomers {\r\n export type Variables = GetCustomerGroupWithCustomersQueryVariables;\r\n export type Query = GetCustomerGroupWithCustomersQuery;\r\n export type CustomerGroup = (NonNullable<GetCustomerGroupWithCustomersQuery['customerGroup']>);\r\n export type Customers = (NonNullable<(NonNullable<GetCustomerGroupWithCustomersQuery['customerGroup']>)['customers']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<(NonNullable<GetCustomerGroupWithCustomersQuery['customerGroup']>)['customers']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace AddCustomersToGroup {\r\n export type Variables = AddCustomersToGroupMutationVariables;\r\n export type Mutation = AddCustomersToGroupMutation;\r\n export type AddCustomersToGroup = (NonNullable<AddCustomersToGroupMutation['addCustomersToGroup']>);\r\n}\r\n\r\nexport namespace RemoveCustomersFromGroup {\r\n export type Variables = RemoveCustomersFromGroupMutationVariables;\r\n export type Mutation = RemoveCustomersFromGroupMutation;\r\n export type RemoveCustomersFromGroup = (NonNullable<RemoveCustomersFromGroupMutation['removeCustomersFromGroup']>);\r\n}\r\n\r\nexport namespace GetCustomerHistory {\r\n export type Variables = GetCustomerHistoryQueryVariables;\r\n export type Query = GetCustomerHistoryQuery;\r\n export type Customer = (NonNullable<GetCustomerHistoryQuery['customer']>);\r\n export type History = (NonNullable<(NonNullable<GetCustomerHistoryQuery['customer']>)['history']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<(NonNullable<GetCustomerHistoryQuery['customer']>)['history']>)['items']>)[number]>;\r\n export type Administrator = (NonNullable<NonNullable<(NonNullable<(NonNullable<(NonNullable<GetCustomerHistoryQuery['customer']>)['history']>)['items']>)[number]>['administrator']>);\r\n}\r\n\r\nexport namespace AddNoteToCustomer {\r\n export type Variables = AddNoteToCustomerMutationVariables;\r\n export type Mutation = AddNoteToCustomerMutation;\r\n export type AddNoteToCustomer = (NonNullable<AddNoteToCustomerMutation['addNoteToCustomer']>);\r\n}\r\n\r\nexport namespace UpdateCustomerNote {\r\n export type Variables = UpdateCustomerNoteMutationVariables;\r\n export type Mutation = UpdateCustomerNoteMutation;\r\n export type UpdateCustomerNote = (NonNullable<UpdateCustomerNoteMutation['updateCustomerNote']>);\r\n}\r\n\r\nexport namespace DeleteCustomerNote {\r\n export type Variables = DeleteCustomerNoteMutationVariables;\r\n export type Mutation = DeleteCustomerNoteMutation;\r\n export type DeleteCustomerNote = (NonNullable<DeleteCustomerNoteMutation['deleteCustomerNote']>);\r\n}\r\n\r\nexport namespace FacetValue {\r\n export type Fragment = FacetValueFragment;\r\n export type Translations = NonNullable<(NonNullable<FacetValueFragment['translations']>)[number]>;\r\n export type Facet = (NonNullable<FacetValueFragment['facet']>);\r\n}\r\n\r\nexport namespace FacetWithValues {\r\n export type Fragment = FacetWithValuesFragment;\r\n export type Translations = NonNullable<(NonNullable<FacetWithValuesFragment['translations']>)[number]>;\r\n export type Values = NonNullable<(NonNullable<FacetWithValuesFragment['values']>)[number]>;\r\n}\r\n\r\nexport namespace CreateFacet {\r\n export type Variables = CreateFacetMutationVariables;\r\n export type Mutation = CreateFacetMutation;\r\n export type CreateFacet = (NonNullable<CreateFacetMutation['createFacet']>);\r\n}\r\n\r\nexport namespace UpdateFacet {\r\n export type Variables = UpdateFacetMutationVariables;\r\n export type Mutation = UpdateFacetMutation;\r\n export type UpdateFacet = (NonNullable<UpdateFacetMutation['updateFacet']>);\r\n}\r\n\r\nexport namespace DeleteFacet {\r\n export type Variables = DeleteFacetMutationVariables;\r\n export type Mutation = DeleteFacetMutation;\r\n export type DeleteFacet = (NonNullable<DeleteFacetMutation['deleteFacet']>);\r\n}\r\n\r\nexport namespace DeleteFacets {\r\n export type Variables = DeleteFacetsMutationVariables;\r\n export type Mutation = DeleteFacetsMutation;\r\n export type DeleteFacets = NonNullable<(NonNullable<DeleteFacetsMutation['deleteFacets']>)[number]>;\r\n}\r\n\r\nexport namespace CreateFacetValues {\r\n export type Variables = CreateFacetValuesMutationVariables;\r\n export type Mutation = CreateFacetValuesMutation;\r\n export type CreateFacetValues = NonNullable<(NonNullable<CreateFacetValuesMutation['createFacetValues']>)[number]>;\r\n}\r\n\r\nexport namespace UpdateFacetValues {\r\n export type Variables = UpdateFacetValuesMutationVariables;\r\n export type Mutation = UpdateFacetValuesMutation;\r\n export type UpdateFacetValues = NonNullable<(NonNullable<UpdateFacetValuesMutation['updateFacetValues']>)[number]>;\r\n}\r\n\r\nexport namespace DeleteFacetValues {\r\n export type Variables = DeleteFacetValuesMutationVariables;\r\n export type Mutation = DeleteFacetValuesMutation;\r\n export type DeleteFacetValues = NonNullable<(NonNullable<DeleteFacetValuesMutation['deleteFacetValues']>)[number]>;\r\n}\r\n\r\nexport namespace GetFacetList {\r\n export type Variables = GetFacetListQueryVariables;\r\n export type Query = GetFacetListQuery;\r\n export type Facets = (NonNullable<GetFacetListQuery['facets']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetFacetListQuery['facets']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace GetFacetWithValues {\r\n export type Variables = GetFacetWithValuesQueryVariables;\r\n export type Query = GetFacetWithValuesQuery;\r\n export type Facet = (NonNullable<GetFacetWithValuesQuery['facet']>);\r\n}\r\n\r\nexport namespace AssignFacetsToChannel {\r\n export type Variables = AssignFacetsToChannelMutationVariables;\r\n export type Mutation = AssignFacetsToChannelMutation;\r\n export type AssignFacetsToChannel = NonNullable<(NonNullable<AssignFacetsToChannelMutation['assignFacetsToChannel']>)[number]>;\r\n}\r\n\r\nexport namespace RemoveFacetsFromChannel {\r\n export type Variables = RemoveFacetsFromChannelMutationVariables;\r\n export type Mutation = RemoveFacetsFromChannelMutation;\r\n export type RemoveFacetsFromChannel = NonNullable<(NonNullable<RemoveFacetsFromChannelMutation['removeFacetsFromChannel']>)[number]>;\r\n export type FacetInlineFragment = (DiscriminateUnion<NonNullable<(NonNullable<RemoveFacetsFromChannelMutation['removeFacetsFromChannel']>)[number]>, { __typename?: 'Facet' }>);\r\n export type FacetInUseErrorInlineFragment = (DiscriminateUnion<NonNullable<(NonNullable<RemoveFacetsFromChannelMutation['removeFacetsFromChannel']>)[number]>, { __typename?: 'FacetInUseError' }>);\r\n}\r\n\r\nexport namespace Discount {\r\n export type Fragment = DiscountFragment;\r\n}\r\n\r\nexport namespace Payment {\r\n export type Fragment = PaymentFragment;\r\n}\r\n\r\nexport namespace Refund {\r\n export type Fragment = RefundFragment;\r\n}\r\n\r\nexport namespace OrderAddress {\r\n export type Fragment = OrderAddressFragment;\r\n}\r\n\r\nexport namespace Order {\r\n export type Fragment = OrderFragment;\r\n export type Customer = (NonNullable<OrderFragment['customer']>);\r\n export type ShippingLines = NonNullable<(NonNullable<OrderFragment['shippingLines']>)[number]>;\r\n export type ShippingMethod = (NonNullable<NonNullable<(NonNullable<OrderFragment['shippingLines']>)[number]>['shippingMethod']>);\r\n}\r\n\r\nexport namespace Fulfillment {\r\n export type Fragment = FulfillmentFragment;\r\n export type Summary = NonNullable<(NonNullable<FulfillmentFragment['summary']>)[number]>;\r\n export type OrderLine = (NonNullable<NonNullable<(NonNullable<FulfillmentFragment['summary']>)[number]>['orderLine']>);\r\n}\r\n\r\nexport namespace OrderLine {\r\n export type Fragment = OrderLineFragment;\r\n export type FeaturedAsset = (NonNullable<OrderLineFragment['featuredAsset']>);\r\n export type ProductVariant = (NonNullable<OrderLineFragment['productVariant']>);\r\n export type Discounts = NonNullable<(NonNullable<OrderLineFragment['discounts']>)[number]>;\r\n export type Fulfillments = NonNullable<(NonNullable<OrderLineFragment['fulfillments']>)[number]>;\r\n export type Items = NonNullable<(NonNullable<OrderLineFragment['items']>)[number]>;\r\n}\r\n\r\nexport namespace OrderDetail {\r\n export type Fragment = OrderDetailFragment;\r\n export type Customer = (NonNullable<OrderDetailFragment['customer']>);\r\n export type Lines = NonNullable<(NonNullable<OrderDetailFragment['lines']>)[number]>;\r\n export type Surcharges = NonNullable<(NonNullable<OrderDetailFragment['surcharges']>)[number]>;\r\n export type Discounts = NonNullable<(NonNullable<OrderDetailFragment['discounts']>)[number]>;\r\n export type Promotions = NonNullable<(NonNullable<OrderDetailFragment['promotions']>)[number]>;\r\n export type ShippingLines = NonNullable<(NonNullable<OrderDetailFragment['shippingLines']>)[number]>;\r\n export type ShippingMethod = (NonNullable<NonNullable<(NonNullable<OrderDetailFragment['shippingLines']>)[number]>['shippingMethod']>);\r\n export type TaxSummary = NonNullable<(NonNullable<OrderDetailFragment['taxSummary']>)[number]>;\r\n export type ShippingAddress = (NonNullable<OrderDetailFragment['shippingAddress']>);\r\n export type BillingAddress = (NonNullable<OrderDetailFragment['billingAddress']>);\r\n export type Payments = NonNullable<(NonNullable<OrderDetailFragment['payments']>)[number]>;\r\n export type Refunds = NonNullable<(NonNullable<NonNullable<(NonNullable<OrderDetailFragment['payments']>)[number]>['refunds']>)[number]>;\r\n export type OrderItems = NonNullable<(NonNullable<NonNullable<(NonNullable<NonNullable<(NonNullable<OrderDetailFragment['payments']>)[number]>['refunds']>)[number]>['orderItems']>)[number]>;\r\n export type Fulfillments = NonNullable<(NonNullable<OrderDetailFragment['fulfillments']>)[number]>;\r\n export type Modifications = NonNullable<(NonNullable<OrderDetailFragment['modifications']>)[number]>;\r\n export type Payment = (NonNullable<NonNullable<(NonNullable<OrderDetailFragment['modifications']>)[number]>['payment']>);\r\n export type _OrderItems = NonNullable<(NonNullable<NonNullable<(NonNullable<OrderDetailFragment['modifications']>)[number]>['orderItems']>)[number]>;\r\n export type Refund = (NonNullable<NonNullable<(NonNullable<OrderDetailFragment['modifications']>)[number]>['refund']>);\r\n export type _Surcharges = NonNullable<(NonNullable<NonNullable<(NonNullable<OrderDetailFragment['modifications']>)[number]>['surcharges']>)[number]>;\r\n}\r\n\r\nexport namespace GetOrderList {\r\n export type Variables = GetOrderListQueryVariables;\r\n export type Query = GetOrderListQuery;\r\n export type Orders = (NonNullable<GetOrderListQuery['orders']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetOrderListQuery['orders']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace GetOrder {\r\n export type Variables = GetOrderQueryVariables;\r\n export type Query = GetOrderQuery;\r\n export type Order = (NonNullable<GetOrderQuery['order']>);\r\n}\r\n\r\nexport namespace SettlePayment {\r\n export type Variables = SettlePaymentMutationVariables;\r\n export type Mutation = SettlePaymentMutation;\r\n export type SettlePayment = (NonNullable<SettlePaymentMutation['settlePayment']>);\r\n export type SettlePaymentErrorInlineFragment = (DiscriminateUnion<(NonNullable<SettlePaymentMutation['settlePayment']>), { __typename?: 'SettlePaymentError' }>);\r\n export type PaymentStateTransitionErrorInlineFragment = (DiscriminateUnion<(NonNullable<SettlePaymentMutation['settlePayment']>), { __typename?: 'PaymentStateTransitionError' }>);\r\n export type OrderStateTransitionErrorInlineFragment = (DiscriminateUnion<(NonNullable<SettlePaymentMutation['settlePayment']>), { __typename?: 'OrderStateTransitionError' }>);\r\n}\r\n\r\nexport namespace CancelPayment {\r\n export type Variables = CancelPaymentMutationVariables;\r\n export type Mutation = CancelPaymentMutation;\r\n export type CancelPayment = (NonNullable<CancelPaymentMutation['cancelPayment']>);\r\n export type CancelPaymentErrorInlineFragment = (DiscriminateUnion<(NonNullable<CancelPaymentMutation['cancelPayment']>), { __typename?: 'CancelPaymentError' }>);\r\n export type PaymentStateTransitionErrorInlineFragment = (DiscriminateUnion<(NonNullable<CancelPaymentMutation['cancelPayment']>), { __typename?: 'PaymentStateTransitionError' }>);\r\n}\r\n\r\nexport namespace TransitionPaymentToState {\r\n export type Variables = TransitionPaymentToStateMutationVariables;\r\n export type Mutation = TransitionPaymentToStateMutation;\r\n export type TransitionPaymentToState = (NonNullable<TransitionPaymentToStateMutation['transitionPaymentToState']>);\r\n export type PaymentStateTransitionErrorInlineFragment = (DiscriminateUnion<(NonNullable<TransitionPaymentToStateMutation['transitionPaymentToState']>), { __typename?: 'PaymentStateTransitionError' }>);\r\n}\r\n\r\nexport namespace CreateFulfillment {\r\n export type Variables = CreateFulfillmentMutationVariables;\r\n export type Mutation = CreateFulfillmentMutation;\r\n export type AddFulfillmentToOrder = (NonNullable<CreateFulfillmentMutation['addFulfillmentToOrder']>);\r\n export type CreateFulfillmentErrorInlineFragment = (DiscriminateUnion<(NonNullable<CreateFulfillmentMutation['addFulfillmentToOrder']>), { __typename?: 'CreateFulfillmentError' }>);\r\n export type FulfillmentStateTransitionErrorInlineFragment = (DiscriminateUnion<(NonNullable<CreateFulfillmentMutation['addFulfillmentToOrder']>), { __typename?: 'FulfillmentStateTransitionError' }>);\r\n}\r\n\r\nexport namespace CancelOrder {\r\n export type Variables = CancelOrderMutationVariables;\r\n export type Mutation = CancelOrderMutation;\r\n export type CancelOrder = (NonNullable<CancelOrderMutation['cancelOrder']>);\r\n}\r\n\r\nexport namespace RefundOrder {\r\n export type Variables = RefundOrderMutationVariables;\r\n export type Mutation = RefundOrderMutation;\r\n export type RefundOrder = (NonNullable<RefundOrderMutation['refundOrder']>);\r\n}\r\n\r\nexport namespace SettleRefund {\r\n export type Variables = SettleRefundMutationVariables;\r\n export type Mutation = SettleRefundMutation;\r\n export type SettleRefund = (NonNullable<SettleRefundMutation['settleRefund']>);\r\n}\r\n\r\nexport namespace GetOrderHistory {\r\n export type Variables = GetOrderHistoryQueryVariables;\r\n export type Query = GetOrderHistoryQuery;\r\n export type Order = (NonNullable<GetOrderHistoryQuery['order']>);\r\n export type History = (NonNullable<(NonNullable<GetOrderHistoryQuery['order']>)['history']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<(NonNullable<GetOrderHistoryQuery['order']>)['history']>)['items']>)[number]>;\r\n export type Administrator = (NonNullable<NonNullable<(NonNullable<(NonNullable<(NonNullable<GetOrderHistoryQuery['order']>)['history']>)['items']>)[number]>['administrator']>);\r\n}\r\n\r\nexport namespace AddNoteToOrder {\r\n export type Variables = AddNoteToOrderMutationVariables;\r\n export type Mutation = AddNoteToOrderMutation;\r\n export type AddNoteToOrder = (NonNullable<AddNoteToOrderMutation['addNoteToOrder']>);\r\n}\r\n\r\nexport namespace UpdateOrderNote {\r\n export type Variables = UpdateOrderNoteMutationVariables;\r\n export type Mutation = UpdateOrderNoteMutation;\r\n export type UpdateOrderNote = (NonNullable<UpdateOrderNoteMutation['updateOrderNote']>);\r\n}\r\n\r\nexport namespace DeleteOrderNote {\r\n export type Variables = DeleteOrderNoteMutationVariables;\r\n export type Mutation = DeleteOrderNoteMutation;\r\n export type DeleteOrderNote = (NonNullable<DeleteOrderNoteMutation['deleteOrderNote']>);\r\n}\r\n\r\nexport namespace TransitionOrderToState {\r\n export type Variables = TransitionOrderToStateMutationVariables;\r\n export type Mutation = TransitionOrderToStateMutation;\r\n export type TransitionOrderToState = (NonNullable<TransitionOrderToStateMutation['transitionOrderToState']>);\r\n export type OrderStateTransitionErrorInlineFragment = (DiscriminateUnion<(NonNullable<TransitionOrderToStateMutation['transitionOrderToState']>), { __typename?: 'OrderStateTransitionError' }>);\r\n}\r\n\r\nexport namespace UpdateOrderCustomFields {\r\n export type Variables = UpdateOrderCustomFieldsMutationVariables;\r\n export type Mutation = UpdateOrderCustomFieldsMutation;\r\n export type SetOrderCustomFields = (NonNullable<UpdateOrderCustomFieldsMutation['setOrderCustomFields']>);\r\n}\r\n\r\nexport namespace TransitionFulfillmentToState {\r\n export type Variables = TransitionFulfillmentToStateMutationVariables;\r\n export type Mutation = TransitionFulfillmentToStateMutation;\r\n export type TransitionFulfillmentToState = (NonNullable<TransitionFulfillmentToStateMutation['transitionFulfillmentToState']>);\r\n export type FulfillmentStateTransitionErrorInlineFragment = (DiscriminateUnion<(NonNullable<TransitionFulfillmentToStateMutation['transitionFulfillmentToState']>), { __typename?: 'FulfillmentStateTransitionError' }>);\r\n}\r\n\r\nexport namespace GetOrderSummary {\r\n export type Variables = GetOrderSummaryQueryVariables;\r\n export type Query = GetOrderSummaryQuery;\r\n export type Orders = (NonNullable<GetOrderSummaryQuery['orders']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetOrderSummaryQuery['orders']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace ModifyOrder {\r\n export type Variables = ModifyOrderMutationVariables;\r\n export type Mutation = ModifyOrderMutation;\r\n export type ModifyOrder = (NonNullable<ModifyOrderMutation['modifyOrder']>);\r\n}\r\n\r\nexport namespace AddManualPayment {\r\n export type Variables = AddManualPaymentMutationVariables;\r\n export type Mutation = AddManualPaymentMutation;\r\n export type AddManualPaymentToOrder = (NonNullable<AddManualPaymentMutation['addManualPaymentToOrder']>);\r\n}\r\n\r\nexport namespace CreateDraftOrder {\r\n export type Variables = CreateDraftOrderMutationVariables;\r\n export type Mutation = CreateDraftOrderMutation;\r\n export type CreateDraftOrder = (NonNullable<CreateDraftOrderMutation['createDraftOrder']>);\r\n}\r\n\r\nexport namespace DeleteDraftOrder {\r\n export type Variables = DeleteDraftOrderMutationVariables;\r\n export type Mutation = DeleteDraftOrderMutation;\r\n export type DeleteDraftOrder = (NonNullable<DeleteDraftOrderMutation['deleteDraftOrder']>);\r\n}\r\n\r\nexport namespace AddItemToDraftOrder {\r\n export type Variables = AddItemToDraftOrderMutationVariables;\r\n export type Mutation = AddItemToDraftOrderMutation;\r\n export type AddItemToDraftOrder = (NonNullable<AddItemToDraftOrderMutation['addItemToDraftOrder']>);\r\n}\r\n\r\nexport namespace AdjustDraftOrderLine {\r\n export type Variables = AdjustDraftOrderLineMutationVariables;\r\n export type Mutation = AdjustDraftOrderLineMutation;\r\n export type AdjustDraftOrderLine = (NonNullable<AdjustDraftOrderLineMutation['adjustDraftOrderLine']>);\r\n}\r\n\r\nexport namespace RemoveDraftOrderLine {\r\n export type Variables = RemoveDraftOrderLineMutationVariables;\r\n export type Mutation = RemoveDraftOrderLineMutation;\r\n export type RemoveDraftOrderLine = (NonNullable<RemoveDraftOrderLineMutation['removeDraftOrderLine']>);\r\n}\r\n\r\nexport namespace SetCustomerForDraftOrder {\r\n export type Variables = SetCustomerForDraftOrderMutationVariables;\r\n export type Mutation = SetCustomerForDraftOrderMutation;\r\n export type SetCustomerForDraftOrder = (NonNullable<SetCustomerForDraftOrderMutation['setCustomerForDraftOrder']>);\r\n}\r\n\r\nexport namespace SetDraftOrderShippingAddress {\r\n export type Variables = SetDraftOrderShippingAddressMutationVariables;\r\n export type Mutation = SetDraftOrderShippingAddressMutation;\r\n export type SetDraftOrderShippingAddress = (NonNullable<SetDraftOrderShippingAddressMutation['setDraftOrderShippingAddress']>);\r\n}\r\n\r\nexport namespace SetDraftOrderBillingAddress {\r\n export type Variables = SetDraftOrderBillingAddressMutationVariables;\r\n export type Mutation = SetDraftOrderBillingAddressMutation;\r\n export type SetDraftOrderBillingAddress = (NonNullable<SetDraftOrderBillingAddressMutation['setDraftOrderBillingAddress']>);\r\n}\r\n\r\nexport namespace ApplyCouponCodeToDraftOrder {\r\n export type Variables = ApplyCouponCodeToDraftOrderMutationVariables;\r\n export type Mutation = ApplyCouponCodeToDraftOrderMutation;\r\n export type ApplyCouponCodeToDraftOrder = (NonNullable<ApplyCouponCodeToDraftOrderMutation['applyCouponCodeToDraftOrder']>);\r\n}\r\n\r\nexport namespace RemoveCouponCodeFromDraftOrder {\r\n export type Variables = RemoveCouponCodeFromDraftOrderMutationVariables;\r\n export type Mutation = RemoveCouponCodeFromDraftOrderMutation;\r\n export type RemoveCouponCodeFromDraftOrder = (NonNullable<RemoveCouponCodeFromDraftOrderMutation['removeCouponCodeFromDraftOrder']>);\r\n}\r\n\r\nexport namespace DraftOrderEligibleShippingMethods {\r\n export type Variables = DraftOrderEligibleShippingMethodsQueryVariables;\r\n export type Query = DraftOrderEligibleShippingMethodsQuery;\r\n export type EligibleShippingMethodsForDraftOrder = NonNullable<(NonNullable<DraftOrderEligibleShippingMethodsQuery['eligibleShippingMethodsForDraftOrder']>)[number]>;\r\n}\r\n\r\nexport namespace SetDraftOrderShippingMethod {\r\n export type Variables = SetDraftOrderShippingMethodMutationVariables;\r\n export type Mutation = SetDraftOrderShippingMethodMutation;\r\n export type SetDraftOrderShippingMethod = (NonNullable<SetDraftOrderShippingMethodMutation['setDraftOrderShippingMethod']>);\r\n}\r\n\r\nexport namespace Asset {\r\n export type Fragment = AssetFragment;\r\n export type FocalPoint = (NonNullable<AssetFragment['focalPoint']>);\r\n}\r\n\r\nexport namespace Tag {\r\n export type Fragment = TagFragment;\r\n}\r\n\r\nexport namespace ProductOptionGroup {\r\n export type Fragment = ProductOptionGroupFragment;\r\n export type Translations = NonNullable<(NonNullable<ProductOptionGroupFragment['translations']>)[number]>;\r\n}\r\n\r\nexport namespace ProductOption {\r\n export type Fragment = ProductOptionFragment;\r\n export type Translations = NonNullable<(NonNullable<ProductOptionFragment['translations']>)[number]>;\r\n}\r\n\r\nexport namespace ProductVariant {\r\n export type Fragment = ProductVariantFragment;\r\n export type TaxRateApplied = (NonNullable<ProductVariantFragment['taxRateApplied']>);\r\n export type TaxCategory = (NonNullable<ProductVariantFragment['taxCategory']>);\r\n export type Options = NonNullable<(NonNullable<ProductVariantFragment['options']>)[number]>;\r\n export type FacetValues = NonNullable<(NonNullable<ProductVariantFragment['facetValues']>)[number]>;\r\n export type Facet = (NonNullable<NonNullable<(NonNullable<ProductVariantFragment['facetValues']>)[number]>['facet']>);\r\n export type FeaturedAsset = (NonNullable<ProductVariantFragment['featuredAsset']>);\r\n export type Assets = NonNullable<(NonNullable<ProductVariantFragment['assets']>)[number]>;\r\n export type Translations = NonNullable<(NonNullable<ProductVariantFragment['translations']>)[number]>;\r\n export type Channels = NonNullable<(NonNullable<ProductVariantFragment['channels']>)[number]>;\r\n}\r\n\r\nexport namespace ProductDetail {\r\n export type Fragment = ProductDetailFragment;\r\n export type FeaturedAsset = (NonNullable<ProductDetailFragment['featuredAsset']>);\r\n export type Assets = NonNullable<(NonNullable<ProductDetailFragment['assets']>)[number]>;\r\n export type Translations = NonNullable<(NonNullable<ProductDetailFragment['translations']>)[number]>;\r\n export type OptionGroups = NonNullable<(NonNullable<ProductDetailFragment['optionGroups']>)[number]>;\r\n export type FacetValues = NonNullable<(NonNullable<ProductDetailFragment['facetValues']>)[number]>;\r\n export type Facet = (NonNullable<NonNullable<(NonNullable<ProductDetailFragment['facetValues']>)[number]>['facet']>);\r\n export type Channels = NonNullable<(NonNullable<ProductDetailFragment['channels']>)[number]>;\r\n}\r\n\r\nexport namespace ProductOptionGroupWithOptions {\r\n export type Fragment = ProductOptionGroupWithOptionsFragment;\r\n export type Translations = NonNullable<(NonNullable<ProductOptionGroupWithOptionsFragment['translations']>)[number]>;\r\n export type Options = NonNullable<(NonNullable<ProductOptionGroupWithOptionsFragment['options']>)[number]>;\r\n export type _Translations = NonNullable<(NonNullable<NonNullable<(NonNullable<ProductOptionGroupWithOptionsFragment['options']>)[number]>['translations']>)[number]>;\r\n}\r\n\r\nexport namespace UpdateProduct {\r\n export type Variables = UpdateProductMutationVariables;\r\n export type Mutation = UpdateProductMutation;\r\n export type UpdateProduct = (NonNullable<UpdateProductMutation['updateProduct']>);\r\n export type VariantList = (NonNullable<(NonNullable<UpdateProductMutation['updateProduct']>)['variantList']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<(NonNullable<UpdateProductMutation['updateProduct']>)['variantList']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace CreateProduct {\r\n export type Variables = CreateProductMutationVariables;\r\n export type Mutation = CreateProductMutation;\r\n export type CreateProduct = (NonNullable<CreateProductMutation['createProduct']>);\r\n export type VariantList = (NonNullable<(NonNullable<CreateProductMutation['createProduct']>)['variantList']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<(NonNullable<CreateProductMutation['createProduct']>)['variantList']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace DeleteProduct {\r\n export type Variables = DeleteProductMutationVariables;\r\n export type Mutation = DeleteProductMutation;\r\n export type DeleteProduct = (NonNullable<DeleteProductMutation['deleteProduct']>);\r\n}\r\n\r\nexport namespace DeleteProducts {\r\n export type Variables = DeleteProductsMutationVariables;\r\n export type Mutation = DeleteProductsMutation;\r\n export type DeleteProducts = NonNullable<(NonNullable<DeleteProductsMutation['deleteProducts']>)[number]>;\r\n}\r\n\r\nexport namespace CreateProductVariants {\r\n export type Variables = CreateProductVariantsMutationVariables;\r\n export type Mutation = CreateProductVariantsMutation;\r\n export type CreateProductVariants = NonNullable<(NonNullable<CreateProductVariantsMutation['createProductVariants']>)[number]>;\r\n}\r\n\r\nexport namespace UpdateProductVariants {\r\n export type Variables = UpdateProductVariantsMutationVariables;\r\n export type Mutation = UpdateProductVariantsMutation;\r\n export type UpdateProductVariants = NonNullable<(NonNullable<UpdateProductVariantsMutation['updateProductVariants']>)[number]>;\r\n}\r\n\r\nexport namespace CreateProductOptionGroup {\r\n export type Variables = CreateProductOptionGroupMutationVariables;\r\n export type Mutation = CreateProductOptionGroupMutation;\r\n export type CreateProductOptionGroup = (NonNullable<CreateProductOptionGroupMutation['createProductOptionGroup']>);\r\n}\r\n\r\nexport namespace GetProductOptionGroup {\r\n export type Variables = GetProductOptionGroupQueryVariables;\r\n export type Query = GetProductOptionGroupQuery;\r\n export type ProductOptionGroup = (NonNullable<GetProductOptionGroupQuery['productOptionGroup']>);\r\n}\r\n\r\nexport namespace AddOptionToGroup {\r\n export type Variables = AddOptionToGroupMutationVariables;\r\n export type Mutation = AddOptionToGroupMutation;\r\n export type CreateProductOption = (NonNullable<AddOptionToGroupMutation['createProductOption']>);\r\n}\r\n\r\nexport namespace AddOptionGroupToProduct {\r\n export type Variables = AddOptionGroupToProductMutationVariables;\r\n export type Mutation = AddOptionGroupToProductMutation;\r\n export type AddOptionGroupToProduct = (NonNullable<AddOptionGroupToProductMutation['addOptionGroupToProduct']>);\r\n export type OptionGroups = NonNullable<(NonNullable<(NonNullable<AddOptionGroupToProductMutation['addOptionGroupToProduct']>)['optionGroups']>)[number]>;\r\n export type Options = NonNullable<(NonNullable<NonNullable<(NonNullable<(NonNullable<AddOptionGroupToProductMutation['addOptionGroupToProduct']>)['optionGroups']>)[number]>['options']>)[number]>;\r\n}\r\n\r\nexport namespace RemoveOptionGroupFromProduct {\r\n export type Variables = RemoveOptionGroupFromProductMutationVariables;\r\n export type Mutation = RemoveOptionGroupFromProductMutation;\r\n export type RemoveOptionGroupFromProduct = (NonNullable<RemoveOptionGroupFromProductMutation['removeOptionGroupFromProduct']>);\r\n export type ProductInlineFragment = (DiscriminateUnion<(NonNullable<RemoveOptionGroupFromProductMutation['removeOptionGroupFromProduct']>), { __typename?: 'Product' }>);\r\n export type OptionGroups = NonNullable<(NonNullable<(DiscriminateUnion<(NonNullable<RemoveOptionGroupFromProductMutation['removeOptionGroupFromProduct']>), { __typename?: 'Product' }>)['optionGroups']>)[number]>;\r\n export type Options = NonNullable<(NonNullable<NonNullable<(NonNullable<(DiscriminateUnion<(NonNullable<RemoveOptionGroupFromProductMutation['removeOptionGroupFromProduct']>), { __typename?: 'Product' }>)['optionGroups']>)[number]>['options']>)[number]>;\r\n}\r\n\r\nexport namespace GetProductWithVariants {\r\n export type Variables = GetProductWithVariantsQueryVariables;\r\n export type Query = GetProductWithVariantsQuery;\r\n export type Product = (NonNullable<GetProductWithVariantsQuery['product']>);\r\n export type VariantList = (NonNullable<(NonNullable<GetProductWithVariantsQuery['product']>)['variantList']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<(NonNullable<GetProductWithVariantsQuery['product']>)['variantList']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace GetProductSimple {\r\n export type Variables = GetProductSimpleQueryVariables;\r\n export type Query = GetProductSimpleQuery;\r\n export type Product = (NonNullable<GetProductSimpleQuery['product']>);\r\n export type FeaturedAsset = (NonNullable<(NonNullable<GetProductSimpleQuery['product']>)['featuredAsset']>);\r\n}\r\n\r\nexport namespace GetProductList {\r\n export type Variables = GetProductListQueryVariables;\r\n export type Query = GetProductListQuery;\r\n export type Products = (NonNullable<GetProductListQuery['products']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetProductListQuery['products']>)['items']>)[number]>;\r\n export type FeaturedAsset = (NonNullable<NonNullable<(NonNullable<(NonNullable<GetProductListQuery['products']>)['items']>)[number]>['featuredAsset']>);\r\n}\r\n\r\nexport namespace GetProductOptionGroups {\r\n export type Variables = GetProductOptionGroupsQueryVariables;\r\n export type Query = GetProductOptionGroupsQuery;\r\n export type ProductOptionGroups = NonNullable<(NonNullable<GetProductOptionGroupsQuery['productOptionGroups']>)[number]>;\r\n export type Options = NonNullable<(NonNullable<NonNullable<(NonNullable<GetProductOptionGroupsQuery['productOptionGroups']>)[number]>['options']>)[number]>;\r\n}\r\n\r\nexport namespace GetAssetList {\r\n export type Variables = GetAssetListQueryVariables;\r\n export type Query = GetAssetListQuery;\r\n export type Assets = (NonNullable<GetAssetListQuery['assets']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetAssetListQuery['assets']>)['items']>)[number]>;\r\n export type Tags = NonNullable<(NonNullable<NonNullable<(NonNullable<(NonNullable<GetAssetListQuery['assets']>)['items']>)[number]>['tags']>)[number]>;\r\n}\r\n\r\nexport namespace GetAsset {\r\n export type Variables = GetAssetQueryVariables;\r\n export type Query = GetAssetQuery;\r\n export type Asset = (NonNullable<GetAssetQuery['asset']>);\r\n export type Tags = NonNullable<(NonNullable<(NonNullable<GetAssetQuery['asset']>)['tags']>)[number]>;\r\n}\r\n\r\nexport namespace CreateAssets {\r\n export type Variables = CreateAssetsMutationVariables;\r\n export type Mutation = CreateAssetsMutation;\r\n export type CreateAssets = NonNullable<(NonNullable<CreateAssetsMutation['createAssets']>)[number]>;\r\n export type AssetInlineFragment = (DiscriminateUnion<NonNullable<(NonNullable<CreateAssetsMutation['createAssets']>)[number]>, { __typename?: 'Asset' }>);\r\n export type Tags = NonNullable<(NonNullable<(DiscriminateUnion<NonNullable<(NonNullable<CreateAssetsMutation['createAssets']>)[number]>, { __typename?: 'Asset' }>)['tags']>)[number]>;\r\n export type ErrorResultInlineFragment = (DiscriminateUnion<NonNullable<(NonNullable<CreateAssetsMutation['createAssets']>)[number]>, { __typename?: 'ErrorResult' }>);\r\n}\r\n\r\nexport namespace UpdateAsset {\r\n export type Variables = UpdateAssetMutationVariables;\r\n export type Mutation = UpdateAssetMutation;\r\n export type UpdateAsset = (NonNullable<UpdateAssetMutation['updateAsset']>);\r\n export type Tags = NonNullable<(NonNullable<(NonNullable<UpdateAssetMutation['updateAsset']>)['tags']>)[number]>;\r\n}\r\n\r\nexport namespace DeleteAssets {\r\n export type Variables = DeleteAssetsMutationVariables;\r\n export type Mutation = DeleteAssetsMutation;\r\n export type DeleteAssets = (NonNullable<DeleteAssetsMutation['deleteAssets']>);\r\n}\r\n\r\nexport namespace SearchProducts {\r\n export type Variables = SearchProductsQueryVariables;\r\n export type Query = SearchProductsQuery;\r\n export type Search = (NonNullable<SearchProductsQuery['search']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<SearchProductsQuery['search']>)['items']>)[number]>;\r\n export type ProductAsset = (NonNullable<NonNullable<(NonNullable<(NonNullable<SearchProductsQuery['search']>)['items']>)[number]>['productAsset']>);\r\n export type FocalPoint = (NonNullable<(NonNullable<NonNullable<(NonNullable<(NonNullable<SearchProductsQuery['search']>)['items']>)[number]>['productAsset']>)['focalPoint']>);\r\n export type ProductVariantAsset = (NonNullable<NonNullable<(NonNullable<(NonNullable<SearchProductsQuery['search']>)['items']>)[number]>['productVariantAsset']>);\r\n export type _FocalPoint = (NonNullable<(NonNullable<NonNullable<(NonNullable<(NonNullable<SearchProductsQuery['search']>)['items']>)[number]>['productVariantAsset']>)['focalPoint']>);\r\n export type FacetValues = NonNullable<(NonNullable<(NonNullable<SearchProductsQuery['search']>)['facetValues']>)[number]>;\r\n export type FacetValue = (NonNullable<NonNullable<(NonNullable<(NonNullable<SearchProductsQuery['search']>)['facetValues']>)[number]>['facetValue']>);\r\n export type Facet = (NonNullable<(NonNullable<NonNullable<(NonNullable<(NonNullable<SearchProductsQuery['search']>)['facetValues']>)[number]>['facetValue']>)['facet']>);\r\n}\r\n\r\nexport namespace ProductSelectorSearch {\r\n export type Variables = ProductSelectorSearchQueryVariables;\r\n export type Query = ProductSelectorSearchQuery;\r\n export type Search = (NonNullable<ProductSelectorSearchQuery['search']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<ProductSelectorSearchQuery['search']>)['items']>)[number]>;\r\n export type ProductAsset = (NonNullable<NonNullable<(NonNullable<(NonNullable<ProductSelectorSearchQuery['search']>)['items']>)[number]>['productAsset']>);\r\n export type FocalPoint = (NonNullable<(NonNullable<NonNullable<(NonNullable<(NonNullable<ProductSelectorSearchQuery['search']>)['items']>)[number]>['productAsset']>)['focalPoint']>);\r\n export type Price = (NonNullable<NonNullable<(NonNullable<(NonNullable<ProductSelectorSearchQuery['search']>)['items']>)[number]>['price']>);\r\n export type SinglePriceInlineFragment = (DiscriminateUnion<(NonNullable<NonNullable<(NonNullable<(NonNullable<ProductSelectorSearchQuery['search']>)['items']>)[number]>['price']>), { __typename?: 'SinglePrice' }>);\r\n export type PriceWithTax = (NonNullable<NonNullable<(NonNullable<(NonNullable<ProductSelectorSearchQuery['search']>)['items']>)[number]>['priceWithTax']>);\r\n export type _SinglePriceInlineFragment = (DiscriminateUnion<(NonNullable<NonNullable<(NonNullable<(NonNullable<ProductSelectorSearchQuery['search']>)['items']>)[number]>['priceWithTax']>), { __typename?: 'SinglePrice' }>);\r\n}\r\n\r\nexport namespace UpdateProductOptionGroup {\r\n export type Variables = UpdateProductOptionGroupMutationVariables;\r\n export type Mutation = UpdateProductOptionGroupMutation;\r\n export type UpdateProductOptionGroup = (NonNullable<UpdateProductOptionGroupMutation['updateProductOptionGroup']>);\r\n}\r\n\r\nexport namespace UpdateProductOption {\r\n export type Variables = UpdateProductOptionMutationVariables;\r\n export type Mutation = UpdateProductOptionMutation;\r\n export type UpdateProductOption = (NonNullable<UpdateProductOptionMutation['updateProductOption']>);\r\n}\r\n\r\nexport namespace DeleteProductOption {\r\n export type Variables = DeleteProductOptionMutationVariables;\r\n export type Mutation = DeleteProductOptionMutation;\r\n export type DeleteProductOption = (NonNullable<DeleteProductOptionMutation['deleteProductOption']>);\r\n}\r\n\r\nexport namespace DeleteProductVariant {\r\n export type Variables = DeleteProductVariantMutationVariables;\r\n export type Mutation = DeleteProductVariantMutation;\r\n export type DeleteProductVariant = (NonNullable<DeleteProductVariantMutation['deleteProductVariant']>);\r\n}\r\n\r\nexport namespace GetProductVariantOptions {\r\n export type Variables = GetProductVariantOptionsQueryVariables;\r\n export type Query = GetProductVariantOptionsQuery;\r\n export type Product = (NonNullable<GetProductVariantOptionsQuery['product']>);\r\n export type OptionGroups = NonNullable<(NonNullable<(NonNullable<GetProductVariantOptionsQuery['product']>)['optionGroups']>)[number]>;\r\n export type Options = NonNullable<(NonNullable<NonNullable<(NonNullable<(NonNullable<GetProductVariantOptionsQuery['product']>)['optionGroups']>)[number]>['options']>)[number]>;\r\n export type Variants = NonNullable<(NonNullable<(NonNullable<GetProductVariantOptionsQuery['product']>)['variants']>)[number]>;\r\n export type _Options = NonNullable<(NonNullable<NonNullable<(NonNullable<(NonNullable<GetProductVariantOptionsQuery['product']>)['variants']>)[number]>['options']>)[number]>;\r\n}\r\n\r\nexport namespace AssignProductsToChannel {\r\n export type Variables = AssignProductsToChannelMutationVariables;\r\n export type Mutation = AssignProductsToChannelMutation;\r\n export type AssignProductsToChannel = NonNullable<(NonNullable<AssignProductsToChannelMutation['assignProductsToChannel']>)[number]>;\r\n export type Channels = NonNullable<(NonNullable<NonNullable<(NonNullable<AssignProductsToChannelMutation['assignProductsToChannel']>)[number]>['channels']>)[number]>;\r\n}\r\n\r\nexport namespace AssignVariantsToChannel {\r\n export type Variables = AssignVariantsToChannelMutationVariables;\r\n export type Mutation = AssignVariantsToChannelMutation;\r\n export type AssignProductVariantsToChannel = NonNullable<(NonNullable<AssignVariantsToChannelMutation['assignProductVariantsToChannel']>)[number]>;\r\n export type Channels = NonNullable<(NonNullable<NonNullable<(NonNullable<AssignVariantsToChannelMutation['assignProductVariantsToChannel']>)[number]>['channels']>)[number]>;\r\n}\r\n\r\nexport namespace RemoveProductsFromChannel {\r\n export type Variables = RemoveProductsFromChannelMutationVariables;\r\n export type Mutation = RemoveProductsFromChannelMutation;\r\n export type RemoveProductsFromChannel = NonNullable<(NonNullable<RemoveProductsFromChannelMutation['removeProductsFromChannel']>)[number]>;\r\n export type Channels = NonNullable<(NonNullable<NonNullable<(NonNullable<RemoveProductsFromChannelMutation['removeProductsFromChannel']>)[number]>['channels']>)[number]>;\r\n}\r\n\r\nexport namespace RemoveVariantsFromChannel {\r\n export type Variables = RemoveVariantsFromChannelMutationVariables;\r\n export type Mutation = RemoveVariantsFromChannelMutation;\r\n export type RemoveProductVariantsFromChannel = NonNullable<(NonNullable<RemoveVariantsFromChannelMutation['removeProductVariantsFromChannel']>)[number]>;\r\n export type Channels = NonNullable<(NonNullable<NonNullable<(NonNullable<RemoveVariantsFromChannelMutation['removeProductVariantsFromChannel']>)[number]>['channels']>)[number]>;\r\n}\r\n\r\nexport namespace GetProductVariant {\r\n export type Variables = GetProductVariantQueryVariables;\r\n export type Query = GetProductVariantQuery;\r\n export type ProductVariant = (NonNullable<GetProductVariantQuery['productVariant']>);\r\n export type FeaturedAsset = (NonNullable<(NonNullable<GetProductVariantQuery['productVariant']>)['featuredAsset']>);\r\n export type FocalPoint = (NonNullable<(NonNullable<(NonNullable<GetProductVariantQuery['productVariant']>)['featuredAsset']>)['focalPoint']>);\r\n export type Product = (NonNullable<(NonNullable<GetProductVariantQuery['productVariant']>)['product']>);\r\n export type _FeaturedAsset = (NonNullable<(NonNullable<(NonNullable<GetProductVariantQuery['productVariant']>)['product']>)['featuredAsset']>);\r\n export type _FocalPoint = (NonNullable<(NonNullable<(NonNullable<(NonNullable<GetProductVariantQuery['productVariant']>)['product']>)['featuredAsset']>)['focalPoint']>);\r\n}\r\n\r\nexport namespace GetProductVariantListSimple {\r\n export type Variables = GetProductVariantListSimpleQueryVariables;\r\n export type Query = GetProductVariantListSimpleQuery;\r\n export type ProductVariants = (NonNullable<GetProductVariantListSimpleQuery['productVariants']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetProductVariantListSimpleQuery['productVariants']>)['items']>)[number]>;\r\n export type FeaturedAsset = (NonNullable<NonNullable<(NonNullable<(NonNullable<GetProductVariantListSimpleQuery['productVariants']>)['items']>)[number]>['featuredAsset']>);\r\n export type FocalPoint = (NonNullable<(NonNullable<NonNullable<(NonNullable<(NonNullable<GetProductVariantListSimpleQuery['productVariants']>)['items']>)[number]>['featuredAsset']>)['focalPoint']>);\r\n export type Product = (NonNullable<NonNullable<(NonNullable<(NonNullable<GetProductVariantListSimpleQuery['productVariants']>)['items']>)[number]>['product']>);\r\n export type _FeaturedAsset = (NonNullable<(NonNullable<NonNullable<(NonNullable<(NonNullable<GetProductVariantListSimpleQuery['productVariants']>)['items']>)[number]>['product']>)['featuredAsset']>);\r\n export type _FocalPoint = (NonNullable<(NonNullable<(NonNullable<NonNullable<(NonNullable<(NonNullable<GetProductVariantListSimpleQuery['productVariants']>)['items']>)[number]>['product']>)['featuredAsset']>)['focalPoint']>);\r\n}\r\n\r\nexport namespace GetProductVariantList {\r\n export type Variables = GetProductVariantListQueryVariables;\r\n export type Query = GetProductVariantListQuery;\r\n export type ProductVariants = (NonNullable<GetProductVariantListQuery['productVariants']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetProductVariantListQuery['productVariants']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace GetTagList {\r\n export type Variables = GetTagListQueryVariables;\r\n export type Query = GetTagListQuery;\r\n export type Tags = (NonNullable<GetTagListQuery['tags']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetTagListQuery['tags']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace GetTag {\r\n export type Variables = GetTagQueryVariables;\r\n export type Query = GetTagQuery;\r\n export type Tag = (NonNullable<GetTagQuery['tag']>);\r\n}\r\n\r\nexport namespace CreateTag {\r\n export type Variables = CreateTagMutationVariables;\r\n export type Mutation = CreateTagMutation;\r\n export type CreateTag = (NonNullable<CreateTagMutation['createTag']>);\r\n}\r\n\r\nexport namespace UpdateTag {\r\n export type Variables = UpdateTagMutationVariables;\r\n export type Mutation = UpdateTagMutation;\r\n export type UpdateTag = (NonNullable<UpdateTagMutation['updateTag']>);\r\n}\r\n\r\nexport namespace DeleteTag {\r\n export type Variables = DeleteTagMutationVariables;\r\n export type Mutation = DeleteTagMutation;\r\n export type DeleteTag = (NonNullable<DeleteTagMutation['deleteTag']>);\r\n}\r\n\r\nexport namespace Promotion {\r\n export type Fragment = PromotionFragment;\r\n export type Conditions = NonNullable<(NonNullable<PromotionFragment['conditions']>)[number]>;\r\n export type Actions = NonNullable<(NonNullable<PromotionFragment['actions']>)[number]>;\r\n}\r\n\r\nexport namespace GetPromotionList {\r\n export type Variables = GetPromotionListQueryVariables;\r\n export type Query = GetPromotionListQuery;\r\n export type Promotions = (NonNullable<GetPromotionListQuery['promotions']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetPromotionListQuery['promotions']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace GetPromotion {\r\n export type Variables = GetPromotionQueryVariables;\r\n export type Query = GetPromotionQuery;\r\n export type Promotion = (NonNullable<GetPromotionQuery['promotion']>);\r\n}\r\n\r\nexport namespace GetAdjustmentOperations {\r\n export type Variables = GetAdjustmentOperationsQueryVariables;\r\n export type Query = GetAdjustmentOperationsQuery;\r\n export type PromotionConditions = NonNullable<(NonNullable<GetAdjustmentOperationsQuery['promotionConditions']>)[number]>;\r\n export type PromotionActions = NonNullable<(NonNullable<GetAdjustmentOperationsQuery['promotionActions']>)[number]>;\r\n}\r\n\r\nexport namespace CreatePromotion {\r\n export type Variables = CreatePromotionMutationVariables;\r\n export type Mutation = CreatePromotionMutation;\r\n export type CreatePromotion = (NonNullable<CreatePromotionMutation['createPromotion']>);\r\n}\r\n\r\nexport namespace UpdatePromotion {\r\n export type Variables = UpdatePromotionMutationVariables;\r\n export type Mutation = UpdatePromotionMutation;\r\n export type UpdatePromotion = (NonNullable<UpdatePromotionMutation['updatePromotion']>);\r\n}\r\n\r\nexport namespace DeletePromotion {\r\n export type Variables = DeletePromotionMutationVariables;\r\n export type Mutation = DeletePromotionMutation;\r\n export type DeletePromotion = (NonNullable<DeletePromotionMutation['deletePromotion']>);\r\n}\r\n\r\nexport namespace Country {\r\n export type Fragment = CountryFragment;\r\n export type Translations = NonNullable<(NonNullable<CountryFragment['translations']>)[number]>;\r\n}\r\n\r\nexport namespace GetCountryList {\r\n export type Variables = GetCountryListQueryVariables;\r\n export type Query = GetCountryListQuery;\r\n export type Countries = (NonNullable<GetCountryListQuery['countries']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetCountryListQuery['countries']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace GetAvailableCountries {\r\n export type Variables = GetAvailableCountriesQueryVariables;\r\n export type Query = GetAvailableCountriesQuery;\r\n export type Countries = (NonNullable<GetAvailableCountriesQuery['countries']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetAvailableCountriesQuery['countries']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace GetCountry {\r\n export type Variables = GetCountryQueryVariables;\r\n export type Query = GetCountryQuery;\r\n export type Country = (NonNullable<GetCountryQuery['country']>);\r\n}\r\n\r\nexport namespace CreateCountry {\r\n export type Variables = CreateCountryMutationVariables;\r\n export type Mutation = CreateCountryMutation;\r\n export type CreateCountry = (NonNullable<CreateCountryMutation['createCountry']>);\r\n}\r\n\r\nexport namespace UpdateCountry {\r\n export type Variables = UpdateCountryMutationVariables;\r\n export type Mutation = UpdateCountryMutation;\r\n export type UpdateCountry = (NonNullable<UpdateCountryMutation['updateCountry']>);\r\n}\r\n\r\nexport namespace DeleteCountry {\r\n export type Variables = DeleteCountryMutationVariables;\r\n export type Mutation = DeleteCountryMutation;\r\n export type DeleteCountry = (NonNullable<DeleteCountryMutation['deleteCountry']>);\r\n}\r\n\r\nexport namespace Zone {\r\n export type Fragment = ZoneFragment;\r\n export type Members = NonNullable<(NonNullable<ZoneFragment['members']>)[number]>;\r\n}\r\n\r\nexport namespace GetZones {\r\n export type Variables = GetZonesQueryVariables;\r\n export type Query = GetZonesQuery;\r\n export type Zones = NonNullable<(NonNullable<GetZonesQuery['zones']>)[number]>;\r\n export type Members = NonNullable<(NonNullable<NonNullable<(NonNullable<GetZonesQuery['zones']>)[number]>['members']>)[number]>;\r\n}\r\n\r\nexport namespace GetZone {\r\n export type Variables = GetZoneQueryVariables;\r\n export type Query = GetZoneQuery;\r\n export type Zone = (NonNullable<GetZoneQuery['zone']>);\r\n}\r\n\r\nexport namespace CreateZone {\r\n export type Variables = CreateZoneMutationVariables;\r\n export type Mutation = CreateZoneMutation;\r\n export type CreateZone = (NonNullable<CreateZoneMutation['createZone']>);\r\n}\r\n\r\nexport namespace UpdateZone {\r\n export type Variables = UpdateZoneMutationVariables;\r\n export type Mutation = UpdateZoneMutation;\r\n export type UpdateZone = (NonNullable<UpdateZoneMutation['updateZone']>);\r\n}\r\n\r\nexport namespace DeleteZone {\r\n export type Variables = DeleteZoneMutationVariables;\r\n export type Mutation = DeleteZoneMutation;\r\n export type DeleteZone = (NonNullable<DeleteZoneMutation['deleteZone']>);\r\n}\r\n\r\nexport namespace AddMembersToZone {\r\n export type Variables = AddMembersToZoneMutationVariables;\r\n export type Mutation = AddMembersToZoneMutation;\r\n export type AddMembersToZone = (NonNullable<AddMembersToZoneMutation['addMembersToZone']>);\r\n}\r\n\r\nexport namespace RemoveMembersFromZone {\r\n export type Variables = RemoveMembersFromZoneMutationVariables;\r\n export type Mutation = RemoveMembersFromZoneMutation;\r\n export type RemoveMembersFromZone = (NonNullable<RemoveMembersFromZoneMutation['removeMembersFromZone']>);\r\n}\r\n\r\nexport namespace TaxCategory {\r\n export type Fragment = TaxCategoryFragment;\r\n}\r\n\r\nexport namespace GetTaxCategories {\r\n export type Variables = GetTaxCategoriesQueryVariables;\r\n export type Query = GetTaxCategoriesQuery;\r\n export type TaxCategories = NonNullable<(NonNullable<GetTaxCategoriesQuery['taxCategories']>)[number]>;\r\n}\r\n\r\nexport namespace GetTaxCategory {\r\n export type Variables = GetTaxCategoryQueryVariables;\r\n export type Query = GetTaxCategoryQuery;\r\n export type TaxCategory = (NonNullable<GetTaxCategoryQuery['taxCategory']>);\r\n}\r\n\r\nexport namespace CreateTaxCategory {\r\n export type Variables = CreateTaxCategoryMutationVariables;\r\n export type Mutation = CreateTaxCategoryMutation;\r\n export type CreateTaxCategory = (NonNullable<CreateTaxCategoryMutation['createTaxCategory']>);\r\n}\r\n\r\nexport namespace UpdateTaxCategory {\r\n export type Variables = UpdateTaxCategoryMutationVariables;\r\n export type Mutation = UpdateTaxCategoryMutation;\r\n export type UpdateTaxCategory = (NonNullable<UpdateTaxCategoryMutation['updateTaxCategory']>);\r\n}\r\n\r\nexport namespace DeleteTaxCategory {\r\n export type Variables = DeleteTaxCategoryMutationVariables;\r\n export type Mutation = DeleteTaxCategoryMutation;\r\n export type DeleteTaxCategory = (NonNullable<DeleteTaxCategoryMutation['deleteTaxCategory']>);\r\n}\r\n\r\nexport namespace TaxRate {\r\n export type Fragment = TaxRateFragment;\r\n export type Category = (NonNullable<TaxRateFragment['category']>);\r\n export type Zone = (NonNullable<TaxRateFragment['zone']>);\r\n export type CustomerGroup = (NonNullable<TaxRateFragment['customerGroup']>);\r\n}\r\n\r\nexport namespace GetTaxRateList {\r\n export type Variables = GetTaxRateListQueryVariables;\r\n export type Query = GetTaxRateListQuery;\r\n export type TaxRates = (NonNullable<GetTaxRateListQuery['taxRates']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetTaxRateListQuery['taxRates']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace GetTaxRateListSimple {\r\n export type Variables = GetTaxRateListSimpleQueryVariables;\r\n export type Query = GetTaxRateListSimpleQuery;\r\n export type TaxRates = (NonNullable<GetTaxRateListSimpleQuery['taxRates']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetTaxRateListSimpleQuery['taxRates']>)['items']>)[number]>;\r\n export type Category = (NonNullable<NonNullable<(NonNullable<(NonNullable<GetTaxRateListSimpleQuery['taxRates']>)['items']>)[number]>['category']>);\r\n export type Zone = (NonNullable<NonNullable<(NonNullable<(NonNullable<GetTaxRateListSimpleQuery['taxRates']>)['items']>)[number]>['zone']>);\r\n}\r\n\r\nexport namespace GetTaxRate {\r\n export type Variables = GetTaxRateQueryVariables;\r\n export type Query = GetTaxRateQuery;\r\n export type TaxRate = (NonNullable<GetTaxRateQuery['taxRate']>);\r\n}\r\n\r\nexport namespace CreateTaxRate {\r\n export type Variables = CreateTaxRateMutationVariables;\r\n export type Mutation = CreateTaxRateMutation;\r\n export type CreateTaxRate = (NonNullable<CreateTaxRateMutation['createTaxRate']>);\r\n}\r\n\r\nexport namespace UpdateTaxRate {\r\n export type Variables = UpdateTaxRateMutationVariables;\r\n export type Mutation = UpdateTaxRateMutation;\r\n export type UpdateTaxRate = (NonNullable<UpdateTaxRateMutation['updateTaxRate']>);\r\n}\r\n\r\nexport namespace DeleteTaxRate {\r\n export type Variables = DeleteTaxRateMutationVariables;\r\n export type Mutation = DeleteTaxRateMutation;\r\n export type DeleteTaxRate = (NonNullable<DeleteTaxRateMutation['deleteTaxRate']>);\r\n}\r\n\r\nexport namespace Channel {\r\n export type Fragment = ChannelFragment;\r\n export type DefaultShippingZone = (NonNullable<ChannelFragment['defaultShippingZone']>);\r\n export type DefaultTaxZone = (NonNullable<ChannelFragment['defaultTaxZone']>);\r\n}\r\n\r\nexport namespace GetChannels {\r\n export type Variables = GetChannelsQueryVariables;\r\n export type Query = GetChannelsQuery;\r\n export type Channels = NonNullable<(NonNullable<GetChannelsQuery['channels']>)[number]>;\r\n}\r\n\r\nexport namespace GetChannel {\r\n export type Variables = GetChannelQueryVariables;\r\n export type Query = GetChannelQuery;\r\n export type Channel = (NonNullable<GetChannelQuery['channel']>);\r\n}\r\n\r\nexport namespace GetActiveChannel {\r\n export type Variables = GetActiveChannelQueryVariables;\r\n export type Query = GetActiveChannelQuery;\r\n export type ActiveChannel = (NonNullable<GetActiveChannelQuery['activeChannel']>);\r\n}\r\n\r\nexport namespace CreateChannel {\r\n export type Variables = CreateChannelMutationVariables;\r\n export type Mutation = CreateChannelMutation;\r\n export type CreateChannel = (NonNullable<CreateChannelMutation['createChannel']>);\r\n}\r\n\r\nexport namespace UpdateChannel {\r\n export type Variables = UpdateChannelMutationVariables;\r\n export type Mutation = UpdateChannelMutation;\r\n export type UpdateChannel = (NonNullable<UpdateChannelMutation['updateChannel']>);\r\n}\r\n\r\nexport namespace DeleteChannel {\r\n export type Variables = DeleteChannelMutationVariables;\r\n export type Mutation = DeleteChannelMutation;\r\n export type DeleteChannel = (NonNullable<DeleteChannelMutation['deleteChannel']>);\r\n}\r\n\r\nexport namespace PaymentMethod {\r\n export type Fragment = PaymentMethodFragment;\r\n export type Checker = (NonNullable<PaymentMethodFragment['checker']>);\r\n export type Handler = (NonNullable<PaymentMethodFragment['handler']>);\r\n}\r\n\r\nexport namespace GetPaymentMethodList {\r\n export type Variables = GetPaymentMethodListQueryVariables;\r\n export type Query = GetPaymentMethodListQuery;\r\n export type PaymentMethods = (NonNullable<GetPaymentMethodListQuery['paymentMethods']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetPaymentMethodListQuery['paymentMethods']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace GetPaymentMethodOperations {\r\n export type Variables = GetPaymentMethodOperationsQueryVariables;\r\n export type Query = GetPaymentMethodOperationsQuery;\r\n export type PaymentMethodEligibilityCheckers = NonNullable<(NonNullable<GetPaymentMethodOperationsQuery['paymentMethodEligibilityCheckers']>)[number]>;\r\n export type PaymentMethodHandlers = NonNullable<(NonNullable<GetPaymentMethodOperationsQuery['paymentMethodHandlers']>)[number]>;\r\n}\r\n\r\nexport namespace GetPaymentMethod {\r\n export type Variables = GetPaymentMethodQueryVariables;\r\n export type Query = GetPaymentMethodQuery;\r\n export type PaymentMethod = (NonNullable<GetPaymentMethodQuery['paymentMethod']>);\r\n}\r\n\r\nexport namespace CreatePaymentMethod {\r\n export type Variables = CreatePaymentMethodMutationVariables;\r\n export type Mutation = CreatePaymentMethodMutation;\r\n export type CreatePaymentMethod = (NonNullable<CreatePaymentMethodMutation['createPaymentMethod']>);\r\n}\r\n\r\nexport namespace UpdatePaymentMethod {\r\n export type Variables = UpdatePaymentMethodMutationVariables;\r\n export type Mutation = UpdatePaymentMethodMutation;\r\n export type UpdatePaymentMethod = (NonNullable<UpdatePaymentMethodMutation['updatePaymentMethod']>);\r\n}\r\n\r\nexport namespace DeletePaymentMethod {\r\n export type Variables = DeletePaymentMethodMutationVariables;\r\n export type Mutation = DeletePaymentMethodMutation;\r\n export type DeletePaymentMethod = (NonNullable<DeletePaymentMethodMutation['deletePaymentMethod']>);\r\n}\r\n\r\nexport namespace GlobalSettings {\r\n export type Fragment = GlobalSettingsFragment;\r\n export type ServerConfig = (NonNullable<GlobalSettingsFragment['serverConfig']>);\r\n export type Permissions = NonNullable<(NonNullable<(NonNullable<GlobalSettingsFragment['serverConfig']>)['permissions']>)[number]>;\r\n export type OrderProcess = NonNullable<(NonNullable<(NonNullable<GlobalSettingsFragment['serverConfig']>)['orderProcess']>)[number]>;\r\n}\r\n\r\nexport namespace GetGlobalSettings {\r\n export type Variables = GetGlobalSettingsQueryVariables;\r\n export type Query = GetGlobalSettingsQuery;\r\n export type GlobalSettings = (NonNullable<GetGlobalSettingsQuery['globalSettings']>);\r\n}\r\n\r\nexport namespace UpdateGlobalSettings {\r\n export type Variables = UpdateGlobalSettingsMutationVariables;\r\n export type Mutation = UpdateGlobalSettingsMutation;\r\n export type UpdateGlobalSettings = (NonNullable<UpdateGlobalSettingsMutation['updateGlobalSettings']>);\r\n}\r\n\r\nexport namespace CustomFieldConfig {\r\n export type Fragment = CustomFieldConfigFragment;\r\n export type Description = NonNullable<(NonNullable<CustomFieldConfigFragment['description']>)[number]>;\r\n export type Label = NonNullable<(NonNullable<CustomFieldConfigFragment['label']>)[number]>;\r\n}\r\n\r\nexport namespace StringCustomField {\r\n export type Fragment = StringCustomFieldFragment;\r\n export type Options = NonNullable<(NonNullable<StringCustomFieldFragment['options']>)[number]>;\r\n export type Label = NonNullable<(NonNullable<NonNullable<(NonNullable<StringCustomFieldFragment['options']>)[number]>['label']>)[number]>;\r\n}\r\n\r\nexport namespace LocaleStringCustomField {\r\n export type Fragment = LocaleStringCustomFieldFragment;\r\n}\r\n\r\nexport namespace TextCustomField {\r\n export type Fragment = TextCustomFieldFragment;\r\n}\r\n\r\nexport namespace BooleanCustomField {\r\n export type Fragment = BooleanCustomFieldFragment;\r\n}\r\n\r\nexport namespace IntCustomField {\r\n export type Fragment = IntCustomFieldFragment;\r\n}\r\n\r\nexport namespace FloatCustomField {\r\n export type Fragment = FloatCustomFieldFragment;\r\n}\r\n\r\nexport namespace DateTimeCustomField {\r\n export type Fragment = DateTimeCustomFieldFragment;\r\n}\r\n\r\nexport namespace RelationCustomField {\r\n export type Fragment = RelationCustomFieldFragment;\r\n}\r\n\r\nexport namespace CustomFields {\r\n export type Fragment = CustomFieldsFragment;\r\n export type StringCustomFieldConfigInlineFragment = (DiscriminateUnion<CustomFieldsFragment, { __typename?: 'StringCustomFieldConfig' }>);\r\n export type LocaleStringCustomFieldConfigInlineFragment = (DiscriminateUnion<CustomFieldsFragment, { __typename?: 'LocaleStringCustomFieldConfig' }>);\r\n export type TextCustomFieldConfigInlineFragment = (DiscriminateUnion<CustomFieldsFragment, { __typename?: 'TextCustomFieldConfig' }>);\r\n export type BooleanCustomFieldConfigInlineFragment = (DiscriminateUnion<CustomFieldsFragment, { __typename?: 'BooleanCustomFieldConfig' }>);\r\n export type IntCustomFieldConfigInlineFragment = (DiscriminateUnion<CustomFieldsFragment, { __typename?: 'IntCustomFieldConfig' }>);\r\n export type FloatCustomFieldConfigInlineFragment = (DiscriminateUnion<CustomFieldsFragment, { __typename?: 'FloatCustomFieldConfig' }>);\r\n export type DateTimeCustomFieldConfigInlineFragment = (DiscriminateUnion<CustomFieldsFragment, { __typename?: 'DateTimeCustomFieldConfig' }>);\r\n export type RelationCustomFieldConfigInlineFragment = (DiscriminateUnion<CustomFieldsFragment, { __typename?: 'RelationCustomFieldConfig' }>);\r\n}\r\n\r\nexport namespace GetServerConfig {\r\n export type Variables = GetServerConfigQueryVariables;\r\n export type Query = GetServerConfigQuery;\r\n export type GlobalSettings = (NonNullable<GetServerConfigQuery['globalSettings']>);\r\n export type ServerConfig = (NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>);\r\n export type OrderProcess = NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['orderProcess']>)[number]>;\r\n export type Permissions = NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['permissions']>)[number]>;\r\n export type CustomFieldConfig = (NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>);\r\n export type Address = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['Address']>)[number]>;\r\n export type Administrator = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['Administrator']>)[number]>;\r\n export type Asset = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['Asset']>)[number]>;\r\n export type Channel = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['Channel']>)[number]>;\r\n export type Collection = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['Collection']>)[number]>;\r\n export type Country = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['Country']>)[number]>;\r\n export type Customer = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['Customer']>)[number]>;\r\n export type CustomerGroup = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['CustomerGroup']>)[number]>;\r\n export type Facet = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['Facet']>)[number]>;\r\n export type FacetValue = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['FacetValue']>)[number]>;\r\n export type Fulfillment = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['Fulfillment']>)[number]>;\r\n export type _GlobalSettings = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['GlobalSettings']>)[number]>;\r\n export type Order = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['Order']>)[number]>;\r\n export type OrderLine = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['OrderLine']>)[number]>;\r\n export type PaymentMethod = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['PaymentMethod']>)[number]>;\r\n export type Product = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['Product']>)[number]>;\r\n export type ProductOption = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['ProductOption']>)[number]>;\r\n export type ProductOptionGroup = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['ProductOptionGroup']>)[number]>;\r\n export type ProductVariant = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['ProductVariant']>)[number]>;\r\n export type Promotion = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['Promotion']>)[number]>;\r\n export type ShippingMethod = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['ShippingMethod']>)[number]>;\r\n export type TaxCategory = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['TaxCategory']>)[number]>;\r\n export type TaxRate = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['TaxRate']>)[number]>;\r\n export type User = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['User']>)[number]>;\r\n export type Zone = NonNullable<(NonNullable<(NonNullable<(NonNullable<(NonNullable<GetServerConfigQuery['globalSettings']>)['serverConfig']>)['customFieldConfig']>)['Zone']>)[number]>;\r\n}\r\n\r\nexport namespace JobInfo {\r\n export type Fragment = JobInfoFragment;\r\n}\r\n\r\nexport namespace GetJobInfo {\r\n export type Variables = GetJobInfoQueryVariables;\r\n export type Query = GetJobInfoQuery;\r\n export type Job = (NonNullable<GetJobInfoQuery['job']>);\r\n}\r\n\r\nexport namespace GetAllJobs {\r\n export type Variables = GetAllJobsQueryVariables;\r\n export type Query = GetAllJobsQuery;\r\n export type Jobs = (NonNullable<GetAllJobsQuery['jobs']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetAllJobsQuery['jobs']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace GetJobsById {\r\n export type Variables = GetJobsByIdQueryVariables;\r\n export type Query = GetJobsByIdQuery;\r\n export type JobsById = NonNullable<(NonNullable<GetJobsByIdQuery['jobsById']>)[number]>;\r\n}\r\n\r\nexport namespace GetJobQueueList {\r\n export type Variables = GetJobQueueListQueryVariables;\r\n export type Query = GetJobQueueListQuery;\r\n export type JobQueues = NonNullable<(NonNullable<GetJobQueueListQuery['jobQueues']>)[number]>;\r\n}\r\n\r\nexport namespace CancelJob {\r\n export type Variables = CancelJobMutationVariables;\r\n export type Mutation = CancelJobMutation;\r\n export type CancelJob = (NonNullable<CancelJobMutation['cancelJob']>);\r\n}\r\n\r\nexport namespace Reindex {\r\n export type Variables = ReindexMutationVariables;\r\n export type Mutation = ReindexMutation;\r\n export type Reindex = (NonNullable<ReindexMutation['reindex']>);\r\n}\r\n\r\nexport namespace GetPendingSearchIndexUpdates {\r\n export type Variables = GetPendingSearchIndexUpdatesQueryVariables;\r\n export type Query = GetPendingSearchIndexUpdatesQuery;\r\n}\r\n\r\nexport namespace RunPendingSearchIndexUpdates {\r\n export type Variables = RunPendingSearchIndexUpdatesMutationVariables;\r\n export type Mutation = RunPendingSearchIndexUpdatesMutation;\r\n export type RunPendingSearchIndexUpdates = (NonNullable<RunPendingSearchIndexUpdatesMutation['runPendingSearchIndexUpdates']>);\r\n}\r\n\r\nexport namespace ConfigurableOperation {\r\n export type Fragment = ConfigurableOperationFragment;\r\n export type Args = NonNullable<(NonNullable<ConfigurableOperationFragment['args']>)[number]>;\r\n}\r\n\r\nexport namespace ConfigurableOperationDef {\r\n export type Fragment = ConfigurableOperationDefFragment;\r\n export type Args = NonNullable<(NonNullable<ConfigurableOperationDefFragment['args']>)[number]>;\r\n}\r\n\r\nexport namespace ErrorResult {\r\n export type Fragment = ErrorResultFragment;\r\n}\r\n\r\nexport namespace ShippingMethod {\r\n export type Fragment = ShippingMethodFragment;\r\n export type Checker = (NonNullable<ShippingMethodFragment['checker']>);\r\n export type Calculator = (NonNullable<ShippingMethodFragment['calculator']>);\r\n export type Translations = NonNullable<(NonNullable<ShippingMethodFragment['translations']>)[number]>;\r\n}\r\n\r\nexport namespace GetShippingMethodList {\r\n export type Variables = GetShippingMethodListQueryVariables;\r\n export type Query = GetShippingMethodListQuery;\r\n export type ShippingMethods = (NonNullable<GetShippingMethodListQuery['shippingMethods']>);\r\n export type Items = NonNullable<(NonNullable<(NonNullable<GetShippingMethodListQuery['shippingMethods']>)['items']>)[number]>;\r\n}\r\n\r\nexport namespace GetShippingMethod {\r\n export type Variables = GetShippingMethodQueryVariables;\r\n export type Query = GetShippingMethodQuery;\r\n export type ShippingMethod = (NonNullable<GetShippingMethodQuery['shippingMethod']>);\r\n}\r\n\r\nexport namespace GetShippingMethodOperations {\r\n export type Variables = GetShippingMethodOperationsQueryVariables;\r\n export type Query = GetShippingMethodOperationsQuery;\r\n export type ShippingEligibilityCheckers = NonNullable<(NonNullable<GetShippingMethodOperationsQuery['shippingEligibilityCheckers']>)[number]>;\r\n export type ShippingCalculators = NonNullable<(NonNullable<GetShippingMethodOperationsQuery['shippingCalculators']>)[number]>;\r\n export type FulfillmentHandlers = NonNullable<(NonNullable<GetShippingMethodOperationsQuery['fulfillmentHandlers']>)[number]>;\r\n}\r\n\r\nexport namespace CreateShippingMethod {\r\n export type Variables = CreateShippingMethodMutationVariables;\r\n export type Mutation = CreateShippingMethodMutation;\r\n export type CreateShippingMethod = (NonNullable<CreateShippingMethodMutation['createShippingMethod']>);\r\n}\r\n\r\nexport namespace UpdateShippingMethod {\r\n export type Variables = UpdateShippingMethodMutationVariables;\r\n export type Mutation = UpdateShippingMethodMutation;\r\n export type UpdateShippingMethod = (NonNullable<UpdateShippingMethodMutation['updateShippingMethod']>);\r\n}\r\n\r\nexport namespace DeleteShippingMethod {\r\n export type Variables = DeleteShippingMethodMutationVariables;\r\n export type Mutation = DeleteShippingMethodMutation;\r\n export type DeleteShippingMethod = (NonNullable<DeleteShippingMethodMutation['deleteShippingMethod']>);\r\n}\r\n\r\nexport namespace TestShippingMethod {\r\n export type Variables = TestShippingMethodQueryVariables;\r\n export type Query = TestShippingMethodQuery;\r\n export type TestShippingMethod = (NonNullable<TestShippingMethodQuery['testShippingMethod']>);\r\n export type Quote = (NonNullable<(NonNullable<TestShippingMethodQuery['testShippingMethod']>)['quote']>);\r\n}\r\n\r\nexport namespace TestEligibleShippingMethods {\r\n export type Variables = TestEligibleShippingMethodsQueryVariables;\r\n export type Query = TestEligibleShippingMethodsQuery;\r\n export type TestEligibleShippingMethods = NonNullable<(NonNullable<TestEligibleShippingMethodsQuery['testEligibleShippingMethods']>)[number]>;\r\n}\r\n\r\nexport namespace GetCustomerAddresses {\r\n export type Variables = GetCustomerAddressesQueryVariables;\r\n export type Query = GetCustomerAddressesQuery;\r\n export type Customer = (NonNullable<GetCustomerAddressesQuery['customer']>);\r\n export type Addresses = NonNullable<(NonNullable<(NonNullable<GetCustomerAddressesQuery['customer']>)['addresses']>)[number]>;\r\n}\r\n","import { gql } from 'apollo-angular';\r\n\r\nimport { ERROR_RESULT_FRAGMENT } from './shared-definitions';\r\n\r\nexport const ADDRESS_FRAGMENT = gql`\r\n fragment Address on Address {\r\n id\r\n createdAt\r\n updatedAt\r\n fullName\r\n company\r\n streetLine1\r\n streetLine2\r\n city\r\n province\r\n postalCode\r\n country {\r\n id\r\n code\r\n name\r\n }\r\n phoneNumber\r\n defaultShippingAddress\r\n defaultBillingAddress\r\n }\r\n`;\r\n\r\nexport const CUSTOMER_FRAGMENT = gql`\r\n fragment Customer on Customer {\r\n id\r\n createdAt\r\n updatedAt\r\n title\r\n firstName\r\n lastName\r\n phoneNumber\r\n emailAddress\r\n user {\r\n id\r\n identifier\r\n verified\r\n lastLogin\r\n }\r\n addresses {\r\n ...Address\r\n }\r\n }\r\n ${ADDRESS_FRAGMENT}\r\n`;\r\n\r\nexport const CUSTOMER_GROUP_FRAGMENT = gql`\r\n fragment CustomerGroup on CustomerGroup {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n }\r\n`;\r\n\r\nexport const GET_CUSTOMER_LIST = gql`\r\n query GetCustomerList($options: CustomerListOptions) {\r\n customers(options: $options) {\r\n items {\r\n id\r\n createdAt\r\n updatedAt\r\n title\r\n firstName\r\n lastName\r\n emailAddress\r\n user {\r\n id\r\n verified\r\n }\r\n }\r\n totalItems\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_CUSTOMER = gql`\r\n query GetCustomer($id: ID!, $orderListOptions: OrderListOptions) {\r\n customer(id: $id) {\r\n ...Customer\r\n groups {\r\n id\r\n name\r\n }\r\n orders(options: $orderListOptions) {\r\n items {\r\n id\r\n code\r\n state\r\n totalWithTax\r\n currencyCode\r\n updatedAt\r\n }\r\n totalItems\r\n }\r\n }\r\n }\r\n ${CUSTOMER_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_CUSTOMER = gql`\r\n mutation CreateCustomer($input: CreateCustomerInput!, $password: String) {\r\n createCustomer(input: $input, password: $password) {\r\n ...Customer\r\n ...ErrorResult\r\n }\r\n }\r\n ${CUSTOMER_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_CUSTOMER = gql`\r\n mutation UpdateCustomer($input: UpdateCustomerInput!) {\r\n updateCustomer(input: $input) {\r\n ...Customer\r\n ...ErrorResult\r\n }\r\n }\r\n ${CUSTOMER_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_CUSTOMER = gql`\r\n mutation DeleteCustomer($id: ID!) {\r\n deleteCustomer(id: $id) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const CREATE_CUSTOMER_ADDRESS = gql`\r\n mutation CreateCustomerAddress($customerId: ID!, $input: CreateAddressInput!) {\r\n createCustomerAddress(customerId: $customerId, input: $input) {\r\n ...Address\r\n }\r\n }\r\n ${ADDRESS_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_CUSTOMER_ADDRESS = gql`\r\n mutation UpdateCustomerAddress($input: UpdateAddressInput!) {\r\n updateCustomerAddress(input: $input) {\r\n ...Address\r\n }\r\n }\r\n ${ADDRESS_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_CUSTOMER_ADDRESS = gql`\r\n mutation DeleteCustomerAddress($id: ID!) {\r\n deleteCustomerAddress(id: $id) {\r\n success\r\n }\r\n }\r\n`;\r\n\r\nexport const CREATE_CUSTOMER_GROUP = gql`\r\n mutation CreateCustomerGroup($input: CreateCustomerGroupInput!) {\r\n createCustomerGroup(input: $input) {\r\n ...CustomerGroup\r\n }\r\n }\r\n ${CUSTOMER_GROUP_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_CUSTOMER_GROUP = gql`\r\n mutation UpdateCustomerGroup($input: UpdateCustomerGroupInput!) {\r\n updateCustomerGroup(input: $input) {\r\n ...CustomerGroup\r\n }\r\n }\r\n ${CUSTOMER_GROUP_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_CUSTOMER_GROUP = gql`\r\n mutation DeleteCustomerGroup($id: ID!) {\r\n deleteCustomerGroup(id: $id) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_CUSTOMER_GROUPS = gql`\r\n query GetCustomerGroups($options: CustomerGroupListOptions) {\r\n customerGroups(options: $options) {\r\n items {\r\n ...CustomerGroup\r\n }\r\n totalItems\r\n }\r\n }\r\n ${CUSTOMER_GROUP_FRAGMENT}\r\n`;\r\n\r\nexport const GET_CUSTOMER_GROUP_WITH_CUSTOMERS = gql`\r\n query GetCustomerGroupWithCustomers($id: ID!, $options: CustomerListOptions) {\r\n customerGroup(id: $id) {\r\n ...CustomerGroup\r\n customers(options: $options) {\r\n items {\r\n id\r\n createdAt\r\n updatedAt\r\n emailAddress\r\n firstName\r\n lastName\r\n }\r\n totalItems\r\n }\r\n }\r\n }\r\n ${CUSTOMER_GROUP_FRAGMENT}\r\n`;\r\n\r\nexport const ADD_CUSTOMERS_TO_GROUP = gql`\r\n mutation AddCustomersToGroup($groupId: ID!, $customerIds: [ID!]!) {\r\n addCustomersToGroup(customerGroupId: $groupId, customerIds: $customerIds) {\r\n ...CustomerGroup\r\n }\r\n }\r\n ${CUSTOMER_GROUP_FRAGMENT}\r\n`;\r\n\r\nexport const REMOVE_CUSTOMERS_FROM_GROUP = gql`\r\n mutation RemoveCustomersFromGroup($groupId: ID!, $customerIds: [ID!]!) {\r\n removeCustomersFromGroup(customerGroupId: $groupId, customerIds: $customerIds) {\r\n ...CustomerGroup\r\n }\r\n }\r\n ${CUSTOMER_GROUP_FRAGMENT}\r\n`;\r\n\r\nexport const GET_CUSTOMER_HISTORY = gql`\r\n query GetCustomerHistory($id: ID!, $options: HistoryEntryListOptions) {\r\n customer(id: $id) {\r\n id\r\n history(options: $options) {\r\n totalItems\r\n items {\r\n id\r\n type\r\n createdAt\r\n isPublic\r\n administrator {\r\n id\r\n firstName\r\n lastName\r\n }\r\n data\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const ADD_NOTE_TO_CUSTOMER = gql`\r\n mutation AddNoteToCustomer($input: AddNoteToCustomerInput!) {\r\n addNoteToCustomer(input: $input) {\r\n id\r\n }\r\n }\r\n`;\r\n\r\nexport const UPDATE_CUSTOMER_NOTE = gql`\r\n mutation UpdateCustomerNote($input: UpdateCustomerNoteInput!) {\r\n updateCustomerNote(input: $input) {\r\n id\r\n data\r\n isPublic\r\n }\r\n }\r\n`;\r\n\r\nexport const DELETE_CUSTOMER_NOTE = gql`\r\n mutation DeleteCustomerNote($id: ID!) {\r\n deleteCustomerNote(id: $id) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n","import {\r\n AddCustomersToGroup,\r\n AddNoteToCustomer,\r\n CreateAddressInput,\r\n CreateCustomer,\r\n CreateCustomerAddress,\r\n CreateCustomerGroup,\r\n CreateCustomerGroupInput,\r\n CreateCustomerInput,\r\n CustomerGroupListOptions,\r\n CustomerListOptions,\r\n DeleteCustomer,\r\n DeleteCustomerAddress,\r\n DeleteCustomerGroup,\r\n DeleteCustomerNote,\r\n GetCustomer,\r\n GetCustomerGroups,\r\n GetCustomerGroupWithCustomers,\r\n GetCustomerHistory,\r\n GetCustomerList,\r\n HistoryEntryListOptions,\r\n LogicalOperator,\r\n OrderListOptions,\r\n RemoveCustomersFromGroup,\r\n UpdateAddressInput,\r\n UpdateCustomer,\r\n UpdateCustomerAddress,\r\n UpdateCustomerGroup,\r\n UpdateCustomerGroupInput,\r\n UpdateCustomerInput,\r\n UpdateCustomerNote,\r\n UpdateCustomerNoteInput,\r\n} from '../../common/generated-types';\r\nimport {\r\n ADD_CUSTOMERS_TO_GROUP,\r\n ADD_NOTE_TO_CUSTOMER,\r\n CREATE_CUSTOMER,\r\n CREATE_CUSTOMER_ADDRESS,\r\n CREATE_CUSTOMER_GROUP,\r\n DELETE_CUSTOMER,\r\n DELETE_CUSTOMER_ADDRESS,\r\n DELETE_CUSTOMER_GROUP,\r\n DELETE_CUSTOMER_NOTE,\r\n GET_CUSTOMER,\r\n GET_CUSTOMER_GROUP_WITH_CUSTOMERS,\r\n GET_CUSTOMER_GROUPS,\r\n GET_CUSTOMER_HISTORY,\r\n GET_CUSTOMER_LIST,\r\n REMOVE_CUSTOMERS_FROM_GROUP,\r\n UPDATE_CUSTOMER,\r\n UPDATE_CUSTOMER_ADDRESS,\r\n UPDATE_CUSTOMER_GROUP,\r\n UPDATE_CUSTOMER_NOTE,\r\n} from '../definitions/customer-definitions';\r\n\r\nimport { BaseDataService } from './base-data.service';\r\n\r\nexport class CustomerDataService {\r\n constructor(private baseDataService: BaseDataService) {}\r\n\r\n getCustomerList(take: number = 10, skip: number = 0, filterTerm?: string) {\r\n const filter = filterTerm\r\n ? {\r\n filter: {\r\n emailAddress: {\r\n contains: filterTerm,\r\n },\r\n lastName: {\r\n contains: filterTerm,\r\n },\r\n },\r\n }\r\n : {};\r\n return this.baseDataService.query<GetCustomerList.Query, GetCustomerList.Variables>(\r\n GET_CUSTOMER_LIST,\r\n {\r\n options: {\r\n take,\r\n skip,\r\n ...filter,\r\n filterOperator: LogicalOperator.OR,\r\n },\r\n },\r\n );\r\n }\r\n\r\n getCustomer(id: string, orderListOptions?: OrderListOptions) {\r\n return this.baseDataService.query<GetCustomer.Query, GetCustomer.Variables>(GET_CUSTOMER, {\r\n id,\r\n orderListOptions,\r\n });\r\n }\r\n\r\n createCustomer(input: CreateCustomerInput, password?: string) {\r\n return this.baseDataService.mutate<CreateCustomer.Mutation, CreateCustomer.Variables>(\r\n CREATE_CUSTOMER,\r\n {\r\n input,\r\n password,\r\n },\r\n );\r\n }\r\n\r\n updateCustomer(input: UpdateCustomerInput) {\r\n return this.baseDataService.mutate<UpdateCustomer.Mutation, UpdateCustomer.Variables>(\r\n UPDATE_CUSTOMER,\r\n {\r\n input,\r\n },\r\n );\r\n }\r\n\r\n deleteCustomer(id: string) {\r\n return this.baseDataService.mutate<DeleteCustomer.Mutation, DeleteCustomer.Variables>(\r\n DELETE_CUSTOMER,\r\n { id },\r\n );\r\n }\r\n\r\n createCustomerAddress(customerId: string, input: CreateAddressInput) {\r\n return this.baseDataService.mutate<CreateCustomerAddress.Mutation, CreateCustomerAddress.Variables>(\r\n CREATE_CUSTOMER_ADDRESS,\r\n {\r\n customerId,\r\n input,\r\n },\r\n );\r\n }\r\n\r\n updateCustomerAddress(input: UpdateAddressInput) {\r\n return this.baseDataService.mutate<UpdateCustomerAddress.Mutation, UpdateCustomerAddress.Variables>(\r\n UPDATE_CUSTOMER_ADDRESS,\r\n {\r\n input,\r\n },\r\n );\r\n }\r\n\r\n deleteCustomerAddress(id: string) {\r\n return this.baseDataService.mutate<DeleteCustomerAddress.Mutation, DeleteCustomerAddress.Variables>(\r\n DELETE_CUSTOMER_ADDRESS,\r\n { id },\r\n );\r\n }\r\n\r\n createCustomerGroup(input: CreateCustomerGroupInput) {\r\n return this.baseDataService.mutate<CreateCustomerGroup.Mutation, CreateCustomerGroup.Variables>(\r\n CREATE_CUSTOMER_GROUP,\r\n {\r\n input,\r\n },\r\n );\r\n }\r\n\r\n updateCustomerGroup(input: UpdateCustomerGroupInput) {\r\n return this.baseDataService.mutate<UpdateCustomerGroup.Mutation, UpdateCustomerGroup.Variables>(\r\n UPDATE_CUSTOMER_GROUP,\r\n {\r\n input,\r\n },\r\n );\r\n }\r\n\r\n deleteCustomerGroup(id: string) {\r\n return this.baseDataService.mutate<DeleteCustomerGroup.Mutation, DeleteCustomerGroup.Variables>(\r\n DELETE_CUSTOMER_GROUP,\r\n { id },\r\n );\r\n }\r\n\r\n getCustomerGroupList(options?: CustomerGroupListOptions) {\r\n return this.baseDataService.query<GetCustomerGroups.Query, GetCustomerGroups.Variables>(\r\n GET_CUSTOMER_GROUPS,\r\n {\r\n options,\r\n },\r\n );\r\n }\r\n\r\n getCustomerGroupWithCustomers(id: string, options: CustomerListOptions) {\r\n return this.baseDataService.query<\r\n GetCustomerGroupWithCustomers.Query,\r\n GetCustomerGroupWithCustomers.Variables\r\n >(GET_CUSTOMER_GROUP_WITH_CUSTOMERS, {\r\n id,\r\n options,\r\n });\r\n }\r\n\r\n addCustomersToGroup(groupId: string, customerIds: string[]) {\r\n return this.baseDataService.mutate<AddCustomersToGroup.Mutation, AddCustomersToGroup.Variables>(\r\n ADD_CUSTOMERS_TO_GROUP,\r\n {\r\n groupId,\r\n customerIds,\r\n },\r\n );\r\n }\r\n\r\n removeCustomersFromGroup(groupId: string, customerIds: string[]) {\r\n return this.baseDataService.mutate<\r\n RemoveCustomersFromGroup.Mutation,\r\n RemoveCustomersFromGroup.Variables\r\n >(REMOVE_CUSTOMERS_FROM_GROUP, {\r\n groupId,\r\n customerIds,\r\n });\r\n }\r\n\r\n getCustomerHistory(id: string, options?: HistoryEntryListOptions) {\r\n return this.baseDataService.query<GetCustomerHistory.Query, GetCustomerHistory.Variables>(\r\n GET_CUSTOMER_HISTORY,\r\n {\r\n id,\r\n options,\r\n },\r\n );\r\n }\r\n\r\n addNoteToCustomer(customerId: string, note: string) {\r\n return this.baseDataService.mutate<AddNoteToCustomer.Mutation, AddNoteToCustomer.Variables>(\r\n ADD_NOTE_TO_CUSTOMER,\r\n {\r\n input: {\r\n note,\r\n isPublic: false,\r\n id: customerId,\r\n },\r\n },\r\n );\r\n }\r\n\r\n updateCustomerNote(input: UpdateCustomerNoteInput) {\r\n return this.baseDataService.mutate<UpdateCustomerNote.Mutation, UpdateCustomerNote.Variables>(\r\n UPDATE_CUSTOMER_NOTE,\r\n {\r\n input,\r\n },\r\n );\r\n }\r\n\r\n deleteCustomerNote(id: string) {\r\n return this.baseDataService.mutate<DeleteCustomerNote.Mutation, DeleteCustomerNote.Variables>(\r\n DELETE_CUSTOMER_NOTE,\r\n {\r\n id,\r\n },\r\n );\r\n }\r\n}\r\n","import { gql } from 'apollo-angular';\r\n\r\nexport const FACET_VALUE_FRAGMENT = gql`\r\n fragment FacetValue on FacetValue {\r\n id\r\n createdAt\r\n updatedAt\r\n languageCode\r\n code\r\n name\r\n translations {\r\n id\r\n languageCode\r\n name\r\n }\r\n facet {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n }\r\n }\r\n`;\r\n\r\nexport const FACET_WITH_VALUES_FRAGMENT = gql`\r\n fragment FacetWithValues on Facet {\r\n id\r\n createdAt\r\n updatedAt\r\n languageCode\r\n isPrivate\r\n code\r\n name\r\n translations {\r\n id\r\n languageCode\r\n name\r\n }\r\n values {\r\n ...FacetValue\r\n }\r\n }\r\n ${FACET_VALUE_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_FACET = gql`\r\n mutation CreateFacet($input: CreateFacetInput!) {\r\n createFacet(input: $input) {\r\n ...FacetWithValues\r\n }\r\n }\r\n ${FACET_WITH_VALUES_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_FACET = gql`\r\n mutation UpdateFacet($input: UpdateFacetInput!) {\r\n updateFacet(input: $input) {\r\n ...FacetWithValues\r\n }\r\n }\r\n ${FACET_WITH_VALUES_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_FACET = gql`\r\n mutation DeleteFacet($id: ID!, $force: Boolean) {\r\n deleteFacet(id: $id, force: $force) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const DELETE_FACETS = gql`\r\n mutation DeleteFacets($ids: [ID!]!, $force: Boolean) {\r\n deleteFacets(ids: $ids, force: $force) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const CREATE_FACET_VALUES = gql`\r\n mutation CreateFacetValues($input: [CreateFacetValueInput!]!) {\r\n createFacetValues(input: $input) {\r\n ...FacetValue\r\n }\r\n }\r\n ${FACET_VALUE_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_FACET_VALUES = gql`\r\n mutation UpdateFacetValues($input: [UpdateFacetValueInput!]!) {\r\n updateFacetValues(input: $input) {\r\n ...FacetValue\r\n }\r\n }\r\n ${FACET_VALUE_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_FACET_VALUES = gql`\r\n mutation DeleteFacetValues($ids: [ID!]!, $force: Boolean) {\r\n deleteFacetValues(ids: $ids, force: $force) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_FACET_LIST = gql`\r\n query GetFacetList($options: FacetListOptions) {\r\n facets(options: $options) {\r\n items {\r\n ...FacetWithValues\r\n }\r\n totalItems\r\n }\r\n }\r\n ${FACET_WITH_VALUES_FRAGMENT}\r\n`;\r\n\r\nexport const GET_FACET_WITH_VALUES = gql`\r\n query GetFacetWithValues($id: ID!) {\r\n facet(id: $id) {\r\n ...FacetWithValues\r\n }\r\n }\r\n ${FACET_WITH_VALUES_FRAGMENT}\r\n`;\r\n\r\nexport const ASSIGN_FACETS_TO_CHANNEL = gql`\r\n mutation AssignFacetsToChannel($input: AssignFacetsToChannelInput!) {\r\n assignFacetsToChannel(input: $input) {\r\n id\r\n }\r\n }\r\n`;\r\n\r\nexport const REMOVE_FACETS_FROM_CHANNEL = gql`\r\n mutation RemoveFacetsFromChannel($input: RemoveFacetsFromChannelInput!) {\r\n removeFacetsFromChannel(input: $input) {\r\n ... on Facet {\r\n id\r\n }\r\n ... on FacetInUseError {\r\n errorCode\r\n message\r\n variantCount\r\n productCount\r\n }\r\n }\r\n }\r\n`;\r\n","import { pick } from '@vendure/common/lib/pick';\r\n\r\nimport {\r\n AssignFacetsToChannel,\r\n AssignFacetsToChannelInput,\r\n AssignProductsToChannelInput,\r\n CreateFacet,\r\n CreateFacetInput,\r\n CreateFacetValueInput,\r\n CreateFacetValues,\r\n DeleteFacet,\r\n DeleteFacets,\r\n DeleteFacetValues,\r\n GetFacetList,\r\n GetFacetWithValues,\r\n RemoveFacetsFromChannel,\r\n RemoveFacetsFromChannelInput,\r\n UpdateFacet,\r\n UpdateFacetInput,\r\n UpdateFacetValueInput,\r\n UpdateFacetValues,\r\n} from '../../common/generated-types';\r\nimport {\r\n ASSIGN_FACETS_TO_CHANNEL,\r\n CREATE_FACET,\r\n CREATE_FACET_VALUES,\r\n DELETE_FACET,\r\n DELETE_FACET_VALUES,\r\n DELETE_FACETS,\r\n GET_FACET_LIST,\r\n GET_FACET_WITH_VALUES,\r\n REMOVE_FACETS_FROM_CHANNEL,\r\n UPDATE_FACET,\r\n UPDATE_FACET_VALUES,\r\n} from '../definitions/facet-definitions';\r\n\r\nimport { BaseDataService } from './base-data.service';\r\n\r\nexport class FacetDataService {\r\n constructor(private baseDataService: BaseDataService) {}\r\n\r\n getFacets(take: number = 10, skip: number = 0) {\r\n return this.baseDataService.query<GetFacetList.Query, GetFacetList.Variables>(GET_FACET_LIST, {\r\n options: {\r\n take,\r\n skip,\r\n },\r\n });\r\n }\r\n\r\n getAllFacets() {\r\n return this.baseDataService.query<GetFacetList.Query, GetFacetList.Variables>(GET_FACET_LIST, {});\r\n }\r\n\r\n getFacet(id: string) {\r\n return this.baseDataService.query<GetFacetWithValues.Query, GetFacetWithValues.Variables>(\r\n GET_FACET_WITH_VALUES,\r\n {\r\n id,\r\n },\r\n );\r\n }\r\n\r\n createFacet(facet: CreateFacetInput) {\r\n const input: CreateFacet.Variables = {\r\n input: pick(facet, ['code', 'isPrivate', 'translations', 'values', 'customFields']),\r\n };\r\n return this.baseDataService.mutate<CreateFacet.Mutation, CreateFacet.Variables>(CREATE_FACET, input);\r\n }\r\n\r\n updateFacet(facet: UpdateFacetInput) {\r\n const input: UpdateFacet.Variables = {\r\n input: pick(facet, ['id', 'code', 'isPrivate', 'translations', 'customFields']),\r\n };\r\n return this.baseDataService.mutate<UpdateFacet.Mutation, UpdateFacet.Variables>(UPDATE_FACET, input);\r\n }\r\n\r\n deleteFacet(id: string, force: boolean) {\r\n return this.baseDataService.mutate<DeleteFacet.Mutation, DeleteFacet.Variables>(DELETE_FACET, {\r\n id,\r\n force,\r\n });\r\n }\r\n\r\n deleteFacets(ids: string[], force: boolean) {\r\n return this.baseDataService.mutate<DeleteFacets.Mutation, DeleteFacets.Variables>(DELETE_FACETS, {\r\n ids,\r\n force,\r\n });\r\n }\r\n\r\n createFacetValues(facetValues: CreateFacetValueInput[]) {\r\n const input: CreateFacetValues.Variables = {\r\n input: facetValues.map(pick(['facetId', 'code', 'translations', 'customFields'])),\r\n };\r\n return this.baseDataService.mutate<CreateFacetValues.Mutation, CreateFacetValues.Variables>(\r\n CREATE_FACET_VALUES,\r\n input,\r\n );\r\n }\r\n\r\n updateFacetValues(facetValues: UpdateFacetValueInput[]) {\r\n const input: UpdateFacetValues.Variables = {\r\n input: facetValues.map(pick(['id', 'code', 'translations', 'customFields'])),\r\n };\r\n return this.baseDataService.mutate<UpdateFacetValues.Mutation, UpdateFacetValues.Variables>(\r\n UPDATE_FACET_VALUES,\r\n input,\r\n );\r\n }\r\n\r\n deleteFacetValues(ids: string[], force: boolean) {\r\n return this.baseDataService.mutate<DeleteFacetValues.Mutation, DeleteFacetValues.Variables>(\r\n DELETE_FACET_VALUES,\r\n {\r\n ids,\r\n force,\r\n },\r\n );\r\n }\r\n\r\n assignFacetsToChannel(input: AssignFacetsToChannelInput) {\r\n return this.baseDataService.mutate<AssignFacetsToChannel.Mutation, AssignFacetsToChannel.Variables>(\r\n ASSIGN_FACETS_TO_CHANNEL,\r\n {\r\n input,\r\n },\r\n );\r\n }\r\n\r\n removeFacetsFromChannel(input: RemoveFacetsFromChannelInput) {\r\n return this.baseDataService.mutate<\r\n RemoveFacetsFromChannel.Mutation,\r\n RemoveFacetsFromChannel.Variables\r\n >(REMOVE_FACETS_FROM_CHANNEL, {\r\n input,\r\n });\r\n }\r\n}\r\n","import { gql } from 'apollo-angular';\r\n\r\nimport { ERROR_RESULT_FRAGMENT } from './shared-definitions';\r\n\r\nexport const DISCOUNT_FRAGMENT = gql`\r\n fragment Discount on Discount {\r\n adjustmentSource\r\n amount\r\n amountWithTax\r\n description\r\n type\r\n }\r\n`;\r\n\r\nexport const PAYMENT_FRAGMENT = gql`\r\n fragment Payment on Payment {\r\n id\r\n transactionId\r\n amount\r\n method\r\n state\r\n metadata\r\n }\r\n`;\r\n\r\nexport const REFUND_FRAGMENT = gql`\r\n fragment Refund on Refund {\r\n id\r\n state\r\n items\r\n shipping\r\n adjustment\r\n transactionId\r\n paymentId\r\n }\r\n`;\r\n\r\nexport const ORDER_ADDRESS_FRAGMENT = gql`\r\n fragment OrderAddress on OrderAddress {\r\n fullName\r\n company\r\n streetLine1\r\n streetLine2\r\n city\r\n province\r\n postalCode\r\n country\r\n countryCode\r\n phoneNumber\r\n }\r\n`;\r\n\r\nexport const ORDER_FRAGMENT = gql`\r\n fragment Order on Order {\r\n id\r\n createdAt\r\n updatedAt\r\n orderPlacedAt\r\n code\r\n state\r\n nextStates\r\n total\r\n totalWithTax\r\n currencyCode\r\n customer {\r\n id\r\n firstName\r\n lastName\r\n }\r\n shippingLines {\r\n shippingMethod {\r\n name\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const FULFILLMENT_FRAGMENT = gql`\r\n fragment Fulfillment on Fulfillment {\r\n id\r\n state\r\n nextStates\r\n createdAt\r\n updatedAt\r\n method\r\n summary {\r\n orderLine {\r\n id\r\n }\r\n quantity\r\n }\r\n trackingCode\r\n }\r\n`;\r\n\r\nexport const ORDER_LINE_FRAGMENT = gql`\r\n fragment OrderLine on OrderLine {\r\n id\r\n featuredAsset {\r\n preview\r\n }\r\n productVariant {\r\n id\r\n name\r\n sku\r\n trackInventory\r\n stockOnHand\r\n }\r\n discounts {\r\n ...Discount\r\n }\r\n fulfillments {\r\n ...Fulfillment\r\n }\r\n unitPrice\r\n unitPriceWithTax\r\n proratedUnitPrice\r\n proratedUnitPriceWithTax\r\n quantity\r\n items {\r\n id\r\n refundId\r\n cancelled\r\n }\r\n linePrice\r\n lineTax\r\n linePriceWithTax\r\n discountedLinePrice\r\n discountedLinePriceWithTax\r\n }\r\n`;\r\n\r\nexport const ORDER_DETAIL_FRAGMENT = gql`\r\n fragment OrderDetail on Order {\r\n id\r\n createdAt\r\n updatedAt\r\n code\r\n state\r\n nextStates\r\n active\r\n couponCodes\r\n customer {\r\n id\r\n firstName\r\n lastName\r\n }\r\n lines {\r\n ...OrderLine\r\n }\r\n surcharges {\r\n id\r\n sku\r\n description\r\n price\r\n priceWithTax\r\n taxRate\r\n }\r\n discounts {\r\n ...Discount\r\n }\r\n promotions {\r\n id\r\n couponCode\r\n }\r\n subTotal\r\n subTotalWithTax\r\n total\r\n totalWithTax\r\n currencyCode\r\n shipping\r\n shippingWithTax\r\n shippingLines {\r\n shippingMethod {\r\n id\r\n code\r\n name\r\n fulfillmentHandlerCode\r\n description\r\n }\r\n }\r\n taxSummary {\r\n description\r\n taxBase\r\n taxRate\r\n taxTotal\r\n }\r\n shippingAddress {\r\n ...OrderAddress\r\n }\r\n billingAddress {\r\n ...OrderAddress\r\n }\r\n payments {\r\n id\r\n createdAt\r\n transactionId\r\n amount\r\n method\r\n state\r\n nextStates\r\n errorMessage\r\n metadata\r\n refunds {\r\n id\r\n createdAt\r\n state\r\n items\r\n adjustment\r\n total\r\n paymentId\r\n reason\r\n transactionId\r\n method\r\n metadata\r\n orderItems {\r\n id\r\n }\r\n }\r\n }\r\n fulfillments {\r\n ...Fulfillment\r\n }\r\n modifications {\r\n id\r\n createdAt\r\n isSettled\r\n priceChange\r\n note\r\n payment {\r\n id\r\n amount\r\n }\r\n orderItems {\r\n id\r\n }\r\n refund {\r\n id\r\n paymentId\r\n total\r\n }\r\n surcharges {\r\n id\r\n }\r\n }\r\n }\r\n ${DISCOUNT_FRAGMENT}\r\n ${ORDER_ADDRESS_FRAGMENT}\r\n ${FULFILLMENT_FRAGMENT}\r\n ${ORDER_LINE_FRAGMENT}\r\n`;\r\n\r\nexport const GET_ORDERS_LIST = gql`\r\n query GetOrderList($options: OrderListOptions) {\r\n orders(options: $options) {\r\n items {\r\n ...Order\r\n }\r\n totalItems\r\n }\r\n }\r\n ${ORDER_FRAGMENT}\r\n`;\r\n\r\nexport const GET_ORDER = gql`\r\n query GetOrder($id: ID!) {\r\n order(id: $id) {\r\n ...OrderDetail\r\n }\r\n }\r\n ${ORDER_DETAIL_FRAGMENT}\r\n`;\r\n\r\nexport const SETTLE_PAYMENT = gql`\r\n mutation SettlePayment($id: ID!) {\r\n settlePayment(id: $id) {\r\n ...Payment\r\n ...ErrorResult\r\n ... on SettlePaymentError {\r\n paymentErrorMessage\r\n }\r\n ... on PaymentStateTransitionError {\r\n transitionError\r\n }\r\n ... on OrderStateTransitionError {\r\n transitionError\r\n }\r\n }\r\n }\r\n ${ERROR_RESULT_FRAGMENT}\r\n ${PAYMENT_FRAGMENT}\r\n`;\r\n\r\nexport const CANCEL_PAYMENT = gql`\r\n mutation CancelPayment($id: ID!) {\r\n cancelPayment(id: $id) {\r\n ...Payment\r\n ...ErrorResult\r\n ... on CancelPaymentError {\r\n paymentErrorMessage\r\n }\r\n ... on PaymentStateTransitionError {\r\n transitionError\r\n }\r\n }\r\n }\r\n ${ERROR_RESULT_FRAGMENT}\r\n ${PAYMENT_FRAGMENT}\r\n`;\r\n\r\nexport const TRANSITION_PAYMENT_TO_STATE = gql`\r\n mutation TransitionPaymentToState($id: ID!, $state: String!) {\r\n transitionPaymentToState(id: $id, state: $state) {\r\n ...Payment\r\n ...ErrorResult\r\n ... on PaymentStateTransitionError {\r\n transitionError\r\n }\r\n }\r\n }\r\n ${PAYMENT_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_FULFILLMENT = gql`\r\n mutation CreateFulfillment($input: FulfillOrderInput!) {\r\n addFulfillmentToOrder(input: $input) {\r\n ...Fulfillment\r\n ... on CreateFulfillmentError {\r\n errorCode\r\n message\r\n fulfillmentHandlerError\r\n }\r\n ... on FulfillmentStateTransitionError {\r\n errorCode\r\n message\r\n transitionError\r\n }\r\n ...ErrorResult\r\n }\r\n }\r\n ${FULFILLMENT_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const CANCEL_ORDER = gql`\r\n mutation CancelOrder($input: CancelOrderInput!) {\r\n cancelOrder(input: $input) {\r\n ...OrderDetail\r\n ...ErrorResult\r\n }\r\n }\r\n ${ORDER_DETAIL_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const REFUND_ORDER = gql`\r\n mutation RefundOrder($input: RefundOrderInput!) {\r\n refundOrder(input: $input) {\r\n ...Refund\r\n ...ErrorResult\r\n }\r\n }\r\n ${REFUND_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const SETTLE_REFUND = gql`\r\n mutation SettleRefund($input: SettleRefundInput!) {\r\n settleRefund(input: $input) {\r\n ...Refund\r\n ...ErrorResult\r\n }\r\n }\r\n ${REFUND_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const GET_ORDER_HISTORY = gql`\r\n query GetOrderHistory($id: ID!, $options: HistoryEntryListOptions) {\r\n order(id: $id) {\r\n id\r\n history(options: $options) {\r\n totalItems\r\n items {\r\n id\r\n type\r\n createdAt\r\n isPublic\r\n administrator {\r\n id\r\n firstName\r\n lastName\r\n }\r\n data\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const ADD_NOTE_TO_ORDER = gql`\r\n mutation AddNoteToOrder($input: AddNoteToOrderInput!) {\r\n addNoteToOrder(input: $input) {\r\n id\r\n }\r\n }\r\n`;\r\n\r\nexport const UPDATE_ORDER_NOTE = gql`\r\n mutation UpdateOrderNote($input: UpdateOrderNoteInput!) {\r\n updateOrderNote(input: $input) {\r\n id\r\n data\r\n isPublic\r\n }\r\n }\r\n`;\r\n\r\nexport const DELETE_ORDER_NOTE = gql`\r\n mutation DeleteOrderNote($id: ID!) {\r\n deleteOrderNote(id: $id) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const TRANSITION_ORDER_TO_STATE = gql`\r\n mutation TransitionOrderToState($id: ID!, $state: String!) {\r\n transitionOrderToState(id: $id, state: $state) {\r\n ...Order\r\n ...ErrorResult\r\n ... on OrderStateTransitionError {\r\n transitionError\r\n }\r\n }\r\n }\r\n ${ORDER_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_ORDER_CUSTOM_FIELDS = gql`\r\n mutation UpdateOrderCustomFields($input: UpdateOrderInput!) {\r\n setOrderCustomFields(input: $input) {\r\n ...Order\r\n }\r\n }\r\n ${ORDER_FRAGMENT}\r\n`;\r\n\r\nexport const TRANSITION_FULFILLMENT_TO_STATE = gql`\r\n mutation TransitionFulfillmentToState($id: ID!, $state: String!) {\r\n transitionFulfillmentToState(id: $id, state: $state) {\r\n ...Fulfillment\r\n ...ErrorResult\r\n ... on FulfillmentStateTransitionError {\r\n transitionError\r\n }\r\n }\r\n }\r\n ${FULFILLMENT_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const GET_ORDER_SUMMARY = gql`\r\n query GetOrderSummary($start: DateTime!, $end: DateTime!) {\r\n orders(options: { filter: { orderPlacedAt: { between: { start: $start, end: $end } } } }) {\r\n totalItems\r\n items {\r\n id\r\n total\r\n currencyCode\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const MODIFY_ORDER = gql`\r\n mutation ModifyOrder($input: ModifyOrderInput!) {\r\n modifyOrder(input: $input) {\r\n ...OrderDetail\r\n ...ErrorResult\r\n }\r\n }\r\n ${ORDER_DETAIL_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const ADD_MANUAL_PAYMENT_TO_ORDER = gql`\r\n mutation AddManualPayment($input: ManualPaymentInput!) {\r\n addManualPaymentToOrder(input: $input) {\r\n ...OrderDetail\r\n ...ErrorResult\r\n }\r\n }\r\n ${ORDER_DETAIL_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_DRAFT_ORDER = gql`\r\n mutation CreateDraftOrder {\r\n createDraftOrder {\r\n ...OrderDetail\r\n }\r\n }\r\n ${ORDER_DETAIL_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_DRAFT_ORDER = gql`\r\n mutation DeleteDraftOrder($orderId: ID!) {\r\n deleteDraftOrder(orderId: $orderId) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const ADD_ITEM_TO_DRAFT_ORDER = gql`\r\n mutation AddItemToDraftOrder($orderId: ID!, $input: AddItemToDraftOrderInput!) {\r\n addItemToDraftOrder(orderId: $orderId, input: $input) {\r\n ...OrderDetail\r\n ...ErrorResult\r\n }\r\n }\r\n ${ORDER_DETAIL_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const ADJUST_DRAFT_ORDER_LINE = gql`\r\n mutation AdjustDraftOrderLine($orderId: ID!, $input: AdjustDraftOrderLineInput!) {\r\n adjustDraftOrderLine(orderId: $orderId, input: $input) {\r\n ...OrderDetail\r\n ...ErrorResult\r\n }\r\n }\r\n ${ORDER_DETAIL_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const REMOVE_DRAFT_ORDER_LINE = gql`\r\n mutation RemoveDraftOrderLine($orderId: ID!, $orderLineId: ID!) {\r\n removeDraftOrderLine(orderId: $orderId, orderLineId: $orderLineId) {\r\n ...OrderDetail\r\n ...ErrorResult\r\n }\r\n }\r\n ${ORDER_DETAIL_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const SET_CUSTOMER_FOR_DRAFT_ORDER = gql`\r\n mutation SetCustomerForDraftOrder($orderId: ID!, $customerId: ID, $input: CreateCustomerInput) {\r\n setCustomerForDraftOrder(orderId: $orderId, customerId: $customerId, input: $input) {\r\n ...OrderDetail\r\n ...ErrorResult\r\n }\r\n }\r\n ${ORDER_DETAIL_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const SET_SHIPPING_ADDRESS_FOR_DRAFT_ORDER = gql`\r\n mutation SetDraftOrderShippingAddress($orderId: ID!, $input: CreateAddressInput!) {\r\n setDraftOrderShippingAddress(orderId: $orderId, input: $input) {\r\n ...OrderDetail\r\n }\r\n }\r\n ${ORDER_DETAIL_FRAGMENT}\r\n`;\r\n\r\nexport const SET_BILLING_ADDRESS_FOR_DRAFT_ORDER = gql`\r\n mutation SetDraftOrderBillingAddress($orderId: ID!, $input: CreateAddressInput!) {\r\n setDraftOrderBillingAddress(orderId: $orderId, input: $input) {\r\n ...OrderDetail\r\n }\r\n }\r\n ${ORDER_DETAIL_FRAGMENT}\r\n`;\r\n\r\nexport const APPLY_COUPON_CODE_TO_DRAFT_ORDER = gql`\r\n mutation ApplyCouponCodeToDraftOrder($orderId: ID!, $couponCode: String!) {\r\n applyCouponCodeToDraftOrder(orderId: $orderId, couponCode: $couponCode) {\r\n ...OrderDetail\r\n ...ErrorResult\r\n }\r\n }\r\n ${ORDER_DETAIL_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const REMOVE_COUPON_CODE_FROM_DRAFT_ORDER = gql`\r\n mutation RemoveCouponCodeFromDraftOrder($orderId: ID!, $couponCode: String!) {\r\n removeCouponCodeFromDraftOrder(orderId: $orderId, couponCode: $couponCode) {\r\n ...OrderDetail\r\n }\r\n }\r\n ${ORDER_DETAIL_FRAGMENT}\r\n`;\r\n\r\nexport const DRAFT_ORDER_ELIGIBLE_SHIPPING_METHODS = gql`\r\n query DraftOrderEligibleShippingMethods($orderId: ID!) {\r\n eligibleShippingMethodsForDraftOrder(orderId: $orderId) {\r\n id\r\n name\r\n code\r\n description\r\n price\r\n priceWithTax\r\n metadata\r\n }\r\n }\r\n`;\r\n\r\nexport const SET_DRAFT_ORDER_SHIPPING_METHOD = gql`\r\n mutation SetDraftOrderShippingMethod($orderId: ID!, $shippingMethodId: ID!) {\r\n setDraftOrderShippingMethod(orderId: $orderId, shippingMethodId: $shippingMethodId) {\r\n ...OrderDetail\r\n ...ErrorResult\r\n }\r\n }\r\n ${ORDER_DETAIL_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n","import {\r\n AddItemToDraftOrderInput,\r\n AddItemToDraftOrderMutation,\r\n AddItemToDraftOrderMutationVariables,\r\n AddManualPayment,\r\n AddNoteToOrder,\r\n AddNoteToOrderInput,\r\n AdjustDraftOrderLineInput,\r\n AdjustDraftOrderLineMutation,\r\n AdjustDraftOrderLineMutationVariables,\r\n ApplyCouponCodeToDraftOrderMutation,\r\n ApplyCouponCodeToDraftOrderMutationVariables,\r\n CancelOrder,\r\n CancelOrderInput,\r\n CancelPayment,\r\n CreateAddressInput,\r\n CreateCustomerInput,\r\n CreateDraftOrderMutation,\r\n CreateDraftOrderMutationVariables,\r\n CreateFulfillment,\r\n DeleteDraftOrderMutation,\r\n DeleteDraftOrderMutationVariables,\r\n DeleteOrderNote,\r\n DraftOrderEligibleShippingMethodsQuery,\r\n DraftOrderEligibleShippingMethodsQueryVariables,\r\n FulfillOrderInput,\r\n GetOrder,\r\n GetOrderHistory,\r\n GetOrderList,\r\n GetOrderSummary,\r\n HistoryEntryListOptions,\r\n ManualPaymentInput,\r\n ModifyOrder,\r\n ModifyOrderInput,\r\n OrderListOptions,\r\n RefundOrder,\r\n RefundOrderInput,\r\n RemoveCouponCodeFromDraftOrderMutation,\r\n RemoveCouponCodeFromDraftOrderMutationVariables,\r\n RemoveDraftOrderLineMutation,\r\n RemoveDraftOrderLineMutationVariables,\r\n SetCustomerForDraftOrderMutation,\r\n SetCustomerForDraftOrderMutationVariables,\r\n SetDraftOrderBillingAddressMutation,\r\n SetDraftOrderBillingAddressMutationVariables,\r\n SetDraftOrderShippingAddressMutation,\r\n SetDraftOrderShippingAddressMutationVariables,\r\n SetDraftOrderShippingMethodMutation,\r\n SetDraftOrderShippingMethodMutationVariables,\r\n SettlePayment,\r\n SettleRefund,\r\n SettleRefundInput,\r\n TransitionFulfillmentToState,\r\n TransitionOrderToState,\r\n TransitionPaymentToState,\r\n UpdateOrderCustomFields,\r\n UpdateOrderInput,\r\n UpdateOrderNote,\r\n UpdateOrderNoteInput,\r\n} from '../../common/generated-types';\r\nimport {\r\n ADD_ITEM_TO_DRAFT_ORDER,\r\n ADD_MANUAL_PAYMENT_TO_ORDER,\r\n ADD_NOTE_TO_ORDER,\r\n ADJUST_DRAFT_ORDER_LINE,\r\n CANCEL_ORDER,\r\n CANCEL_PAYMENT,\r\n CREATE_DRAFT_ORDER,\r\n CREATE_FULFILLMENT,\r\n DELETE_ORDER_NOTE,\r\n GET_ORDER,\r\n GET_ORDERS_LIST,\r\n GET_ORDER_HISTORY,\r\n GET_ORDER_SUMMARY,\r\n MODIFY_ORDER,\r\n REFUND_ORDER,\r\n REMOVE_DRAFT_ORDER_LINE,\r\n SETTLE_PAYMENT,\r\n SETTLE_REFUND,\r\n SET_CUSTOMER_FOR_DRAFT_ORDER,\r\n TRANSITION_FULFILLMENT_TO_STATE,\r\n TRANSITION_ORDER_TO_STATE,\r\n TRANSITION_PAYMENT_TO_STATE,\r\n UPDATE_ORDER_CUSTOM_FIELDS,\r\n UPDATE_ORDER_NOTE,\r\n SET_SHIPPING_ADDRESS_FOR_DRAFT_ORDER,\r\n SET_BILLING_ADDRESS_FOR_DRAFT_ORDER,\r\n APPLY_COUPON_CODE_TO_DRAFT_ORDER,\r\n REMOVE_COUPON_CODE_FROM_DRAFT_ORDER,\r\n DRAFT_ORDER_ELIGIBLE_SHIPPING_METHODS,\r\n SET_DRAFT_ORDER_SHIPPING_METHOD,\r\n DELETE_DRAFT_ORDER,\r\n} from '../definitions/order-definitions';\r\n\r\nimport { BaseDataService } from './base-data.service';\r\n\r\nexport class OrderDataService {\r\n constructor(private baseDataService: BaseDataService) {}\r\n\r\n getOrders(options: OrderListOptions = { take: 10 }) {\r\n return this.baseDataService.query<GetOrderList.Query, GetOrderList.Variables>(GET_ORDERS_LIST, {\r\n options,\r\n });\r\n }\r\n\r\n getOrder(id: string) {\r\n return this.baseDataService.query<GetOrder.Query, GetOrder.Variables>(GET_ORDER, { id });\r\n }\r\n\r\n getOrderHistory(id: string, options?: HistoryEntryListOptions) {\r\n return this.baseDataService.query<GetOrderHistory.Query, GetOrderHistory.Variables>(\r\n GET_ORDER_HISTORY,\r\n {\r\n id,\r\n options,\r\n },\r\n );\r\n }\r\n\r\n settlePayment(id: string) {\r\n return this.baseDataService.mutate<SettlePayment.Mutation, SettlePayment.Variables>(SETTLE_PAYMENT, {\r\n id,\r\n });\r\n }\r\n\r\n cancelPayment(id: string) {\r\n return this.baseDataService.mutate<CancelPayment.Mutation, CancelPayment.Variables>(CANCEL_PAYMENT, {\r\n id,\r\n });\r\n }\r\n\r\n transitionPaymentToState(id: string, state: string) {\r\n return this.baseDataService.mutate<\r\n TransitionPaymentToState.Mutation,\r\n TransitionPaymentToState.Variables\r\n >(TRANSITION_PAYMENT_TO_STATE, {\r\n id,\r\n state,\r\n });\r\n }\r\n\r\n createFulfillment(input: FulfillOrderInput) {\r\n return this.baseDataService.mutate<CreateFulfillment.Mutation, CreateFulfillment.Variables>(\r\n CREATE_FULFILLMENT,\r\n {\r\n input,\r\n },\r\n );\r\n }\r\n\r\n transitionFulfillmentToState(id: string, state: string) {\r\n return this.baseDataService.mutate<\r\n TransitionFulfillmentToState.Mutation,\r\n TransitionFulfillmentToState.Variables\r\n >(TRANSITION_FULFILLMENT_TO_STATE, {\r\n id,\r\n state,\r\n });\r\n }\r\n\r\n cancelOrder(input: CancelOrderInput) {\r\n return this.baseDataService.mutate<CancelOrder.Mutation, CancelOrder.Variables>(CANCEL_ORDER, {\r\n input,\r\n });\r\n }\r\n\r\n refundOrder(input: RefundOrderInput) {\r\n return this.baseDataService.mutate<RefundOrder.Mutation, RefundOrder.Variables>(REFUND_ORDER, {\r\n input,\r\n });\r\n }\r\n\r\n settleRefund(input: SettleRefundInput, orderId: string) {\r\n return this.baseDataService.mutate<SettleRefund.Mutation, SettleRefund.Variables>(SETTLE_REFUND, {\r\n input,\r\n });\r\n }\r\n\r\n addNoteToOrder(input: AddNoteToOrderInput) {\r\n return this.baseDataService.mutate<AddNoteToOrder.Mutation, AddNoteToOrder.Variables>(\r\n ADD_NOTE_TO_ORDER,\r\n {\r\n input,\r\n },\r\n );\r\n }\r\n\r\n updateOrderNote(input: UpdateOrderNoteInput) {\r\n return this.baseDataService.mutate<UpdateOrderNote.Mutation, UpdateOrderNote.Variables>(\r\n UPDATE_ORDER_NOTE,\r\n {\r\n input,\r\n },\r\n );\r\n }\r\n\r\n deleteOrderNote(id: string) {\r\n return this.baseDataService.mutate<DeleteOrderNote.Mutation, DeleteOrderNote.Variables>(\r\n DELETE_ORDER_NOTE,\r\n {\r\n id,\r\n },\r\n );\r\n }\r\n\r\n transitionToState(id: string, state: string) {\r\n return this.baseDataService.mutate<TransitionOrderToState.Mutation, TransitionOrderToState.Variables>(\r\n TRANSITION_ORDER_TO_STATE,\r\n {\r\n id,\r\n state,\r\n },\r\n );\r\n }\r\n\r\n updateOrderCustomFields(input: UpdateOrderInput) {\r\n return this.baseDataService.mutate<\r\n UpdateOrderCustomFields.Mutation,\r\n UpdateOrderCustomFields.Variables\r\n >(UPDATE_ORDER_CUSTOM_FIELDS, {\r\n input,\r\n });\r\n }\r\n\r\n getOrderSummary(start: Date, end: Date) {\r\n return this.baseDataService.query<GetOrderSummary.Query, GetOrderSummary.Variables>(\r\n GET_ORDER_SUMMARY,\r\n {\r\n start: start.toISOString(),\r\n end: end.toISOString(),\r\n },\r\n );\r\n }\r\n\r\n modifyOrder(input: ModifyOrderInput) {\r\n return this.baseDataService.mutate<ModifyOrder.Mutation, ModifyOrder.Variables>(MODIFY_ORDER, {\r\n input,\r\n });\r\n }\r\n\r\n addManualPaymentToOrder(input: ManualPaymentInput) {\r\n return this.baseDataService.mutate<AddManualPayment.Mutation, AddManualPayment.Variables>(\r\n ADD_MANUAL_PAYMENT_TO_ORDER,\r\n { input },\r\n );\r\n }\r\n\r\n createDraftOrder() {\r\n return this.baseDataService.mutate<CreateDraftOrderMutation>(CREATE_DRAFT_ORDER);\r\n }\r\n\r\n deleteDraftOrder(orderId: string) {\r\n return this.baseDataService.mutate<DeleteDraftOrderMutation, DeleteDraftOrderMutationVariables>(\r\n DELETE_DRAFT_ORDER,\r\n { orderId },\r\n );\r\n }\r\n\r\n addItemToDraftOrder(orderId: string, input: AddItemToDraftOrderInput) {\r\n return this.baseDataService.mutate<AddItemToDraftOrderMutation, AddItemToDraftOrderMutationVariables>(\r\n ADD_ITEM_TO_DRAFT_ORDER,\r\n { orderId, input },\r\n );\r\n }\r\n\r\n adjustDraftOrderLine(orderId: string, input: AdjustDraftOrderLineInput) {\r\n return this.baseDataService.mutate<\r\n AdjustDraftOrderLineMutation,\r\n AdjustDraftOrderLineMutationVariables\r\n >(ADJUST_DRAFT_ORDER_LINE, { orderId, input });\r\n }\r\n\r\n removeDraftOrderLine(orderId: string, orderLineId: string) {\r\n return this.baseDataService.mutate<\r\n RemoveDraftOrderLineMutation,\r\n RemoveDraftOrderLineMutationVariables\r\n >(REMOVE_DRAFT_ORDER_LINE, { orderId, orderLineId });\r\n }\r\n\r\n setCustomerForDraftOrder(\r\n orderId: string,\r\n { customerId, input }: { customerId?: string; input?: CreateCustomerInput },\r\n ) {\r\n return this.baseDataService.mutate<\r\n SetCustomerForDraftOrderMutation,\r\n SetCustomerForDraftOrderMutationVariables\r\n >(SET_CUSTOMER_FOR_DRAFT_ORDER, { orderId, customerId, input });\r\n }\r\n\r\n setDraftOrderShippingAddress(orderId: string, input: CreateAddressInput) {\r\n return this.baseDataService.mutate<\r\n SetDraftOrderShippingAddressMutation,\r\n SetDraftOrderShippingAddressMutationVariables\r\n >(SET_SHIPPING_ADDRESS_FOR_DRAFT_ORDER, { orderId, input });\r\n }\r\n\r\n setDraftOrderBillingAddress(orderId: string, input: CreateAddressInput) {\r\n return this.baseDataService.mutate<\r\n SetDraftOrderBillingAddressMutation,\r\n SetDraftOrderBillingAddressMutationVariables\r\n >(SET_BILLING_ADDRESS_FOR_DRAFT_ORDER, { orderId, input });\r\n }\r\n\r\n applyCouponCodeToDraftOrder(orderId: string, couponCode: string) {\r\n return this.baseDataService.mutate<\r\n ApplyCouponCodeToDraftOrderMutation,\r\n ApplyCouponCodeToDraftOrderMutationVariables\r\n >(APPLY_COUPON_CODE_TO_DRAFT_ORDER, { orderId, couponCode });\r\n }\r\n\r\n removeCouponCodeFromDraftOrder(orderId: string, couponCode: string) {\r\n return this.baseDataService.mutate<\r\n RemoveCouponCodeFromDraftOrderMutation,\r\n RemoveCouponCodeFromDraftOrderMutationVariables\r\n >(REMOVE_COUPON_CODE_FROM_DRAFT_ORDER, { orderId, couponCode });\r\n }\r\n\r\n getDraftOrderEligibleShippingMethods(orderId: string) {\r\n return this.baseDataService.query<\r\n DraftOrderEligibleShippingMethodsQuery,\r\n DraftOrderEligibleShippingMethodsQueryVariables\r\n >(DRAFT_ORDER_ELIGIBLE_SHIPPING_METHODS, { orderId });\r\n }\r\n\r\n setDraftOrderShippingMethod(orderId: string, shippingMethodId: string) {\r\n return this.baseDataService.mutate<\r\n SetDraftOrderShippingMethodMutation,\r\n SetDraftOrderShippingMethodMutationVariables\r\n >(SET_DRAFT_ORDER_SHIPPING_METHOD, { orderId, shippingMethodId });\r\n }\r\n}\r\n","import { pick } from '@vendure/common/lib/pick';\r\n\r\nimport {\r\n AddOptionGroupToProduct,\r\n AddOptionToGroup,\r\n AssignProductsToChannel,\r\n AssignProductsToChannelInput,\r\n AssignProductVariantsToChannelInput,\r\n AssignVariantsToChannel,\r\n CreateAssets,\r\n CreateProduct,\r\n CreateProductInput,\r\n CreateProductOptionGroup,\r\n CreateProductOptionGroupInput,\r\n CreateProductOptionInput,\r\n CreateProductVariantInput,\r\n CreateProductVariants,\r\n CreateTag,\r\n CreateTagInput,\r\n DeleteAssets,\r\n DeleteProduct,\r\n DeleteProductOption,\r\n DeleteProducts,\r\n DeleteProductVariant,\r\n DeleteTag,\r\n GetAsset,\r\n GetAssetList,\r\n GetPendingSearchIndexUpdates,\r\n GetProductList,\r\n GetProductOptionGroup,\r\n GetProductOptionGroups,\r\n GetProductSimple,\r\n GetProductVariant,\r\n GetProductVariantList,\r\n GetProductVariantListSimple,\r\n GetProductVariantOptions,\r\n GetProductWithVariants,\r\n GetTag,\r\n GetTagList,\r\n ProductListOptions,\r\n ProductSelectorSearch,\r\n ProductVariantListOptions,\r\n Reindex,\r\n RemoveOptionGroupFromProduct,\r\n RemoveProductsFromChannel,\r\n RemoveProductsFromChannelInput,\r\n RemoveProductVariantsFromChannelInput,\r\n RemoveVariantsFromChannel,\r\n RunPendingSearchIndexUpdates,\r\n SearchProducts,\r\n SortOrder,\r\n TagListOptions,\r\n UpdateAsset,\r\n UpdateAssetInput,\r\n UpdateProduct,\r\n UpdateProductInput,\r\n UpdateProductOption,\r\n UpdateProductOptionGroup,\r\n UpdateProductOptionGroupInput,\r\n UpdateProductOptionInput,\r\n UpdateProductVariantInput,\r\n UpdateProductVariants,\r\n UpdateTag,\r\n UpdateTagInput,\r\n} from '../../common/generated-types';\r\nimport {\r\n ADD_OPTION_GROUP_TO_PRODUCT,\r\n ADD_OPTION_TO_GROUP,\r\n ASSIGN_PRODUCTS_TO_CHANNEL,\r\n ASSIGN_VARIANTS_TO_CHANNEL,\r\n CREATE_ASSETS,\r\n CREATE_PRODUCT,\r\n CREATE_PRODUCT_OPTION_GROUP,\r\n CREATE_PRODUCT_VARIANTS,\r\n CREATE_TAG,\r\n DELETE_ASSETS,\r\n DELETE_PRODUCT,\r\n DELETE_PRODUCT_OPTION,\r\n DELETE_PRODUCT_VARIANT,\r\n DELETE_PRODUCTS,\r\n DELETE_TAG,\r\n GET_ASSET,\r\n GET_ASSET_LIST,\r\n GET_PRODUCT_LIST,\r\n GET_PRODUCT_OPTION_GROUP,\r\n GET_PRODUCT_OPTION_GROUPS,\r\n GET_PRODUCT_SIMPLE,\r\n GET_PRODUCT_VARIANT,\r\n GET_PRODUCT_VARIANT_LIST,\r\n GET_PRODUCT_VARIANT_LIST_SIMPLE,\r\n GET_PRODUCT_VARIANT_OPTIONS,\r\n GET_PRODUCT_WITH_VARIANTS,\r\n GET_TAG,\r\n GET_TAG_LIST,\r\n PRODUCT_SELECTOR_SEARCH,\r\n REMOVE_OPTION_GROUP_FROM_PRODUCT,\r\n REMOVE_PRODUCTS_FROM_CHANNEL,\r\n REMOVE_VARIANTS_FROM_CHANNEL,\r\n SEARCH_PRODUCTS,\r\n UPDATE_ASSET,\r\n UPDATE_PRODUCT,\r\n UPDATE_PRODUCT_OPTION,\r\n UPDATE_PRODUCT_OPTION_GROUP,\r\n UPDATE_PRODUCT_VARIANTS,\r\n UPDATE_TAG,\r\n} from '../definitions/product-definitions';\r\nimport {\r\n GET_PENDING_SEARCH_INDEX_UPDATES,\r\n REINDEX,\r\n RUN_PENDING_SEARCH_INDEX_UPDATES,\r\n} from '../definitions/settings-definitions';\r\n\r\nimport { BaseDataService } from './base-data.service';\r\n\r\nexport class ProductDataService {\r\n constructor(private baseDataService: BaseDataService) {}\r\n\r\n searchProducts(term: string, take: number = 10, skip: number = 0) {\r\n return this.baseDataService.query<SearchProducts.Query, SearchProducts.Variables>(SEARCH_PRODUCTS, {\r\n input: {\r\n term,\r\n take,\r\n skip,\r\n groupByProduct: true,\r\n },\r\n });\r\n }\r\n\r\n productSelectorSearch(term: string, take: number) {\r\n return this.baseDataService.query<ProductSelectorSearch.Query, ProductSelectorSearch.Variables>(\r\n PRODUCT_SELECTOR_SEARCH,\r\n {\r\n take,\r\n term,\r\n },\r\n );\r\n }\r\n\r\n reindex() {\r\n return this.baseDataService.mutate<Reindex.Mutation>(REINDEX);\r\n }\r\n\r\n getPendingSearchIndexUpdates() {\r\n return this.baseDataService.query<GetPendingSearchIndexUpdates.Query>(\r\n GET_PENDING_SEARCH_INDEX_UPDATES,\r\n );\r\n }\r\n\r\n runPendingSearchIndexUpdates() {\r\n return this.baseDataService.mutate<RunPendingSearchIndexUpdates.Mutation>(\r\n RUN_PENDING_SEARCH_INDEX_UPDATES,\r\n );\r\n }\r\n\r\n getProducts(options: ProductListOptions) {\r\n return this.baseDataService.query<GetProductList.Query, GetProductList.Variables>(GET_PRODUCT_LIST, {\r\n options,\r\n });\r\n }\r\n\r\n getProduct(id: string, variantListOptions?: ProductVariantListOptions) {\r\n return this.baseDataService.query<GetProductWithVariants.Query, GetProductWithVariants.Variables>(\r\n GET_PRODUCT_WITH_VARIANTS,\r\n {\r\n id,\r\n variantListOptions,\r\n },\r\n );\r\n }\r\n\r\n getProductSimple(id: string) {\r\n return this.baseDataService.query<GetProductSimple.Query, GetProductSimple.Variables>(\r\n GET_PRODUCT_SIMPLE,\r\n {\r\n id,\r\n },\r\n );\r\n }\r\n\r\n getProductVariantsSimple(options: ProductVariantListOptions, productId?: string) {\r\n return this.baseDataService.query<\r\n GetProductVariantListSimple.Query,\r\n GetProductVariantListSimple.Variables\r\n >(GET_PRODUCT_VARIANT_LIST_SIMPLE, { options, productId });\r\n }\r\n\r\n getProductVariants(options: ProductVariantListOptions, productId?: string) {\r\n return this.baseDataService.query<GetProductVariantList.Query, GetProductVariantList.Variables>(\r\n GET_PRODUCT_VARIANT_LIST,\r\n { options, productId },\r\n );\r\n }\r\n\r\n getProductVariant(id: string) {\r\n return this.baseDataService.query<GetProductVariant.Query, GetProductVariant.Variables>(\r\n GET_PRODUCT_VARIANT,\r\n { id },\r\n );\r\n }\r\n\r\n getProductVariantsOptions(id: string) {\r\n return this.baseDataService.query<GetProductVariantOptions.Query, GetProductVariantOptions.Variables>(\r\n GET_PRODUCT_VARIANT_OPTIONS,\r\n {\r\n id,\r\n },\r\n );\r\n }\r\n\r\n getProductOptionGroup(id: string) {\r\n return this.baseDataService.query<GetProductOptionGroup.Query, GetProductOptionGroup.Variables>(\r\n GET_PRODUCT_OPTION_GROUP,\r\n {\r\n id,\r\n },\r\n );\r\n }\r\n\r\n createProduct(product: CreateProductInput) {\r\n const input: CreateProduct.Variables = {\r\n input: pick(product, [\r\n 'enabled',\r\n 'translations',\r\n 'customFields',\r\n 'assetIds',\r\n 'featuredAssetId',\r\n 'facetValueIds',\r\n ]),\r\n };\r\n return this.baseDataService.mutate<CreateProduct.Mutation, CreateProduct.Variables>(\r\n CREATE_PRODUCT,\r\n input,\r\n );\r\n }\r\n\r\n updateProduct(product: UpdateProductInput) {\r\n const input: UpdateProduct.Variables = {\r\n input: pick(product, [\r\n 'id',\r\n 'enabled',\r\n 'translations',\r\n 'customFields',\r\n 'assetIds',\r\n 'featuredAssetId',\r\n 'facetValueIds',\r\n ]),\r\n };\r\n return this.baseDataService.mutate<UpdateProduct.Mutation, UpdateProduct.Variables>(\r\n UPDATE_PRODUCT,\r\n input,\r\n );\r\n }\r\n\r\n deleteProduct(id: string) {\r\n return this.baseDataService.mutate<DeleteProduct.Mutation, DeleteProduct.Variables>(DELETE_PRODUCT, {\r\n id,\r\n });\r\n }\r\n\r\n deleteProducts(ids: string[]) {\r\n return this.baseDataService.mutate<DeleteProducts.Mutation, DeleteProducts.Variables>(\r\n DELETE_PRODUCTS,\r\n {\r\n ids,\r\n },\r\n );\r\n }\r\n\r\n createProductVariants(input: CreateProductVariantInput[]) {\r\n return this.baseDataService.mutate<CreateProductVariants.Mutation, CreateProductVariants.Variables>(\r\n CREATE_PRODUCT_VARIANTS,\r\n {\r\n input,\r\n },\r\n );\r\n }\r\n\r\n updateProductVariants(variants: UpdateProductVariantInput[]) {\r\n const input: UpdateProductVariants.Variables = {\r\n input: variants.map(\r\n pick([\r\n 'id',\r\n 'enabled',\r\n 'translations',\r\n 'sku',\r\n 'price',\r\n 'taxCategoryId',\r\n 'facetValueIds',\r\n 'featuredAssetId',\r\n 'assetIds',\r\n 'trackInventory',\r\n 'outOfStockThreshold',\r\n 'useGlobalOutOfStockThreshold',\r\n 'stockOnHand',\r\n 'customFields',\r\n ]),\r\n ),\r\n };\r\n return this.baseDataService.mutate<UpdateProductVariants.Mutation, UpdateProductVariants.Variables>(\r\n UPDATE_PRODUCT_VARIANTS,\r\n input,\r\n );\r\n }\r\n\r\n deleteProductVariant(id: string) {\r\n return this.baseDataService.mutate<DeleteProductVariant.Mutation, DeleteProductVariant.Variables>(\r\n DELETE_PRODUCT_VARIANT,\r\n {\r\n id,\r\n },\r\n );\r\n }\r\n\r\n createProductOptionGroups(productOptionGroup: CreateProductOptionGroupInput) {\r\n const input: CreateProductOptionGroup.Variables = {\r\n input: productOptionGroup,\r\n };\r\n return this.baseDataService.mutate<\r\n CreateProductOptionGroup.Mutation,\r\n CreateProductOptionGroup.Variables\r\n >(CREATE_PRODUCT_OPTION_GROUP, input);\r\n }\r\n\r\n addOptionGroupToProduct(variables: AddOptionGroupToProduct.Variables) {\r\n return this.baseDataService.mutate<\r\n AddOptionGroupToProduct.Mutation,\r\n AddOptionGroupToProduct.Variables\r\n >(ADD_OPTION_GROUP_TO_PRODUCT, variables);\r\n }\r\n\r\n addOptionToGroup(input: CreateProductOptionInput) {\r\n return this.baseDataService.mutate<AddOptionToGroup.Mutation, AddOptionToGroup.Variables>(\r\n ADD_OPTION_TO_GROUP,\r\n { input },\r\n );\r\n }\r\n\r\n deleteProductOption(id: string) {\r\n return this.baseDataService.mutate<DeleteProductOption.Mutation, DeleteProductOption.Variables>(\r\n DELETE_PRODUCT_OPTION,\r\n { id },\r\n );\r\n }\r\n\r\n removeOptionGroupFromProduct(variables: RemoveOptionGroupFromProduct.Variables) {\r\n return this.baseDataService.mutate<\r\n RemoveOptionGroupFromProduct.Mutation,\r\n RemoveOptionGroupFromProduct.Variables\r\n >(REMOVE_OPTION_GROUP_FROM_PRODUCT, variables);\r\n }\r\n\r\n updateProductOption(input: UpdateProductOptionInput) {\r\n return this.baseDataService.mutate<UpdateProductOption.Mutation, UpdateProductOption.Variables>(\r\n UPDATE_PRODUCT_OPTION,\r\n {\r\n input: pick(input, ['id', 'code', 'translations', 'customFields']),\r\n },\r\n );\r\n }\r\n\r\n updateProductOptionGroup(input: UpdateProductOptionGroupInput) {\r\n return this.baseDataService.mutate<\r\n UpdateProductOptionGroup.Mutation,\r\n UpdateProductOptionGroup.Variables\r\n >(UPDATE_PRODUCT_OPTION_GROUP, {\r\n input: pick(input, ['id', 'code', 'translations', 'customFields']),\r\n });\r\n }\r\n\r\n getProductOptionGroups(filterTerm?: string) {\r\n return this.baseDataService.query<GetProductOptionGroups.Query, GetProductOptionGroups.Variables>(\r\n GET_PRODUCT_OPTION_GROUPS,\r\n {\r\n filterTerm,\r\n },\r\n );\r\n }\r\n\r\n getAssetList(take: number = 10, skip: number = 0) {\r\n return this.baseDataService.query<GetAssetList.Query, GetAssetList.Variables>(GET_ASSET_LIST, {\r\n options: {\r\n skip,\r\n take,\r\n sort: {\r\n createdAt: SortOrder.DESC,\r\n },\r\n },\r\n });\r\n }\r\n\r\n getAsset(id: string) {\r\n return this.baseDataService.query<GetAsset.Query, GetAsset.Variables>(GET_ASSET, {\r\n id,\r\n });\r\n }\r\n\r\n createAssets(files: File[]) {\r\n return this.baseDataService.mutate<CreateAssets.Mutation, CreateAssets.Variables>(CREATE_ASSETS, {\r\n input: files.map(file => ({ file })),\r\n });\r\n }\r\n\r\n updateAsset(input: UpdateAssetInput) {\r\n return this.baseDataService.mutate<UpdateAsset.Mutation, UpdateAsset.Variables>(UPDATE_ASSET, {\r\n input,\r\n });\r\n }\r\n\r\n deleteAssets(ids: string[], force: boolean) {\r\n return this.baseDataService.mutate<DeleteAssets.Mutation, DeleteAssets.Variables>(DELETE_ASSETS, {\r\n input: {\r\n assetIds: ids,\r\n force,\r\n },\r\n });\r\n }\r\n\r\n assignProductsToChannel(input: AssignProductsToChannelInput) {\r\n return this.baseDataService.mutate<\r\n AssignProductsToChannel.Mutation,\r\n AssignProductsToChannel.Variables\r\n >(ASSIGN_PRODUCTS_TO_CHANNEL, {\r\n input,\r\n });\r\n }\r\n\r\n removeProductsFromChannel(input: RemoveProductsFromChannelInput) {\r\n return this.baseDataService.mutate<\r\n RemoveProductsFromChannel.Mutation,\r\n RemoveProductsFromChannel.Variables\r\n >(REMOVE_PRODUCTS_FROM_CHANNEL, {\r\n input,\r\n });\r\n }\r\n\r\n assignVariantsToChannel(input: AssignProductVariantsToChannelInput) {\r\n return this.baseDataService.mutate<\r\n AssignVariantsToChannel.Mutation,\r\n AssignVariantsToChannel.Variables\r\n >(ASSIGN_VARIANTS_TO_CHANNEL, {\r\n input,\r\n });\r\n }\r\n\r\n removeVariantsFromChannel(input: RemoveProductVariantsFromChannelInput) {\r\n return this.baseDataService.mutate<\r\n RemoveVariantsFromChannel.Mutation,\r\n RemoveVariantsFromChannel.Variables\r\n >(REMOVE_VARIANTS_FROM_CHANNEL, {\r\n input,\r\n });\r\n }\r\n\r\n getTag(id: string) {\r\n return this.baseDataService.query<GetTag.Query, GetTag.Variables>(GET_TAG, { id });\r\n }\r\n\r\n getTagList(options?: TagListOptions) {\r\n return this.baseDataService.query<GetTagList.Query, GetTagList.Variables>(GET_TAG_LIST, { options });\r\n }\r\n\r\n createTag(input: CreateTagInput) {\r\n return this.baseDataService.mutate<CreateTag.Mutation, CreateTag.Variables>(CREATE_TAG, { input });\r\n }\r\n\r\n updateTag(input: UpdateTagInput) {\r\n return this.baseDataService.mutate<UpdateTag.Mutation, UpdateTag.Variables>(UPDATE_TAG, { input });\r\n }\r\n\r\n deleteTag(id: string) {\r\n return this.baseDataService.mutate<DeleteTag.Mutation, DeleteTag.Variables>(DELETE_TAG, { id });\r\n }\r\n}\r\n","import { gql } from 'apollo-angular';\r\n\r\nimport {\r\n CONFIGURABLE_OPERATION_DEF_FRAGMENT,\r\n CONFIGURABLE_OPERATION_FRAGMENT,\r\n ERROR_RESULT_FRAGMENT,\r\n} from './shared-definitions';\r\n\r\nexport const PROMOTION_FRAGMENT = gql`\r\n fragment Promotion on Promotion {\r\n id\r\n createdAt\r\n updatedAt\r\n name\r\n enabled\r\n couponCode\r\n perCustomerUsageLimit\r\n startsAt\r\n endsAt\r\n conditions {\r\n ...ConfigurableOperation\r\n }\r\n actions {\r\n ...ConfigurableOperation\r\n }\r\n }\r\n ${CONFIGURABLE_OPERATION_FRAGMENT}\r\n`;\r\n\r\nexport const GET_PROMOTION_LIST = gql`\r\n query GetPromotionList($options: PromotionListOptions) {\r\n promotions(options: $options) {\r\n items {\r\n ...Promotion\r\n }\r\n totalItems\r\n }\r\n }\r\n ${PROMOTION_FRAGMENT}\r\n`;\r\n\r\nexport const GET_PROMOTION = gql`\r\n query GetPromotion($id: ID!) {\r\n promotion(id: $id) {\r\n ...Promotion\r\n }\r\n }\r\n ${PROMOTION_FRAGMENT}\r\n`;\r\n\r\nexport const GET_ADJUSTMENT_OPERATIONS = gql`\r\n query GetAdjustmentOperations {\r\n promotionConditions {\r\n ...ConfigurableOperationDef\r\n }\r\n promotionActions {\r\n ...ConfigurableOperationDef\r\n }\r\n }\r\n ${CONFIGURABLE_OPERATION_DEF_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_PROMOTION = gql`\r\n mutation CreatePromotion($input: CreatePromotionInput!) {\r\n createPromotion(input: $input) {\r\n ...Promotion\r\n ...ErrorResult\r\n }\r\n }\r\n ${PROMOTION_FRAGMENT}\r\n ${ERROR_RESULT_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_PROMOTION = gql`\r\n mutation UpdatePromotion($input: UpdatePromotionInput!) {\r\n updatePromotion(input: $input) {\r\n ...Promotion\r\n }\r\n }\r\n ${PROMOTION_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_PROMOTION = gql`\r\n mutation DeletePromotion($id: ID!) {\r\n deletePromotion(id: $id) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n","import {\r\n CreatePromotion,\r\n CreatePromotionInput,\r\n DeletePromotion,\r\n GetAdjustmentOperations,\r\n GetPromotion,\r\n GetPromotionList,\r\n PromotionFilterParameter,\r\n UpdatePromotion,\r\n UpdatePromotionInput,\r\n} from '../../common/generated-types';\r\nimport {\r\n CREATE_PROMOTION,\r\n DELETE_PROMOTION,\r\n GET_ADJUSTMENT_OPERATIONS,\r\n GET_PROMOTION,\r\n GET_PROMOTION_LIST,\r\n UPDATE_PROMOTION,\r\n} from '../definitions/promotion-definitions';\r\n\r\nimport { BaseDataService } from './base-data.service';\r\n\r\nexport class PromotionDataService {\r\n constructor(private baseDataService: BaseDataService) {}\r\n\r\n getPromotions(take: number = 10, skip: number = 0, filter?: PromotionFilterParameter) {\r\n return this.baseDataService.query<GetPromotionList.Query, GetPromotionList.Variables>(\r\n GET_PROMOTION_LIST,\r\n {\r\n options: {\r\n take,\r\n skip,\r\n filter,\r\n },\r\n },\r\n );\r\n }\r\n\r\n getPromotion(id: string) {\r\n return this.baseDataService.query<GetPromotion.Query, GetPromotion.Variables>(GET_PROMOTION, {\r\n id,\r\n });\r\n }\r\n\r\n getPromotionActionsAndConditions() {\r\n return this.baseDataService.query<GetAdjustmentOperations.Query>(GET_ADJUSTMENT_OPERATIONS);\r\n }\r\n\r\n createPromotion(input: CreatePromotionInput) {\r\n return this.baseDataService.mutate<CreatePromotion.Mutation, CreatePromotion.Variables>(\r\n CREATE_PROMOTION,\r\n {\r\n input,\r\n },\r\n );\r\n }\r\n\r\n updatePromotion(input: UpdatePromotionInput) {\r\n return this.baseDataService.mutate<UpdatePromotion.Mutation, UpdatePromotion.Variables>(\r\n UPDATE_PROMOTION,\r\n {\r\n input,\r\n },\r\n );\r\n }\r\n\r\n deletePromotion(id: string) {\r\n return this.baseDataService.mutate<DeletePromotion.Mutation, DeletePromotion.Variables>(\r\n DELETE_PROMOTION,\r\n { id },\r\n );\r\n }\r\n}\r\n","import { FetchPolicy, WatchQueryFetchPolicy } from '@apollo/client/core';\r\nimport { pick } from '@vendure/common/lib/pick';\r\n\r\nimport {\r\n AddMembersToZone,\r\n CancelJob,\r\n CreateChannel,\r\n CreateChannelInput,\r\n CreateCountry,\r\n CreateCountryInput,\r\n CreatePaymentMethod,\r\n CreatePaymentMethodInput,\r\n CreateTaxCategory,\r\n CreateTaxCategoryInput,\r\n CreateTaxRate,\r\n CreateTaxRateInput,\r\n CreateZone,\r\n CreateZoneInput,\r\n DeleteChannel,\r\n DeleteCountry,\r\n DeletePaymentMethod,\r\n DeleteTaxCategory,\r\n DeleteTaxRate,\r\n DeleteZone,\r\n GetActiveChannel,\r\n GetAllJobs,\r\n GetAvailableCountries,\r\n GetChannel,\r\n GetChannels,\r\n GetCountry,\r\n GetCountryList,\r\n GetGlobalSettings,\r\n GetJobInfo,\r\n GetJobQueueList,\r\n GetJobsById,\r\n GetPaymentMethod,\r\n GetPaymentMethodList,\r\n GetPaymentMethodOperations,\r\n GetTaxCategories,\r\n GetTaxCategory,\r\n GetTaxRate,\r\n GetTaxRateList,\r\n GetTaxRateListSimple,\r\n GetZone,\r\n GetZones,\r\n JobListOptions,\r\n JobState,\r\n RemoveMembersFromZone,\r\n UpdateChannel,\r\n UpdateChannelInput,\r\n UpdateCountry,\r\n UpdateCountryInput,\r\n UpdateGlobalSettings,\r\n UpdateGlobalSettingsInput,\r\n UpdatePaymentMethod,\r\n UpdatePaymentMethodInput,\r\n UpdateTaxCategory,\r\n UpdateTaxCategoryInput,\r\n UpdateTaxRate,\r\n UpdateTaxRateInput,\r\n UpdateZone,\r\n UpdateZoneInput,\r\n} from '../../common/generated-types';\r\nimport {\r\n ADD_MEMBERS_TO_ZONE,\r\n CANCEL_JOB,\r\n CREATE_CHANNEL,\r\n CREATE_COUNTRY,\r\n CREATE_PAYMENT_METHOD,\r\n CREATE_TAX_CATEGORY,\r\n CREATE_TAX_RATE,\r\n CREATE_ZONE,\r\n DELETE_CHANNEL,\r\n DELETE_COUNTRY,\r\n DELETE_PAYMENT_METHOD,\r\n DELETE_TAX_CATEGORY,\r\n DELETE_TAX_RATE,\r\n DELETE_ZONE,\r\n GET_ACTIVE_CHANNEL,\r\n GET_AVAILABLE_COUNTRIES,\r\n GET_CHANNEL,\r\n GET_CHANNELS,\r\n GET_COUNTRY,\r\n GET_COUNTRY_LIST,\r\n GET_GLOBAL_SETTINGS,\r\n GET_JOBS_BY_ID,\r\n GET_JOBS_LIST,\r\n GET_JOB_INFO,\r\n GET_JOB_QUEUE_LIST,\r\n GET_PAYMENT_METHOD,\r\n GET_PAYMENT_METHOD_LIST,\r\n GET_PAYMENT_METHOD_OPERATIONS,\r\n GET_TAX_CATEGORIES,\r\n GET_TAX_CATEGORY,\r\n GET_TAX_RATE,\r\n GET_TAX_RATE_LIST,\r\n GET_TAX_RATE_LIST_SIMPLE,\r\n GET_ZONES,\r\n REMOVE_MEMBERS_FROM_ZONE,\r\n UPDATE_CHANNEL,\r\n UPDATE_COUNTRY,\r\n UPDATE_GLOBAL_SETTINGS,\r\n UPDATE_PAYMENT_METHOD,\r\n UPDATE_TAX_CATEGORY,\r\n UPDATE_TAX_RATE,\r\n UPDATE_ZONE,\r\n} from '../definitions/settings-definitions';\r\n\r\nimport { BaseDataService } from './base-data.service';\r\n\r\nexport class SettingsDataService {\r\n constructor(private baseDataService: BaseDataService) {}\r\n\r\n getCountries(take: number = 10, skip: number = 0, filterTerm?: string) {\r\n return this.baseDataService.query<GetCountryList.Query, GetCountryList.Variables>(GET_COUNTRY_LIST, {\r\n options: {\r\n take,\r\n skip,\r\n filter: {\r\n name: filterTerm ? { contains: filterTerm } : null,\r\n },\r\n },\r\n });\r\n }\r\n\r\n getAvailableCountries() {\r\n return this.baseDataService.query<GetAvailableCountries.Query>(GET_AVAILABLE_COUNTRIES);\r\n }\r\n\r\n getCountry(id: string) {\r\n return this.baseDataService.query<GetCountry.Query, GetCountry.Variables>(GET_COUNTRY, { id });\r\n }\r\n\r\n createCountry(input: CreateCountryInput) {\r\n return this.baseDataService.mutate<CreateCountry.Mutation, CreateCountry.Variables>(CREATE_COUNTRY, {\r\n input: pick(input, ['code', 'enabled', 'translations', 'customFields']),\r\n });\r\n }\r\n\r\n updateCountry(input: UpdateCountryInput) {\r\n return this.baseDataService.mutate<UpdateCountry.Mutation, UpdateCountry.Variables>(UPDATE_COUNTRY, {\r\n input: pick(input, ['id', 'code', 'enabled', 'translations', 'customFields']),\r\n });\r\n }\r\n\r\n deleteCountry(id: string) {\r\n return this.baseDataService.mutate<DeleteCountry.Mutation, DeleteCountry.Variables>(DELETE_COUNTRY, {\r\n id,\r\n });\r\n }\r\n\r\n getZones() {\r\n return this.baseDataService.query<GetZones.Query>(GET_ZONES);\r\n }\r\n\r\n getZone(id: string) {\r\n return this.baseDataService.query<GetZone.Query, GetZone.Variables>(GET_ZONES, { id });\r\n }\r\n\r\n createZone(input: CreateZoneInput) {\r\n return this.baseDataService.mutate<CreateZone.Mutation, CreateZone.Variables>(CREATE_ZONE, {\r\n input,\r\n });\r\n }\r\n\r\n updateZone(input: UpdateZoneInput) {\r\n return this.baseDataService.mutate<UpdateZone.Mutation, UpdateZone.Variables>(UPDATE_ZONE, {\r\n input,\r\n });\r\n }\r\n\r\n deleteZone(id: string) {\r\n return this.baseDataService.mutate<DeleteZone.Mutation, DeleteZone.Variables>(DELETE_ZONE, {\r\n id,\r\n });\r\n }\r\n\r\n addMembersToZone(zoneId: string, memberIds: string[]) {\r\n return this.baseDataService.mutate<AddMembersToZone.Mutation, AddMembersToZone.Variables>(\r\n ADD_MEMBERS_TO_ZONE,\r\n {\r\n zoneId,\r\n memberIds,\r\n },\r\n );\r\n }\r\n\r\n removeMembersFromZone(zoneId: string, memberIds: string[]) {\r\n return this.baseDataService.mutate<RemoveMembersFromZone.Mutation, RemoveMembersFromZone.Variables>(\r\n REMOVE_MEMBERS_FROM_ZONE,\r\n {\r\n zoneId,\r\n memberIds,\r\n },\r\n );\r\n }\r\n\r\n getTaxCategories() {\r\n return this.baseDataService.query<GetTaxCategories.Query>(GET_TAX_CATEGORIES);\r\n }\r\n\r\n getTaxCategory(id: string) {\r\n return this.baseDataService.query<GetTaxCategory.Query, GetTaxCategory.Variables>(GET_TAX_CATEGORY, {\r\n id,\r\n });\r\n }\r\n\r\n createTaxCategory(input: CreateTaxCategoryInput) {\r\n return this.baseDataService.mutate<CreateTaxCategory.Mutation, CreateTaxCategory.Variables>(\r\n CREATE_TAX_CATEGORY,\r\n {\r\n input,\r\n },\r\n );\r\n }\r\n\r\n updateTaxCategory(input: UpdateTaxCategoryInput) {\r\n return this.baseDataService.mutate<UpdateTaxCategory.Mutation, UpdateTaxCategory.Variables>(\r\n UPDATE_TAX_CATEGORY,\r\n {\r\n input,\r\n },\r\n );\r\n }\r\n\r\n deleteTaxCategory(id: string) {\r\n return this.baseDataService.mutate<DeleteTaxCategory.Mutation, DeleteTaxRate.Variables>(\r\n DELETE_TAX_CATEGORY,\r\n {\r\n id,\r\n },\r\n );\r\n }\r\n\r\n getTaxRates(take: number = 10, skip: number = 0, fetchPolicy?: FetchPolicy) {\r\n return this.baseDataService.query<GetTaxRateList.Query, GetTaxRateList.Variables>(\r\n GET_TAX_RATE_LIST,\r\n {\r\n options: {\r\n take,\r\n skip,\r\n },\r\n },\r\n fetchPolicy,\r\n );\r\n }\r\n\r\n getTaxRatesSimple(take: number = 10, skip: number = 0, fetchPolicy?: FetchPolicy) {\r\n return this.baseDataService.query<GetTaxRateListSimple.Query, GetTaxRateListSimple.Variables>(\r\n GET_TAX_RATE_LIST_SIMPLE,\r\n {\r\n options: {\r\n take,\r\n skip,\r\n },\r\n },\r\n fetchPolicy,\r\n );\r\n }\r\n\r\n getTaxRate(id: string) {\r\n return this.baseDataService.query<GetTaxRate.Query, GetTaxRate.Variables>(GET_TAX_RATE, {\r\n id,\r\n });\r\n }\r\n\r\n createTaxRate(input: CreateTaxRateInput) {\r\n return this.baseDataService.mutate<CreateTaxRate.Mutation, CreateTaxRate.Variables>(CREATE_TAX_RATE, {\r\n input,\r\n });\r\n }\r\n\r\n updateTaxRate(input: UpdateTaxRateInput) {\r\n return this.baseDataService.mutate<UpdateTaxRate.Mutation, UpdateTaxRate.Variables>(UPDATE_TAX_RATE, {\r\n input,\r\n });\r\n }\r\n\r\n deleteTaxRate(id: string) {\r\n return this.baseDataService.mutate<DeleteTaxRate.Mutation, DeleteTaxRate.Variables>(DELETE_TAX_RATE, {\r\n id,\r\n });\r\n }\r\n\r\n getChannels() {\r\n return this.baseDataService.query<GetChannels.Query>(GET_CHANNELS);\r\n }\r\n\r\n getChannel(id: string) {\r\n return this.baseDataService.query<GetChannel.Query, GetChannel.Variables>(GET_CHANNEL, {\r\n id,\r\n });\r\n }\r\n\r\n getActiveChannel(fetchPolicy?: FetchPolicy) {\r\n return this.baseDataService.query<GetActiveChannel.Query, GetActiveChannel.Variables>(\r\n GET_ACTIVE_CHANNEL,\r\n {},\r\n fetchPolicy,\r\n );\r\n }\r\n\r\n createChannel(input: CreateChannelInput) {\r\n return this.baseDataService.mutate<CreateChannel.Mutation, CreateChannel.Variables>(CREATE_CHANNEL, {\r\n input,\r\n });\r\n }\r\n\r\n updateChannel(input: UpdateChannelInput) {\r\n return this.baseDataService.mutate<UpdateChannel.Mutation, UpdateChannel.Variables>(UPDATE_CHANNEL, {\r\n input,\r\n });\r\n }\r\n\r\n deleteChannel(id: string) {\r\n return this.baseDataService.mutate<DeleteChannel.Mutation, DeleteChannel.Variables>(DELETE_CHANNEL, {\r\n id,\r\n });\r\n }\r\n\r\n getPaymentMethods(take: number = 10, skip: number = 0) {\r\n return this.baseDataService.query<GetPaymentMethodList.Query, GetPaymentMethodList.Variables>(\r\n GET_PAYMENT_METHOD_LIST,\r\n {\r\n options: {\r\n skip,\r\n take,\r\n },\r\n },\r\n );\r\n }\r\n\r\n getPaymentMethod(id: string) {\r\n return this.baseDataService.query<GetPaymentMethod.Query, GetPaymentMethod.Variables>(\r\n GET_PAYMENT_METHOD,\r\n {\r\n id,\r\n },\r\n );\r\n }\r\n\r\n createPaymentMethod(input: CreatePaymentMethodInput) {\r\n return this.baseDataService.mutate<CreatePaymentMethod.Mutation, CreatePaymentMethod.Variables>(\r\n CREATE_PAYMENT_METHOD,\r\n {\r\n input,\r\n },\r\n );\r\n }\r\n\r\n updatePaymentMethod(input: UpdatePaymentMethodInput) {\r\n return this.baseDataService.mutate<UpdatePaymentMethod.Mutation, UpdatePaymentMethod.Variables>(\r\n UPDATE_PAYMENT_METHOD,\r\n {\r\n input,\r\n },\r\n );\r\n }\r\n\r\n deletePaymentMethod(id: string, force: boolean) {\r\n return this.baseDataService.mutate<DeletePaymentMethod.Mutation, DeletePaymentMethod.Variables>(\r\n DELETE_PAYMENT_METHOD,\r\n {\r\n id,\r\n force,\r\n },\r\n );\r\n }\r\n\r\n getPaymentMethodOperations() {\r\n return this.baseDataService.query<GetPaymentMethodOperations.Query>(GET_PAYMENT_METHOD_OPERATIONS);\r\n }\r\n\r\n getGlobalSettings(fetchPolicy?: WatchQueryFetchPolicy) {\r\n return this.baseDataService.query<GetGlobalSettings.Query>(\r\n GET_GLOBAL_SETTINGS,\r\n undefined,\r\n fetchPolicy,\r\n );\r\n }\r\n\r\n updateGlobalSettings(input: UpdateGlobalSettingsInput) {\r\n return this.baseDataService.mutate<UpdateGlobalSettings.Mutation, UpdateGlobalSettings.Variables>(\r\n UPDATE_GLOBAL_SETTINGS,\r\n {\r\n input,\r\n },\r\n );\r\n }\r\n\r\n getJob(id: string) {\r\n return this.baseDataService.query<GetJobInfo.Query, GetJobInfo.Variables>(GET_JOB_INFO, { id });\r\n }\r\n\r\n pollJobs(ids: string[]) {\r\n return this.baseDataService.query<GetJobsById.Query, GetJobsById.Variables>(GET_JOBS_BY_ID, {\r\n ids,\r\n });\r\n }\r\n\r\n getAllJobs(options?: JobListOptions) {\r\n return this.baseDataService.query<GetAllJobs.Query, GetAllJobs.Variables>(\r\n GET_JOBS_LIST,\r\n {\r\n options,\r\n },\r\n 'cache-first',\r\n );\r\n }\r\n\r\n getJobQueues() {\r\n return this.baseDataService.query<GetJobQueueList.Query>(GET_JOB_QUEUE_LIST);\r\n }\r\n\r\n getRunningJobs() {\r\n return this.baseDataService.query<GetAllJobs.Query, GetAllJobs.Variables>(GET_JOBS_LIST, {\r\n options: {\r\n filter: {\r\n state: {\r\n eq: JobState.RUNNING,\r\n },\r\n },\r\n },\r\n });\r\n }\r\n\r\n cancelJob(id: string) {\r\n return this.baseDataService.mutate<CancelJob.Mutation, CancelJob.Variables>(CANCEL_JOB, {\r\n id,\r\n });\r\n }\r\n}\r\n","import { gql } from 'apollo-angular';\r\n\r\nimport { CONFIGURABLE_OPERATION_DEF_FRAGMENT, CONFIGURABLE_OPERATION_FRAGMENT } from './shared-definitions';\r\n\r\nexport const SHIPPING_METHOD_FRAGMENT = gql`\r\n fragment ShippingMethod on ShippingMethod {\r\n id\r\n createdAt\r\n updatedAt\r\n code\r\n name\r\n description\r\n fulfillmentHandlerCode\r\n checker {\r\n ...ConfigurableOperation\r\n }\r\n calculator {\r\n ...ConfigurableOperation\r\n }\r\n translations {\r\n id\r\n languageCode\r\n name\r\n description\r\n }\r\n }\r\n ${CONFIGURABLE_OPERATION_FRAGMENT}\r\n`;\r\n\r\nexport const GET_SHIPPING_METHOD_LIST = gql`\r\n query GetShippingMethodList($options: ShippingMethodListOptions) {\r\n shippingMethods(options: $options) {\r\n items {\r\n ...ShippingMethod\r\n }\r\n totalItems\r\n }\r\n }\r\n ${SHIPPING_METHOD_FRAGMENT}\r\n`;\r\n\r\nexport const GET_SHIPPING_METHOD = gql`\r\n query GetShippingMethod($id: ID!) {\r\n shippingMethod(id: $id) {\r\n ...ShippingMethod\r\n }\r\n }\r\n ${SHIPPING_METHOD_FRAGMENT}\r\n`;\r\n\r\nexport const GET_SHIPPING_METHOD_OPERATIONS = gql`\r\n query GetShippingMethodOperations {\r\n shippingEligibilityCheckers {\r\n ...ConfigurableOperationDef\r\n }\r\n shippingCalculators {\r\n ...ConfigurableOperationDef\r\n }\r\n fulfillmentHandlers {\r\n ...ConfigurableOperationDef\r\n }\r\n }\r\n ${CONFIGURABLE_OPERATION_DEF_FRAGMENT}\r\n`;\r\n\r\nexport const CREATE_SHIPPING_METHOD = gql`\r\n mutation CreateShippingMethod($input: CreateShippingMethodInput!) {\r\n createShippingMethod(input: $input) {\r\n ...ShippingMethod\r\n }\r\n }\r\n ${SHIPPING_METHOD_FRAGMENT}\r\n`;\r\n\r\nexport const UPDATE_SHIPPING_METHOD = gql`\r\n mutation UpdateShippingMethod($input: UpdateShippingMethodInput!) {\r\n updateShippingMethod(input: $input) {\r\n ...ShippingMethod\r\n }\r\n }\r\n ${SHIPPING_METHOD_FRAGMENT}\r\n`;\r\n\r\nexport const DELETE_SHIPPING_METHOD = gql`\r\n mutation DeleteShippingMethod($id: ID!) {\r\n deleteShippingMethod(id: $id) {\r\n result\r\n message\r\n }\r\n }\r\n`;\r\n\r\nexport const TEST_SHIPPING_METHOD = gql`\r\n query TestShippingMethod($input: TestShippingMethodInput!) {\r\n testShippingMethod(input: $input) {\r\n eligible\r\n quote {\r\n price\r\n priceWithTax\r\n metadata\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const TEST_ELIGIBLE_SHIPPING_METHODS = gql`\r\n query TestEligibleShippingMethods($input: TestEligibleShippingMethodsInput!) {\r\n testEligibleShippingMethods(input: $input) {\r\n id\r\n name\r\n code\r\n description\r\n price\r\n priceWithTax\r\n metadata\r\n }\r\n }\r\n`;\r\n","import { pick } from '@vendure/common/lib/pick';\r\n\r\nimport {\r\n CreateShippingMethod,\r\n CreateShippingMethodInput,\r\n DeleteShippingMethod,\r\n GetShippingMethod,\r\n GetShippingMethodList,\r\n GetShippingMethodOperations,\r\n TestEligibleShippingMethods,\r\n TestEligibleShippingMethodsInput,\r\n TestShippingMethod,\r\n TestShippingMethodInput,\r\n UpdateShippingMethod,\r\n UpdateShippingMethodInput,\r\n} from '../../common/generated-types';\r\nimport {\r\n CREATE_SHIPPING_METHOD,\r\n DELETE_SHIPPING_METHOD,\r\n GET_SHIPPING_METHOD,\r\n GET_SHIPPING_METHOD_LIST,\r\n GET_SHIPPING_METHOD_OPERATIONS,\r\n TEST_ELIGIBLE_SHIPPING_METHODS,\r\n TEST_SHIPPING_METHOD,\r\n UPDATE_SHIPPING_METHOD,\r\n} from '../definitions/shipping-definitions';\r\n\r\nimport { BaseDataService } from './base-data.service';\r\n\r\nexport class ShippingMethodDataService {\r\n constructor(private baseDataService: BaseDataService) {}\r\n\r\n getShippingMethods(take: number = 10, skip: number = 0) {\r\n return this.baseDataService.query<GetShippingMethodList.Query, GetShippingMethodList.Variables>(\r\n GET_SHIPPING_METHOD_LIST,\r\n {\r\n options: {\r\n take,\r\n skip,\r\n },\r\n },\r\n );\r\n }\r\n\r\n getShippingMethod(id: string) {\r\n return this.baseDataService.query<GetShippingMethod.Query, GetShippingMethod.Variables>(\r\n GET_SHIPPING_METHOD,\r\n {\r\n id,\r\n },\r\n );\r\n }\r\n\r\n getShippingMethodOperations() {\r\n return this.baseDataService.query<GetShippingMethodOperations.Query>(GET_SHIPPING_METHOD_OPERATIONS);\r\n }\r\n\r\n createShippingMethod(input: CreateShippingMethodInput) {\r\n const variables: CreateShippingMethod.Variables = {\r\n input: pick(input, [\r\n 'code',\r\n 'checker',\r\n 'calculator',\r\n 'fulfillmentHandler',\r\n 'customFields',\r\n 'translations',\r\n ]),\r\n };\r\n return this.baseDataService.mutate<CreateShippingMethod.Mutation, CreateShippingMethod.Variables>(\r\n CREATE_SHIPPING_METHOD,\r\n variables,\r\n );\r\n }\r\n\r\n updateShippingMethod(input: UpdateShippingMethodInput) {\r\n const variables: UpdateShippingMethod.Variables = {\r\n input: pick(input, [\r\n 'id',\r\n 'code',\r\n 'checker',\r\n 'calculator',\r\n 'fulfillmentHandler',\r\n 'customFields',\r\n 'translations',\r\n ]),\r\n };\r\n return this.baseDataService.mutate<UpdateShippingMethod.Mutation, UpdateShippingMethod.Variables>(\r\n UPDATE_SHIPPING_METHOD,\r\n variables,\r\n );\r\n }\r\n\r\n deleteShippingMethod(id: string) {\r\n return this.baseDataService.mutate<DeleteShippingMethod.Mutation, DeleteShippingMethod.Variables>(\r\n DELETE_SHIPPING_METHOD,\r\n {\r\n id,\r\n },\r\n );\r\n }\r\n\r\n testShippingMethod(input: TestShippingMethodInput) {\r\n return this.baseDataService.query<TestShippingMethod.Query, TestShippingMethod.Variables>(\r\n TEST_SHIPPING_METHOD,\r\n {\r\n input,\r\n },\r\n );\r\n }\r\n\r\n testEligibleShippingMethods(input: TestEligibleShippingMethodsInput) {\r\n return this.baseDataService.query<\r\n TestEligibleShippingMethods.Query,\r\n TestEligibleShippingMethods.Variables\r\n >(TEST_ELIGIBLE_SHIPPING_METHODS, {\r\n input,\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MutationUpdaterFn, WatchQueryFetchPolicy } from '@apollo/client/core';\r\nimport { DocumentNode } from 'graphql';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { QueryResult } from '../query-result';\r\n\r\nimport { AdministratorDataService } from './administrator-data.service';\r\nimport { AuthDataService } from './auth-data.service';\r\nimport { BaseDataService } from './base-data.service';\r\nimport { ClientDataService } from './client-data.service';\r\nimport { CollectionDataService } from './collection-data.service';\r\nimport { CustomerDataService } from './customer-data.service';\r\nimport { FacetDataService } from './facet-data.service';\r\nimport { OrderDataService } from './order-data.service';\r\nimport { ProductDataService } from './product-data.service';\r\nimport { PromotionDataService } from './promotion-data.service';\r\nimport { SettingsDataService } from './settings-data.service';\r\nimport { ShippingMethodDataService } from './shipping-method-data.service';\r\n\r\n/**\r\n * @description\r\n * Used to interact with the Admin API via GraphQL queries. Internally this service uses the\r\n * Apollo Client, which means it maintains a normalized entity cache. For this reason, it is\r\n * advisable to always select the `id` field of any entity, which will allow the returned data\r\n * to be effectively cached.\r\n *\r\n * @docsCategory providers\r\n * @docsPage DataService\r\n * @docsWeight 0\r\n */\r\n@Injectable()\r\nexport class DataService {\r\n /** @internal */ promotion: PromotionDataService;\r\n /** @internal */ administrator: AdministratorDataService;\r\n /** @internal */ auth: AuthDataService;\r\n /** @internal */ collection: CollectionDataService;\r\n /** @internal */ product: ProductDataService;\r\n /** @internal */ client: ClientDataService;\r\n /** @internal */ facet: FacetDataService;\r\n /** @internal */ order: OrderDataService;\r\n /** @internal */ settings: SettingsDataService;\r\n /** @internal */ customer: CustomerDataService;\r\n /** @internal */ shippingMethod: ShippingMethodDataService;\r\n\r\n /** @internal */\r\n constructor(private baseDataService: BaseDataService) {\r\n this.promotion = new PromotionDataService(baseDataService);\r\n this.administrator = new AdministratorDataService(baseDataService);\r\n this.auth = new AuthDataService(baseDataService);\r\n this.collection = new CollectionDataService(baseDataService);\r\n this.product = new ProductDataService(baseDataService);\r\n this.client = new ClientDataService(baseDataService);\r\n this.facet = new FacetDataService(baseDataService);\r\n this.order = new OrderDataService(baseDataService);\r\n this.settings = new SettingsDataService(baseDataService);\r\n this.customer = new CustomerDataService(baseDataService);\r\n this.shippingMethod = new ShippingMethodDataService(baseDataService);\r\n }\r\n\r\n /**\r\n * @description\r\n * Perform a GraphQL query. Returns a {@link QueryResult} which allows further control over\r\n * they type of result returned, e.g. stream of values, single value etc.\r\n *\r\n * @example\r\n * ```TypeScript\r\n * const result$ = this.dataService.query(gql`\r\n * query MyQuery($id: ID!) {\r\n * product(id: $id) {\r\n * id\r\n * name\r\n * slug\r\n * }\r\n * },\r\n * { id: 123 },\r\n * ).mapSingle(data => data.product);\r\n * ```\r\n */\r\n query<T, V = Record<string, any>>(\r\n query: DocumentNode,\r\n variables?: V,\r\n fetchPolicy: WatchQueryFetchPolicy = 'cache-and-network',\r\n ): QueryResult<T, V> {\r\n return this.baseDataService.query(query, variables, fetchPolicy);\r\n }\r\n\r\n /**\r\n * @description\r\n * Perform a GraphQL mutation.\r\n *\r\n * @example\r\n * ```TypeScript\r\n * const result$ = this.dataService.mutate(gql`\r\n * mutation MyMutation($input: UpdateEntityInput!) {\r\n * updateEntity(input: $input) {\r\n * id\r\n * name\r\n * }\r\n * },\r\n * { input: updateEntityInput },\r\n * );\r\n * ```\r\n */\r\n mutate<T, V = Record<string, any>>(\r\n mutation: DocumentNode,\r\n variables?: V,\r\n update?: MutationUpdaterFn<T>,\r\n ): Observable<T> {\r\n return this.baseDataService.mutate(mutation, variables, update);\r\n }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Component, HostListener, Inject, isDevMode, OnInit } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map, switchMap } from 'rxjs/operators';\r\n\r\nimport { DataService } from './data/providers/data.service';\r\nimport { ServerConfigService } from './data/server-config';\r\nimport { LocalStorageService } from './providers/local-storage/local-storage.service';\r\n\r\n@Component({\r\n selector: 'vdr-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss'],\r\n})\r\nexport class AppComponent implements OnInit {\r\n loading$: Observable<boolean>;\r\n private _document?: Document;\r\n\r\n constructor(\r\n private dataService: DataService,\r\n private serverConfigService: ServerConfigService,\r\n private localStorageService: LocalStorageService,\r\n @Inject(DOCUMENT) private document?: any,\r\n ) {\r\n this._document = document;\r\n }\r\n\r\n ngOnInit() {\r\n this.loading$ = this.dataService.client\r\n .getNetworkStatus()\r\n .stream$.pipe(map(data => 0 < data.networkStatus.inFlightRequests));\r\n\r\n this.dataService.client\r\n .uiState()\r\n .mapStream(data => data.uiState.theme)\r\n .subscribe(theme => {\r\n this._document?.body.setAttribute('data-theme', theme);\r\n });\r\n\r\n // Once logged in, keep the localStorage \"contentLanguageCode\" in sync with the\r\n // uiState. Also perform a check to ensure that the current contentLanguage is\r\n // one of the availableLanguages per GlobalSettings.\r\n this.dataService.client\r\n .userStatus()\r\n .mapStream(({ userStatus }) => userStatus.isLoggedIn)\r\n .pipe(\r\n filter(loggedIn => loggedIn === true),\r\n switchMap(() => {\r\n return this.dataService.client.uiState().mapStream(data => data.uiState.contentLanguage);\r\n }),\r\n switchMap(contentLang => {\r\n return this.serverConfigService\r\n .getAvailableLanguages()\r\n .pipe(map(available => [contentLang, available] as const));\r\n }),\r\n )\r\n .subscribe({\r\n next: ([contentLanguage, availableLanguages]) => {\r\n this.localStorageService.set('contentLanguageCode', contentLanguage);\r\n if (availableLanguages.length && !availableLanguages.includes(contentLanguage)) {\r\n this.dataService.client.setContentLanguage(availableLanguages[0]).subscribe();\r\n }\r\n },\r\n });\r\n\r\n if (isDevMode()) {\r\n // tslint:disable-next-line:no-console\r\n console.log(\r\n `%cVendure Admin UI: Press \"ctrl/cmd + u\" to view UI extension points`,\r\n `color: #17C1FF; font-weight: bold;`,\r\n );\r\n }\r\n }\r\n\r\n @HostListener('window:keydown', ['$event'])\r\n handleGlobalHotkeys(event: KeyboardEvent) {\r\n if ((event.ctrlKey === true || event.metaKey === true) && event.key === 'u') {\r\n event.preventDefault();\r\n if (isDevMode()) {\r\n this.dataService.client\r\n .uiState()\r\n .single$.pipe(\r\n switchMap(({ uiState }) =>\r\n this.dataService.client.setDisplayUiExtensionPoints(\r\n !uiState.displayUiExtensionPoints,\r\n ),\r\n ),\r\n )\r\n .subscribe();\r\n }\r\n }\r\n }\r\n}\r\n","import { AdminUiConfig } from '@vendure/common/lib/shared-types';\r\n\r\nimport { LanguageCode } from './common/generated-types';\r\n\r\nlet vendureUiConfig: AdminUiConfig | undefined;\r\n\r\nexport function loadAppConfig(): Promise<void> {\r\n return fetch('./vendure-ui-config.json')\r\n .then(res => res.json())\r\n .then(config => {\r\n vendureUiConfig = config;\r\n });\r\n}\r\n\r\nexport function getAppConfig(): AdminUiConfig {\r\n if (!vendureUiConfig) {\r\n throw new Error(`vendure ui config not loaded`);\r\n }\r\n return vendureUiConfig;\r\n}\r\n","import { getAppConfig } from '../../app.config';\r\nimport { LanguageCode } from '../generated-types';\r\n\r\nexport function getDefaultUiLanguage(): LanguageCode {\r\n return getAppConfig().defaultLanguage;\r\n}\r\n\r\nexport function getDefaultUiLocale(): string | undefined {\r\n const defaultLocale = getAppConfig().defaultLocale;\r\n if (defaultLocale) {\r\n return defaultLocale;\r\n }\r\n return navigator.language.split('-')[1]?.toUpperCase();\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map, mapTo, mergeMap, switchMap } from 'rxjs/operators';\r\n\r\nimport {\r\n AttemptLogin,\r\n CurrentUserChannel,\r\n CurrentUserFragment,\r\n SetAsLoggedIn,\r\n} from '../../common/generated-types';\r\nimport { DataService } from '../../data/providers/data.service';\r\nimport { ServerConfigService } from '../../data/server-config';\r\nimport { LocalStorageService } from '../local-storage/local-storage.service';\r\n\r\n/**\r\n * This service handles logic relating to authentication of the current user.\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n constructor(\r\n private localStorageService: LocalStorageService,\r\n private dataService: DataService,\r\n private serverConfigService: ServerConfigService,\r\n ) {}\r\n\r\n /**\r\n * Attempts to log in via the REST login endpoint and updates the app\r\n * state on success.\r\n */\r\n logIn(username: string, password: string, rememberMe: boolean): Observable<AttemptLogin.Login> {\r\n return this.dataService.auth.attemptLogin(username, password, rememberMe).pipe(\r\n switchMap(response => {\r\n if (response.login.__typename === 'CurrentUser') {\r\n this.setChannelToken(response.login.channels);\r\n }\r\n return this.serverConfigService.getServerConfig().then(() => response.login);\r\n }),\r\n switchMap(login => {\r\n if (login.__typename === 'CurrentUser') {\r\n const { id } = this.getActiveChannel(login.channels);\r\n return this.dataService.client\r\n .loginSuccess(username, id, login.channels)\r\n .pipe(map(() => login));\r\n }\r\n return of(login);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Update the user status to being logged out.\r\n */\r\n logOut(): Observable<boolean> {\r\n return this.dataService.client.userStatus().single$.pipe(\r\n switchMap(status => {\r\n if (status.userStatus.isLoggedIn) {\r\n return this.dataService.client\r\n .logOut()\r\n .pipe(mergeMap(() => this.dataService.auth.logOut()));\r\n } else {\r\n return [];\r\n }\r\n }),\r\n mapTo(true),\r\n );\r\n }\r\n\r\n /**\r\n * Checks the app state to see if the user is already logged in,\r\n * and if not, attempts to validate any auth token found.\r\n */\r\n checkAuthenticatedStatus(): Observable<boolean> {\r\n return this.dataService.client.userStatus().single$.pipe(\r\n mergeMap(data => {\r\n if (!data.userStatus.isLoggedIn) {\r\n return this.validateAuthToken();\r\n } else {\r\n return of(true);\r\n }\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Checks for an auth token and if found, attempts to validate\r\n * that token against the API.\r\n */\r\n validateAuthToken(): Observable<boolean> {\r\n return this.dataService.auth.currentUser().single$.pipe(\r\n mergeMap(result => {\r\n if (!result.me) {\r\n return of(false) as any;\r\n }\r\n this.setChannelToken(result.me.channels);\r\n const { id } = this.getActiveChannel(result.me.channels);\r\n return this.dataService.client.loginSuccess(result.me.identifier, id, result.me.channels);\r\n }),\r\n mapTo(true),\r\n catchError(err => of(false)),\r\n );\r\n }\r\n\r\n private getActiveChannel(userChannels: CurrentUserFragment['channels']) {\r\n const lastActiveChannelToken = this.localStorageService.get('activeChannelToken');\r\n if (lastActiveChannelToken) {\r\n const lastActiveChannel = userChannels.find(c => c.token === lastActiveChannelToken);\r\n if (lastActiveChannel) {\r\n return lastActiveChannel;\r\n }\r\n }\r\n const defaultChannel = userChannels.find(c => c.code === DEFAULT_CHANNEL_CODE);\r\n return defaultChannel || userChannels[0];\r\n }\r\n\r\n private setChannelToken(userChannels: CurrentUserFragment['channels']) {\r\n this.localStorageService.set('activeChannelToken', this.getActiveChannel(userChannels).token);\r\n }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { LanguageCode } from '../../common/generated-types';\r\n\r\n/** @dynamic */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class I18nService {\r\n _availableLanguages: LanguageCode[] = [];\r\n\r\n get availableLanguages(): LanguageCode[] {\r\n return [...this._availableLanguages];\r\n }\r\n\r\n constructor(private ngxTranslate: TranslateService, @Inject(DOCUMENT) private document: Document) {}\r\n\r\n /**\r\n * Set the default language\r\n */\r\n setDefaultLanguage(languageCode: LanguageCode) {\r\n this.ngxTranslate.setDefaultLang(languageCode);\r\n }\r\n\r\n /**\r\n * Set the UI language\r\n */\r\n setLanguage(language: LanguageCode): void {\r\n this.ngxTranslate.use(language);\r\n if (this.document?.documentElement) {\r\n this.document.documentElement.lang = language;\r\n }\r\n }\r\n\r\n /**\r\n * Set the available UI languages\r\n */\r\n setAvailableLanguages(languages: LanguageCode[]) {\r\n this._availableLanguages = languages;\r\n }\r\n\r\n /**\r\n * Translate the given key.\r\n */\r\n translate(key: string | string[], params?: any): string {\r\n return this.ngxTranslate.instant(key, params);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n QueryList,\r\n TemplateRef,\r\n Type,\r\n ViewChild,\r\n ViewChildren,\r\n} from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nimport { Dialog, ModalOptions } from '../../../providers/modal/modal.service';\r\n\r\nimport { DialogButtonsDirective } from './dialog-buttons.directive';\r\n\r\n/**\r\n * This component should only be instantiated dynamically by the ModalService. It should not be used\r\n * directly in templates. See {@link ModalService.fromComponent} method for more detail.\r\n */\r\n@Component({\r\n selector: 'vdr-modal-dialog',\r\n templateUrl: './modal-dialog.component.html',\r\n styleUrls: ['./modal-dialog.component.scss'],\r\n})\r\nexport class ModalDialogComponent<T extends Dialog<any>> {\r\n childComponentType: Type<T>;\r\n closeModal: (result?: any) => void;\r\n titleTemplateRef$ = new Subject<TemplateRef<any>>();\r\n buttonsTemplateRef$ = new Subject<TemplateRef<any>>();\r\n options?: ModalOptions<T>;\r\n\r\n /**\r\n * This callback is invoked when the childComponentType is instantiated in the\r\n * template by the {@link DialogComponentOutletComponent}.\r\n * Once we have the instance, we can set the resolveWith function and any\r\n * locals which were specified in the config.\r\n */\r\n onCreate(componentInstance: T) {\r\n componentInstance.resolveWith = (result?: any) => {\r\n this.closeModal(result);\r\n };\r\n if (this.options && this.options.locals) {\r\n // tslint:disable-next-line\r\n for (const key in this.options.locals) {\r\n componentInstance[key] = this.options.locals[key] as T[Extract<keyof T, string>];\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * This should be called by the {@link DialogTitleDirective} only\r\n */\r\n registerTitleTemplate(titleTemplateRef: TemplateRef<any>) {\r\n this.titleTemplateRef$.next(titleTemplateRef);\r\n }\r\n\r\n /**\r\n * This should be called by the {@link DialogButtonsDirective} only\r\n */\r\n registerButtonsTemplate(buttonsTemplateRef: TemplateRef<any>) {\r\n this.buttonsTemplateRef$.next(buttonsTemplateRef);\r\n }\r\n\r\n /**\r\n * Called when the modal is closed by clicking the X or the mask.\r\n */\r\n modalOpenChange(status: any) {\r\n if (status === false) {\r\n this.closeModal();\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\n\r\nimport { Dialog, DialogButtonConfig } from '../../../providers/modal/modal.service';\r\n\r\n/**\r\n * Used by ModalService.dialog() to host a generic configurable modal dialog.\r\n */\r\n@Component({\r\n selector: 'vdr-simple-dialog',\r\n templateUrl: './simple-dialog.component.html',\r\n styleUrls: ['./simple-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SimpleDialogComponent implements Dialog<any> {\r\n resolveWith: (result?: any) => void;\r\n title = '';\r\n body = '';\r\n translationVars = {};\r\n buttons: Array<DialogButtonConfig<any>> = [];\r\n}\r\n","import { Injectable, ViewContainerRef } from '@angular/core';\r\n\r\n/**\r\n * The OverlayHostService is used to get a reference to the ViewConainerRef of the\r\n * OverlayHost component, so that other components may insert components & elements\r\n * into the DOM at that point.\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class OverlayHostService {\r\n private hostView: ViewContainerRef;\r\n private promiseResolveFns: Array<(result: any) => void> = [];\r\n\r\n /**\r\n * Used to pass in the ViewContainerRed from the OverlayHost component.\r\n * Should not be used by any other component.\r\n */\r\n registerHostView(viewContainerRef: ViewContainerRef): void {\r\n this.hostView = viewContainerRef;\r\n if (0 < this.promiseResolveFns.length) {\r\n this.resolveHostView();\r\n }\r\n }\r\n\r\n /**\r\n * Returns a promise which resolves to the ViewContainerRef of the OverlayHost\r\n * component. This can then be used to insert components and elements into the\r\n * DOM at that point.\r\n */\r\n getHostView(): Promise<ViewContainerRef> {\r\n return new Promise((resolve: (result: any) => void) => {\r\n this.promiseResolveFns.push(resolve);\r\n if (this.hostView !== undefined) {\r\n this.resolveHostView();\r\n }\r\n });\r\n }\r\n\r\n private resolveHostView(): void {\r\n this.promiseResolveFns.forEach(resolve => resolve(this.hostView));\r\n this.promiseResolveFns = [];\r\n }\r\n}\r\n","import { ComponentFactoryResolver, Injectable } from '@angular/core';\r\nimport { Type } from '@vendure/common/lib/shared-types';\r\nimport { from, Observable } from 'rxjs';\r\nimport { mergeMap } from 'rxjs/operators';\r\n\r\nimport { ModalDialogComponent } from '../../shared/components/modal-dialog/modal-dialog.component';\r\nimport { SimpleDialogComponent } from '../../shared/components/simple-dialog/simple-dialog.component';\r\nimport { OverlayHostService } from '../overlay-host/overlay-host.service';\r\n\r\n/**\r\n * @description\r\n * Any component intended to be used with the ModalService.fromComponent() method must implement\r\n * this interface.\r\n *\r\n * @docsCategory providers\r\n * @docsPage ModalService\r\n */\r\nexport interface Dialog<R = any> {\r\n /**\r\n * @description\r\n * Function to be invoked in order to close the dialog when the action is complete.\r\n * The Observable returned from the .fromComponent() method will emit the value passed\r\n * to this method and then complete.\r\n */\r\n resolveWith: (result?: R) => void;\r\n}\r\n\r\nexport interface DialogButtonConfig<T> {\r\n label: string;\r\n type: 'secondary' | 'primary' | 'danger';\r\n translationVars?: Record<string, string | number>;\r\n returnValue?: T;\r\n}\r\n\r\n/**\r\n * @description\r\n * Configures a generic modal dialog.\r\n *\r\n * @docsCategory providers\r\n * @docsPage ModalService\r\n */\r\nexport interface DialogConfig<T> {\r\n title: string;\r\n body?: string;\r\n translationVars?: { [key: string]: string | number };\r\n buttons: Array<DialogButtonConfig<T>>;\r\n size?: 'sm' | 'md' | 'lg' | 'xl';\r\n}\r\n\r\n/**\r\n * @description\r\n * Options to configure the behaviour of the modal.\r\n *\r\n * @docsCategory providers\r\n * @docsPage ModalService\r\n */\r\nexport interface ModalOptions<T> {\r\n /**\r\n * @description\r\n * Sets the width of the dialog\r\n */\r\n size?: 'sm' | 'md' | 'lg' | 'xl';\r\n /**\r\n * @description\r\n * Sets the vertical alignment of the dialog\r\n */\r\n verticalAlign?: 'top' | 'center' | 'bottom';\r\n /**\r\n * @description\r\n * When true, the \"x\" icon is shown\r\n * and clicking it or the mask will close the dialog\r\n */\r\n closable?: boolean;\r\n /**\r\n * @description\r\n * Values to be passed directly to the component being instantiated inside the dialog.\r\n */\r\n locals?: Partial<T>;\r\n}\r\n\r\n/**\r\n * @description\r\n * This service is responsible for instantiating a ModalDialog component and\r\n * embedding the specified component within.\r\n *\r\n * @docsCategory providers\r\n * @docsPage ModalService\r\n * @docsWeight 0\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ModalService {\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private overlayHostService: OverlayHostService,\r\n ) {}\r\n\r\n /**\r\n * @description\r\n * Create a modal from a component. The component must implement the {@link Dialog} interface.\r\n * Additionally, the component should include templates for the title and the buttons to be\r\n * displayed in the modal dialog. See example:\r\n *\r\n * @example\r\n * ```HTML\r\n * class MyDialog implements Dialog {\r\n * resolveWith: (result?: any) => void;\r\n *\r\n * okay() {\r\n * doSomeWork().subscribe(result => {\r\n * this.resolveWith(result);\r\n * })\r\n * }\r\n *\r\n * cancel() {\r\n * this.resolveWith(false);\r\n * }\r\n * }\r\n * ```\r\n *\r\n * @example\r\n * ```HTML\r\n * <ng-template vdrDialogTitle>Title of the modal</ng-template>\r\n *\r\n * <p>\r\n * My Content\r\n * </p>\r\n *\r\n * <ng-template vdrDialogButtons>\r\n * <button type=\"button\"\r\n * class=\"btn\"\r\n * (click)=\"cancel()\">Cancel</button>\r\n * <button type=\"button\"\r\n * class=\"btn btn-primary\"\r\n * (click)=\"okay()\">Okay</button>\r\n * </ng-template>\r\n * ```\r\n */\r\n fromComponent<T extends Dialog<any>, R>(\r\n component: Type<T> & Type<Dialog<R>>,\r\n options?: ModalOptions<T>,\r\n ): Observable<R | undefined> {\r\n const modalFactory = this.componentFactoryResolver.resolveComponentFactory(ModalDialogComponent);\r\n\r\n return from(this.overlayHostService.getHostView()).pipe(\r\n mergeMap(hostView => {\r\n const modalComponentRef = hostView.createComponent(modalFactory);\r\n const modalInstance: ModalDialogComponent<any> = modalComponentRef.instance;\r\n modalInstance.childComponentType = component;\r\n modalInstance.options = options;\r\n\r\n return new Observable<R>(subscriber => {\r\n modalInstance.closeModal = (result: R) => {\r\n modalComponentRef.destroy();\r\n subscriber.next(result);\r\n subscriber.complete();\r\n };\r\n });\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * @description\r\n * Displays a modal dialog with the provided title, body and buttons.\r\n */\r\n dialog<T>(config: DialogConfig<T>): Observable<T | undefined> {\r\n return this.fromComponent(SimpleDialogComponent, {\r\n locals: config,\r\n size: config.size,\r\n });\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\n\r\nimport { CurrencyCode, LanguageCode } from '../../common/generated-types';\r\nimport { Dialog } from '../../providers/modal/modal.service';\r\n\r\n@Component({\r\n selector: 'vdr-ui-language-switcher',\r\n templateUrl: './ui-language-switcher-dialog.component.html',\r\n styleUrls: ['./ui-language-switcher-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UiLanguageSwitcherDialogComponent implements Dialog<[LanguageCode, string | undefined]>, OnInit {\r\n resolveWith: (result?: [LanguageCode, string | undefined]) => void;\r\n currentLanguage: LanguageCode;\r\n availableLanguages: LanguageCode[] = [];\r\n currentLocale: string | undefined;\r\n availableLocales: string[] = [\r\n 'AF',\r\n 'AL',\r\n 'DZ',\r\n 'AS',\r\n 'AD',\r\n 'AO',\r\n 'AI',\r\n 'AQ',\r\n 'AG',\r\n 'AR',\r\n 'AM',\r\n 'AW',\r\n 'AU',\r\n 'AT',\r\n 'AZ',\r\n 'BS',\r\n 'BH',\r\n 'BD',\r\n 'BB',\r\n 'BY',\r\n 'BE',\r\n 'BZ',\r\n 'BJ',\r\n 'BM',\r\n 'BT',\r\n 'BO',\r\n 'BQ',\r\n 'BA',\r\n 'BW',\r\n 'BV',\r\n 'BR',\r\n 'IO',\r\n 'BN',\r\n 'BG',\r\n 'BF',\r\n 'BI',\r\n 'CV',\r\n 'KH',\r\n 'CM',\r\n 'CA',\r\n 'KY',\r\n 'CF',\r\n 'TD',\r\n 'CL',\r\n 'CN',\r\n 'CX',\r\n 'CC',\r\n 'CO',\r\n 'KM',\r\n 'CD',\r\n 'CG',\r\n 'CK',\r\n 'CR',\r\n 'HR',\r\n 'CU',\r\n 'CW',\r\n 'CY',\r\n 'CZ',\r\n 'CI',\r\n 'DK',\r\n 'DJ',\r\n 'DM',\r\n 'DO',\r\n 'EC',\r\n 'EG',\r\n 'SV',\r\n 'GQ',\r\n 'ER',\r\n 'EE',\r\n 'SZ',\r\n 'ET',\r\n 'FK',\r\n 'FO',\r\n 'FJ',\r\n 'FI',\r\n 'FR',\r\n 'GF',\r\n 'PF',\r\n 'TF',\r\n 'GA',\r\n 'GM',\r\n 'GE',\r\n 'DE',\r\n 'GH',\r\n 'GI',\r\n 'GR',\r\n 'GL',\r\n 'GD',\r\n 'GP',\r\n 'GU',\r\n 'GT',\r\n 'GG',\r\n 'GN',\r\n 'GW',\r\n 'GY',\r\n 'HT',\r\n 'HM',\r\n 'VA',\r\n 'HN',\r\n 'HK',\r\n 'HU',\r\n 'IS',\r\n 'IN',\r\n 'ID',\r\n 'IR',\r\n 'IQ',\r\n 'IE',\r\n 'IM',\r\n 'IL',\r\n 'IT',\r\n 'JM',\r\n 'JP',\r\n 'JE',\r\n 'JO',\r\n 'KZ',\r\n 'KE',\r\n 'KI',\r\n 'KP',\r\n 'KR',\r\n 'KW',\r\n 'KG',\r\n 'LA',\r\n 'LV',\r\n 'LB',\r\n 'LS',\r\n 'LR',\r\n 'LY',\r\n 'LI',\r\n 'LT',\r\n 'LU',\r\n 'MO',\r\n 'MG',\r\n 'MW',\r\n 'MY',\r\n 'MV',\r\n 'ML',\r\n 'MT',\r\n 'MH',\r\n 'MQ',\r\n 'MR',\r\n 'MU',\r\n 'YT',\r\n 'MX',\r\n 'FM',\r\n 'MD',\r\n 'MC',\r\n 'MN',\r\n 'ME',\r\n 'MS',\r\n 'MA',\r\n 'MZ',\r\n 'MM',\r\n 'NA',\r\n 'NR',\r\n 'NP',\r\n 'NL',\r\n 'NC',\r\n 'NZ',\r\n 'NI',\r\n 'NE',\r\n 'NG',\r\n 'NU',\r\n 'NF',\r\n 'MK',\r\n 'MP',\r\n 'NO',\r\n 'OM',\r\n 'PK',\r\n 'PW',\r\n 'PS',\r\n 'PA',\r\n 'PG',\r\n 'PY',\r\n 'PE',\r\n 'PH',\r\n 'PN',\r\n 'PL',\r\n 'PT',\r\n 'PR',\r\n 'QA',\r\n 'RO',\r\n 'RU',\r\n 'RW',\r\n 'RE',\r\n 'BL',\r\n 'SH',\r\n 'KN',\r\n 'LC',\r\n 'MF',\r\n 'PM',\r\n 'VC',\r\n 'WS',\r\n 'SM',\r\n 'ST',\r\n 'SA',\r\n 'SN',\r\n 'RS',\r\n 'SC',\r\n 'SL',\r\n 'SG',\r\n 'SX',\r\n 'SK',\r\n 'SI',\r\n 'SB',\r\n 'SO',\r\n 'ZA',\r\n 'GS',\r\n 'SS',\r\n 'ES',\r\n 'LK',\r\n 'SD',\r\n 'SR',\r\n 'SJ',\r\n 'SE',\r\n 'CH',\r\n 'SY',\r\n 'TW',\r\n 'TJ',\r\n 'TZ',\r\n 'TH',\r\n 'TL',\r\n 'TG',\r\n 'TK',\r\n 'TO',\r\n 'TT',\r\n 'TN',\r\n 'TR',\r\n 'TM',\r\n 'TC',\r\n 'TV',\r\n 'UG',\r\n 'UA',\r\n 'AE',\r\n 'GB',\r\n 'UM',\r\n 'US',\r\n 'UY',\r\n 'UZ',\r\n 'VU',\r\n 'VE',\r\n 'VN',\r\n 'VG',\r\n 'VI',\r\n 'WF',\r\n 'EH',\r\n 'YE',\r\n 'ZM',\r\n 'ZW',\r\n 'AX',\r\n ];\r\n availableCurrencyCodes = Object.values(CurrencyCode);\r\n selectedCurrencyCode = 'USD';\r\n previewLocale: string;\r\n readonly browserDefaultLocale: string | undefined;\r\n readonly now = new Date().toISOString();\r\n\r\n constructor() {\r\n const browserLanguage = navigator.language.split('-');\r\n this.browserDefaultLocale = browserLanguage.length === 1 ? undefined : browserLanguage[1];\r\n }\r\n\r\n ngOnInit() {\r\n this.updatePreviewLocale();\r\n }\r\n\r\n updatePreviewLocale() {\r\n if (!this.currentLocale || this.currentLocale.length === 0 || this.currentLocale.length === 2) {\r\n this.previewLocale = this.createLocaleString(this.currentLanguage, this.currentLocale);\r\n }\r\n }\r\n\r\n setLanguage() {\r\n this.resolveWith([this.currentLanguage, this.currentLocale?.toUpperCase()]);\r\n }\r\n\r\n cancel() {\r\n this.resolveWith();\r\n }\r\n\r\n private createLocaleString(languageCode: LanguageCode, region?: string): string {\r\n if (!region) {\r\n return languageCode;\r\n }\r\n return [languageCode, region.toUpperCase()].join('-');\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { EMPTY, Observable } from 'rxjs';\nimport { map, switchMap, take } from 'rxjs/operators';\n\nimport { getAppConfig } from '../../app.config';\nimport { LanguageCode } from '../../common/generated-types';\nimport { DataService } from '../../data/providers/data.service';\nimport { AuthService } from '../../providers/auth/auth.service';\nimport { I18nService } from '../../providers/i18n/i18n.service';\nimport { LocalStorageService } from '../../providers/local-storage/local-storage.service';\nimport { ModalService } from '../../providers/modal/modal.service';\nimport { UiLanguageSwitcherDialogComponent } from '../ui-language-switcher-dialog/ui-language-switcher-dialog.component';\n\n@Component({\n selector: 'vdr-app-shell',\n templateUrl: './app-shell.component.html',\n styleUrls: ['./app-shell.component.scss'],\n})\nexport class AppShellComponent implements OnInit {\n userName$: Observable<string>;\n uiLanguageAndLocale$: Observable<[LanguageCode, string | undefined]>;\n availableLanguages: LanguageCode[] = [];\n hideVendureBranding = getAppConfig().hideVendureBranding;\n\n constructor(\n private authService: AuthService,\n private dataService: DataService,\n private router: Router,\n private i18nService: I18nService,\n private modalService: ModalService,\n private localStorageService: LocalStorageService,\n ) {}\n\n ngOnInit() {\n this.userName$ = this.dataService.client\n .userStatus()\n .single$.pipe(map(data => data.userStatus.username));\n this.uiLanguageAndLocale$ = this.dataService.client\n .uiState()\n .stream$.pipe(map(({ uiState }) => [uiState.language, uiState.locale ?? undefined]));\n this.availableLanguages = this.i18nService.availableLanguages;\n }\n\n selectUiLanguage() {\n this.uiLanguageAndLocale$\n .pipe(\n take(1),\n switchMap(([currentLanguage, currentLocale]) =>\n this.modalService.fromComponent(UiLanguageSwitcherDialogComponent, {\n closable: true,\n size: 'lg',\n locals: {\n availableLanguages: this.availableLanguages,\n currentLanguage,\n currentLocale,\n },\n }),\n ),\n switchMap(result =>\n result ? this.dataService.client.setUiLanguage(result[0], result[1]) : EMPTY,\n ),\n )\n .subscribe(result => {\n if (result.setUiLanguage) {\n this.i18nService.setLanguage(result.setUiLanguage);\n this.localStorageService.set('uiLanguageCode', result.setUiLanguage);\n this.localStorageService.set('uiLocale', result.setUiLocale ?? undefined);\n }\n });\n }\n\n logOut() {\n this.authService.logOut().subscribe(() => {\n const { loginUrl } = getAppConfig();\n if (loginUrl) {\n window.location.href = loginUrl;\n } else {\n this.router.navigate(['/login']);\n }\n });\n }\n}\n","import { Component, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute, Data, NavigationEnd, Params, PRIMARY_OUTLET, Router } from '@angular/router';\r\nimport { flatten } from 'lodash';\r\nimport { combineLatest as observableCombineLatest, Observable, of as observableOf, Subject } from 'rxjs';\r\nimport { filter, map, startWith, switchMap, takeUntil } from 'rxjs/operators';\r\n\r\nimport { DataService } from '../../data/providers/data.service';\r\n\r\nexport type BreadcrumbString = string;\r\nexport interface BreadcrumbLabelLinkPair {\r\n label: string;\r\n link: any[];\r\n}\r\nexport type BreadcrumbValue = BreadcrumbString | BreadcrumbLabelLinkPair | BreadcrumbLabelLinkPair[];\r\nexport type BreadcrumbFunction = (\r\n data: Data,\r\n params: Params,\r\n dataService: DataService,\r\n) => BreadcrumbValue | Observable<BreadcrumbValue>;\r\nexport type BreadcrumbDefinition = BreadcrumbValue | BreadcrumbFunction | Observable<BreadcrumbValue>;\r\n\r\n/**\r\n * A breadcrumbs component which reads the route config and any route that has a `data.breadcrumb` property will\r\n * be displayed in the breadcrumb trail.\r\n *\r\n * The `breadcrumb` property can be a string or a function. If a function, it will be passed the route's `data`\r\n * object (which will include all resolved keys) and any route params, and should return a BreadcrumbValue.\r\n *\r\n * See the test config to get an idea of allowable configs for breadcrumbs.\r\n */\r\n@Component({\r\n selector: 'vdr-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrls: ['./breadcrumb.component.scss'],\r\n})\r\nexport class BreadcrumbComponent implements OnDestroy {\r\n breadcrumbs$: Observable<Array<{ link: string | any[]; label: string }>>;\r\n private destroy$ = new Subject<void>();\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private dataService: DataService) {\r\n this.breadcrumbs$ = this.router.events.pipe(\r\n filter(event => event instanceof NavigationEnd),\r\n takeUntil(this.destroy$),\r\n startWith(true),\r\n switchMap(() => this.generateBreadcrumbs(this.route.root)),\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n private generateBreadcrumbs(\r\n rootRoute: ActivatedRoute,\r\n ): Observable<Array<{ link: Array<string | any>; label: string }>> {\r\n const breadcrumbParts = this.assembleBreadcrumbParts(rootRoute);\r\n const breadcrumbObservables$ = breadcrumbParts.map(({ value$, path }) => {\r\n return value$.pipe(\r\n map(value => {\r\n if (isBreadcrumbLabelLinkPair(value)) {\r\n return {\r\n label: value.label,\r\n link: this.normalizeRelativeLinks(value.link, path),\r\n };\r\n } else if (isBreadcrumbPairArray(value)) {\r\n return value.map(val => ({\r\n label: val.label,\r\n link: this.normalizeRelativeLinks(val.link, path),\r\n }));\r\n } else {\r\n return {\r\n label: value,\r\n link: '/' + path.join('/'),\r\n };\r\n }\r\n }),\r\n ) as Observable<BreadcrumbLabelLinkPair | BreadcrumbLabelLinkPair[]>;\r\n });\r\n\r\n return observableCombineLatest(breadcrumbObservables$).pipe(map(links => flatten(links)));\r\n }\r\n\r\n /**\r\n * Walks the route definition tree to assemble an array from which the breadcrumbs can be derived.\r\n */\r\n private assembleBreadcrumbParts(\r\n rootRoute: ActivatedRoute,\r\n ): Array<{ value$: Observable<BreadcrumbValue>; path: string[] }> {\r\n const breadcrumbParts: Array<{ value$: Observable<BreadcrumbValue>; path: string[] }> = [];\r\n const inferredUrl = '';\r\n const segmentPaths: string[] = [];\r\n let currentRoute: ActivatedRoute | null = rootRoute;\r\n do {\r\n const childRoutes = currentRoute.children;\r\n currentRoute = null;\r\n childRoutes.forEach((route: ActivatedRoute) => {\r\n if (route.outlet === PRIMARY_OUTLET) {\r\n const routeSnapshot = route.snapshot;\r\n let breadcrumbDef: BreadcrumbDefinition | undefined =\r\n route.routeConfig && route.routeConfig.data && route.routeConfig.data['breadcrumb'];\r\n segmentPaths.push(routeSnapshot.url.map(segment => segment.path).join('/'));\r\n\r\n if (breadcrumbDef) {\r\n if (isBreadcrumbFunction(breadcrumbDef)) {\r\n breadcrumbDef = breadcrumbDef(\r\n routeSnapshot.data,\r\n routeSnapshot.params,\r\n this.dataService,\r\n );\r\n }\r\n const observableValue = isObservable(breadcrumbDef)\r\n ? breadcrumbDef\r\n : observableOf(breadcrumbDef);\r\n breadcrumbParts.push({ value$: observableValue, path: segmentPaths.slice() });\r\n }\r\n currentRoute = route;\r\n }\r\n });\r\n } while (currentRoute);\r\n\r\n return breadcrumbParts;\r\n }\r\n\r\n /**\r\n * Accounts for relative routes in the link array, i.e. arrays whose first element is either:\r\n * * `./` - this appends the rest of the link segments to the current active route\r\n * * `../` - this removes the last segment of the current active route, and appends the link segments\r\n * to the parent route.\r\n */\r\n private normalizeRelativeLinks(link: any[], segmentPaths: string[]): any[] {\r\n const clone = link.slice();\r\n if (clone[0] === './') {\r\n clone[0] = segmentPaths.join('/');\r\n }\r\n if (clone[0] === '../') {\r\n clone[0] = segmentPaths.slice(0, -1).join('/');\r\n }\r\n return clone.filter(segment => segment !== '');\r\n }\r\n}\r\n\r\nfunction isBreadcrumbFunction(value: BreadcrumbDefinition): value is BreadcrumbFunction {\r\n return typeof value === 'function';\r\n}\r\n\r\nfunction isObservable(value: BreadcrumbDefinition): value is Observable<BreadcrumbValue> {\r\n return value instanceof Observable;\r\n}\r\n\r\nfunction isBreadcrumbLabelLinkPair(value: BreadcrumbValue): value is BreadcrumbLabelLinkPair {\r\n return value.hasOwnProperty('label') && value.hasOwnProperty('link');\r\n}\r\n\r\nfunction isBreadcrumbPairArray(value: BreadcrumbValue): value is BreadcrumbLabelLinkPair[] {\r\n return Array.isArray(value) && isBreadcrumbLabelLinkPair(value[0]);\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';\r\nimport { notNullOrUndefined } from '@vendure/common/lib/shared-utils';\r\nimport { combineLatest, Observable } from 'rxjs';\r\nimport { filter, map, startWith } from 'rxjs/operators';\r\n\r\nimport { CurrentUserChannel } from '../../common/generated-types';\r\nimport { DataService } from '../../data/providers/data.service';\r\nimport { LocalStorageService } from '../../providers/local-storage/local-storage.service';\r\n\r\n@Component({\r\n selector: 'vdr-channel-switcher',\r\n templateUrl: './channel-switcher.component.html',\r\n styleUrls: ['./channel-switcher.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ChannelSwitcherComponent implements OnInit {\r\n readonly displayFilterThreshold = 10;\r\n channels$: Observable<CurrentUserChannel[]>;\r\n channelCount$: Observable<number>;\r\n filterControl = new FormControl('');\r\n activeChannelCode$: Observable<string>;\r\n constructor(private dataService: DataService, private localStorageService: LocalStorageService) {}\r\n\r\n ngOnInit() {\r\n const channels$ = this.dataService.client.userStatus().mapStream(data => data.userStatus.channels);\r\n const filterTerm$ = this.filterControl.valueChanges.pipe<string>(startWith(''));\r\n this.channels$ = combineLatest(channels$, filterTerm$).pipe(\r\n map(([channels, filterTerm]) => {\r\n return filterTerm\r\n ? channels.filter(c =>\r\n c.code.toLocaleLowerCase().includes(filterTerm.toLocaleLowerCase()),\r\n )\r\n : channels;\r\n }),\r\n );\r\n this.channelCount$ = channels$.pipe(map(channels => channels.length));\r\n const activeChannel$ = this.dataService.client\r\n .userStatus()\r\n .mapStream(data => data.userStatus.channels.find(c => c.id === data.userStatus.activeChannelId))\r\n .pipe(filter(notNullOrUndefined));\r\n this.activeChannelCode$ = activeChannel$.pipe(map(channel => channel.code));\r\n }\r\n\r\n setActiveChannel(channelId: string) {\r\n this.dataService.client.setActiveChannel(channelId).subscribe(({ setActiveChannel }) => {\r\n const activeChannel = setActiveChannel.channels.find(c => c.id === channelId);\r\n if (activeChannel) {\r\n this.localStorageService.set('activeChannelToken', activeChannel.token);\r\n }\r\n this.filterControl.patchValue('');\r\n });\r\n }\r\n}\r\n","import { getAppConfig } from '../../app.config';\r\n\r\n/**\r\n * Returns the location of the server, e.g. \"http://localhost:3000\"\r\n */\r\nexport function getServerLocation(): string {\r\n const { apiHost, apiPort, adminApiPath, tokenMethod } = getAppConfig();\r\n const host = apiHost === 'auto' ? `${location.protocol}//${location.hostname}` : apiHost;\r\n const port = apiPort\r\n ? apiPort === 'auto'\r\n ? location.port === ''\r\n ? ''\r\n : `:${location.port}`\r\n : `:${apiPort}`\r\n : '';\r\n return `${host}${port}`;\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { merge, Observable, of, Subject, timer } from 'rxjs';\r\nimport { catchError, map, shareReplay, switchMap, throttleTime } from 'rxjs/operators';\r\n\r\nimport { getServerLocation } from '../../data/utils/get-server-location';\r\n\r\nexport type SystemStatus = 'ok' | 'error';\r\n\r\nexport interface HealthCheckResult {\r\n status: SystemStatus;\r\n info: { [name: string]: HealthCheckSuccessResult };\r\n details: { [name: string]: HealthCheckSuccessResult | HealthCheckErrorResult };\r\n error: { [name: string]: HealthCheckErrorResult };\r\n}\r\n\r\nexport interface HealthCheckSuccessResult {\r\n status: 'up';\r\n}\r\n\r\nexport interface HealthCheckErrorResult {\r\n status: 'down';\r\n message: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class HealthCheckService {\r\n status$: Observable<SystemStatus>;\r\n details$: Observable<Array<{ key: string; result: HealthCheckSuccessResult | HealthCheckErrorResult }>>;\r\n lastCheck$: Observable<Date>;\r\n\r\n private readonly pollingDelayMs = 60 * 1000;\r\n private readonly healthCheckEndpoint: string;\r\n private readonly _refresh = new Subject();\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this.healthCheckEndpoint = getServerLocation() + '/health';\r\n\r\n const refresh$ = this._refresh.pipe(throttleTime(1000));\r\n const result$ = merge(timer(0, this.pollingDelayMs), refresh$).pipe(\r\n switchMap(() => this.checkHealth()),\r\n shareReplay(1),\r\n );\r\n\r\n this.status$ = result$.pipe(map(res => res.status));\r\n this.details$ = result$.pipe(\r\n map(res =>\r\n Object.keys(res.details).map(key => {\r\n return { key, result: res.details[key] };\r\n }),\r\n ),\r\n );\r\n this.lastCheck$ = result$.pipe(map(res => res.lastChecked));\r\n }\r\n\r\n refresh() {\r\n this._refresh.next();\r\n }\r\n\r\n private checkHealth() {\r\n return this.httpClient.get<HealthCheckResult>(this.healthCheckEndpoint).pipe(\r\n catchError(err => of(err.error)),\r\n map(res => ({ ...res, lastChecked: new Date() })),\r\n );\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { EMPTY, interval, Observable, of, Subject, Subscription, timer } from 'rxjs';\nimport { debounceTime, map, mapTo, scan, shareReplay, switchMap } from 'rxjs/operators';\n\nimport { JobInfoFragment, JobState, Permission } from '../../common/generated-types';\nimport { DataService } from '../../data/providers/data.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class JobQueueService implements OnDestroy {\n activeJobs$: Observable<JobInfoFragment[]>;\n\n private updateJob$ = new Subject<JobInfoFragment>();\n private onCompleteHandlers = new Map<string, (job: JobInfoFragment) => void>();\n private readonly subscription: Subscription;\n\n constructor(private dataService: DataService) {\n this.checkForJobs();\n\n this.activeJobs$ = this.updateJob$.pipe(\n scan<JobInfoFragment, Map<string, JobInfoFragment>>(\n (jobMap, job) => this.handleJob(jobMap, job),\n new Map<string, JobInfoFragment>(),\n ),\n map(jobMap => Array.from(jobMap.values())),\n debounceTime(500),\n shareReplay(1),\n );\n\n this.subscription = this.activeJobs$\n .pipe(\n switchMap(jobs => {\n if (jobs.length) {\n return interval(2500).pipe(mapTo(jobs));\n } else {\n return of([]);\n }\n }),\n )\n .subscribe(jobs => {\n if (jobs.length) {\n this.dataService.settings.pollJobs(jobs.map(j => j.id)).single$.subscribe(data => {\n data.jobsById.forEach(job => {\n this.updateJob$.next(job);\n });\n });\n }\n });\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n /**\n * After a given delay, checks the server for any active jobs.\n */\n checkForJobs(delay: number = 1000) {\n timer(delay)\n .pipe(\n switchMap(() => this.dataService.client.userStatus().mapSingle(data => data.userStatus)),\n switchMap(userStatus => {\n if (userStatus.permissions.includes(Permission.ReadSettings) && userStatus.isLoggedIn) {\n return this.dataService.settings.getRunningJobs().single$;\n } else {\n return EMPTY;\n }\n }),\n )\n .subscribe(data => data.jobs.items.forEach(job => this.updateJob$.next(job)));\n }\n\n addJob(jobId: string, onComplete?: (job: JobInfoFragment) => void) {\n this.dataService.settings.getJob(jobId).single$.subscribe(({ job }) => {\n if (job) {\n this.updateJob$.next(job);\n if (onComplete) {\n this.onCompleteHandlers.set(jobId, onComplete);\n }\n }\n });\n }\n\n private handleJob(jobMap: Map<string, JobInfoFragment>, job: JobInfoFragment) {\n switch (job.state) {\n case JobState.RUNNING:\n case JobState.PENDING:\n jobMap.set(job.id, job);\n break;\n case JobState.COMPLETED:\n case JobState.FAILED:\n case JobState.CANCELLED:\n jobMap.delete(job.id);\n const handler = this.onCompleteHandlers.get(job.id);\n if (handler) {\n handler(job);\n this.onCompleteHandlers.delete(job.id);\n }\n break;\n }\n return jobMap;\n }\n}\n","import { APP_INITIALIZER, Injectable, Provider } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { notNullOrUndefined } from '@vendure/common/lib/shared-utils';\r\nimport { BehaviorSubject, combineLatest, Observable, of } from 'rxjs';\r\nimport { map, shareReplay } from 'rxjs/operators';\r\n\r\nimport { Permission } from '../../common/generated-types';\r\n\r\nimport {\r\n ActionBarItem,\r\n NavMenuBadgeType,\r\n NavMenuItem,\r\n NavMenuSection,\r\n RouterLinkDefinition,\r\n} from './nav-builder-types';\r\n\r\n/**\r\n * @description\r\n * Add a section to the main nav menu. Providing the `before` argument will\r\n * move the section before any existing section with the specified id. If\r\n * omitted (or if the id is not found) the section will be appended to the\r\n * existing set of sections.\r\n * This should be used in the NgModule `providers` array of your ui extension module.\r\n *\r\n * @example\r\n * ```TypeScript\r\n * \\@NgModule({\r\n * imports: [SharedModule],\r\n * providers: [\r\n * addNavMenuSection({\r\n * id: 'reports',\r\n * label: 'Reports',\r\n * items: [{\r\n * // ...\r\n * }],\r\n * },\r\n * 'settings'),\r\n * ],\r\n * })\r\n * export class MyUiExtensionModule {}\r\n * ```\r\n * @docsCategory nav-menu\r\n */\r\nexport function addNavMenuSection(config: NavMenuSection, before?: string): Provider {\r\n return {\r\n provide: APP_INITIALIZER,\r\n multi: true,\r\n useFactory: (navBuilderService: NavBuilderService) => () => {\r\n navBuilderService.addNavMenuSection(config, before);\r\n },\r\n deps: [NavBuilderService],\r\n };\r\n}\r\n\r\n/**\r\n * @description\r\n * Add a menu item to an existing section specified by `sectionId`. The id of the section\r\n * can be found by inspecting the DOM and finding the `data-section-id` attribute.\r\n * Providing the `before` argument will move the item before any existing item with the specified id.\r\n * If omitted (or if the name is not found) the item will be appended to the\r\n * end of the section.\r\n *\r\n * This should be used in the NgModule `providers` array of your ui extension module.\r\n *\r\n * @example\r\n * ```TypeScript\r\n * \\@NgModule({\r\n * imports: [SharedModule],\r\n * providers: [\r\n * addNavMenuItem({\r\n * id: 'reviews',\r\n * label: 'Product Reviews',\r\n * routerLink: ['/extensions/reviews'],\r\n * icon: 'star',\r\n * },\r\n * 'marketing'),\r\n * ],\r\n * })\r\n * export class MyUiExtensionModule {}\r\n * ``\r\n *\r\n * @docsCategory nav-menu\r\n */\r\nexport function addNavMenuItem(config: NavMenuItem, sectionId: string, before?: string): Provider {\r\n return {\r\n provide: APP_INITIALIZER,\r\n multi: true,\r\n useFactory: (navBuilderService: NavBuilderService) => () => {\r\n navBuilderService.addNavMenuItem(config, sectionId, before);\r\n },\r\n deps: [NavBuilderService],\r\n };\r\n}\r\n\r\n/**\r\n * @description\r\n * Adds a button to the ActionBar at the top right of each list or detail view. The locationId can\r\n * be determined by inspecting the DOM and finding the <vdr-action-bar> element and its\r\n * `data-location-id` attribute.\r\n *\r\n * This should be used in the NgModule `providers` array of your ui extension module.\r\n *\r\n * @example\r\n * ```TypeScript\r\n * \\@NgModule({\r\n * imports: [SharedModule],\r\n * providers: [\r\n * addActionBarItem({\r\n * id: 'print-invoice'\r\n * label: 'Print Invoice',\r\n * locationId: 'order-detail',\r\n * routerLink: ['/extensions/invoicing'],\r\n * }),\r\n * ],\r\n * })\r\n * export class MyUiExtensionModule {}\r\n * ```\r\n * @docsCategory action-bar\r\n */\r\nexport function addActionBarItem(config: ActionBarItem): Provider {\r\n return {\r\n provide: APP_INITIALIZER,\r\n multi: true,\r\n useFactory: (navBuilderService: NavBuilderService) => () => {\r\n navBuilderService.addActionBarItem(config);\r\n },\r\n deps: [NavBuilderService],\r\n };\r\n}\r\n\r\n/**\r\n * This service is used to define the contents of configurable menus in the application.\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NavBuilderService {\r\n navMenuConfig$: Observable<NavMenuSection[]>;\r\n actionBarConfig$: Observable<ActionBarItem[]>;\r\n sectionBadges: { [sectionId: string]: Observable<NavMenuBadgeType> } = {};\r\n\r\n private initialNavMenuConfig$ = new BehaviorSubject<NavMenuSection[]>([]);\r\n private addedNavMenuSections: Array<{ config: NavMenuSection; before?: string }> = [];\r\n private addedNavMenuItems: Array<{\r\n config: NavMenuItem;\r\n sectionId: string;\r\n before?: string;\r\n }> = [];\r\n private addedActionBarItems: ActionBarItem[] = [];\r\n\r\n constructor() {\r\n this.setupStreams();\r\n }\r\n\r\n /**\r\n * Used to define the initial sections and items of the main nav menu.\r\n */\r\n defineNavMenuSections(config: NavMenuSection[]) {\r\n this.initialNavMenuConfig$.next(config);\r\n }\r\n\r\n /**\r\n * Add a section to the main nav menu. Providing the `before` argument will\r\n * move the section before any existing section with the specified id. If\r\n * omitted (or if the id is not found) the section will be appended to the\r\n * existing set of sections.\r\n *\r\n * Providing the `id` of an existing section will replace that section.\r\n */\r\n addNavMenuSection(config: NavMenuSection, before?: string) {\r\n this.addedNavMenuSections.push({ config, before });\r\n }\r\n\r\n /**\r\n * Add a menu item to an existing section specified by `sectionId`. The id of the section\r\n * can be found by inspecting the DOM and finding the `data-section-id` attribute.\r\n * Providing the `before` argument will move the item before any existing item with the specified id.\r\n * If omitted (or if the name is not found) the item will be appended to the\r\n * end of the section.\r\n *\r\n * Providing the `id` of an existing item in that section will replace\r\n * that item.\r\n */\r\n addNavMenuItem(config: NavMenuItem, sectionId: string, before?: string) {\r\n this.addedNavMenuItems.push({ config, sectionId, before });\r\n }\r\n\r\n /**\r\n * Adds a button to the ActionBar at the top right of each list or detail view. The locationId can\r\n * be determined by inspecting the DOM and finding the <vdr-action-bar> element and its\r\n * `data-location-id` attribute.\r\n */\r\n addActionBarItem(config: ActionBarItem) {\r\n this.addedActionBarItems.push({\r\n requiresPermission: Permission.Authenticated,\r\n ...config,\r\n });\r\n }\r\n\r\n getRouterLink(config: { routerLink?: RouterLinkDefinition }, route: ActivatedRoute): string[] | null {\r\n if (typeof config.routerLink === 'function') {\r\n return config.routerLink(route);\r\n }\r\n if (Array.isArray(config.routerLink)) {\r\n return config.routerLink;\r\n }\r\n return null;\r\n }\r\n\r\n private setupStreams() {\r\n const sectionAdditions$ = of(this.addedNavMenuSections);\r\n const itemAdditions$ = of(this.addedNavMenuItems);\r\n\r\n const combinedConfig$ = combineLatest(this.initialNavMenuConfig$, sectionAdditions$).pipe(\r\n map(([initialConfig, additions]) => {\r\n for (const { config, before } of additions) {\r\n if (!config.requiresPermission) {\r\n config.requiresPermission = Permission.Authenticated;\r\n }\r\n const existingIndex = initialConfig.findIndex(c => c.id === config.id);\r\n if (-1 < existingIndex) {\r\n initialConfig[existingIndex] = config;\r\n }\r\n const beforeIndex = initialConfig.findIndex(c => c.id === before);\r\n if (-1 < beforeIndex) {\r\n if (-1 < existingIndex) {\r\n initialConfig.splice(existingIndex, 1);\r\n }\r\n initialConfig.splice(beforeIndex, 0, config);\r\n } else if (existingIndex === -1) {\r\n initialConfig.push(config);\r\n }\r\n }\r\n return initialConfig;\r\n }),\r\n shareReplay(1),\r\n );\r\n\r\n this.navMenuConfig$ = combineLatest(combinedConfig$, itemAdditions$).pipe(\r\n map(([sections, additionalItems]) => {\r\n for (const item of additionalItems) {\r\n const section = sections.find(s => s.id === item.sectionId);\r\n if (!section) {\r\n // tslint:disable-next-line:no-console\r\n console.error(\r\n `Could not add menu item \"${item.config.id}\", section \"${item.sectionId}\" does not exist`,\r\n );\r\n } else {\r\n const { config, sectionId, before } = item;\r\n const existingIndex = section.items.findIndex(i => i.id === config.id);\r\n if (-1 < existingIndex) {\r\n section.items[existingIndex] = config;\r\n }\r\n const beforeIndex = section.items.findIndex(i => i.id === before);\r\n if (-1 < beforeIndex) {\r\n if (-1 < existingIndex) {\r\n section.items.splice(existingIndex, 1);\r\n }\r\n section.items.splice(beforeIndex, 0, config);\r\n } else if (existingIndex === -1) {\r\n section.items.push(config);\r\n }\r\n }\r\n }\r\n\r\n // Aggregate any badges defined for the nav items in each section\r\n for (const section of sections) {\r\n const itemBadgeStatuses = section.items\r\n .map(i => i.statusBadge)\r\n .filter(notNullOrUndefined);\r\n this.sectionBadges[section.id] = combineLatest(itemBadgeStatuses).pipe(\r\n map(badges => {\r\n const propagatingBadges = badges.filter(b => b.propagateToSection);\r\n if (propagatingBadges.length === 0) {\r\n return 'none';\r\n }\r\n const statuses = propagatingBadges.map(b => b.type);\r\n if (statuses.includes('error')) {\r\n return 'error';\r\n } else if (statuses.includes('warning')) {\r\n return 'warning';\r\n } else if (statuses.includes('info')) {\r\n return 'info';\r\n } else {\r\n return 'none';\r\n }\r\n }),\r\n );\r\n }\r\n\r\n return sections;\r\n }),\r\n );\r\n\r\n this.actionBarConfig$ = of(this.addedActionBarItems);\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { Subscription } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\n\nimport { Permission } from '../../common/generated-types';\nimport { DataService } from '../../data/providers/data.service';\nimport { HealthCheckService } from '../../providers/health-check/health-check.service';\nimport { JobQueueService } from '../../providers/job-queue/job-queue.service';\nimport { NavMenuBadge, NavMenuItem } from '../../providers/nav-builder/nav-builder-types';\nimport { NavBuilderService } from '../../providers/nav-builder/nav-builder.service';\n\n@Component({\n selector: 'vdr-main-nav',\n templateUrl: './main-nav.component.html',\n styleUrls: ['./main-nav.component.scss'],\n})\nexport class MainNavComponent implements OnInit, OnDestroy {\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n public navBuilderService: NavBuilderService,\n private healthCheckService: HealthCheckService,\n private jobQueueService: JobQueueService,\n private dataService: DataService,\n ) {}\n\n private userPermissions: string[];\n private subscription: Subscription;\n\n shouldDisplayLink(menuItem: Pick<NavMenuItem, 'requiresPermission'>) {\n if (!this.userPermissions) {\n return false;\n }\n if (!menuItem.requiresPermission) {\n return true;\n }\n if (typeof menuItem.requiresPermission === 'string') {\n return this.userPermissions.includes(menuItem.requiresPermission);\n }\n if (typeof menuItem.requiresPermission === 'function') {\n return menuItem.requiresPermission(this.userPermissions);\n }\n }\n\n ngOnInit(): void {\n this.defineNavMenu();\n this.subscription = this.dataService.client\n .userStatus()\n .mapStream(({ userStatus }) => {\n this.userPermissions = userStatus.permissions;\n })\n .subscribe();\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n getRouterLink(item: NavMenuItem) {\n return this.navBuilderService.getRouterLink(item, this.route);\n }\n\n private defineNavMenu() {\n function allow(...permissions: string[]): (userPermissions: string[]) => boolean {\n return userPermissions => {\n for (const permission of permissions) {\n if (userPermissions.includes(permission)) {\n return true;\n }\n }\n return false;\n };\n }\n\n this.navBuilderService.defineNavMenuSections([\n {\n requiresPermission: allow(\n Permission.ReadCatalog,\n Permission.ReadProduct,\n Permission.ReadFacet,\n Permission.ReadCollection,\n Permission.ReadAsset,\n ),\n id: 'catalog',\n label: _('nav.catalog'),\n items: [\n {\n requiresPermission: allow(Permission.ReadCatalog, Permission.ReadProduct),\n id: 'products',\n label: _('nav.products'),\n icon: 'library',\n routerLink: ['/catalog', 'products'],\n },\n {\n requiresPermission: allow(Permission.ReadCatalog, Permission.ReadFacet),\n id: 'facets',\n label: _('nav.facets'),\n icon: 'tag',\n routerLink: ['/catalog', 'facets'],\n },\n {\n requiresPermission: allow(Permission.ReadCatalog, Permission.ReadCollection),\n id: 'collections',\n label: _('nav.collections'),\n icon: 'folder-open',\n routerLink: ['/catalog', 'collections'],\n },\n {\n requiresPermission: allow(Permission.ReadCatalog, Permission.ReadAsset),\n id: 'assets',\n label: _('nav.assets'),\n icon: 'image-gallery',\n routerLink: ['/catalog', 'assets'],\n },\n ],\n },\n {\n id: 'sales',\n label: _('nav.sales'),\n requiresPermission: allow(Permission.ReadOrder),\n items: [\n {\n requiresPermission: allow(Permission.ReadOrder),\n id: 'orders',\n label: _('nav.orders'),\n routerLink: ['/orders'],\n icon: 'shopping-cart',\n },\n ],\n },\n {\n id: 'customers',\n label: _('nav.customers'),\n requiresPermission: allow(Permission.ReadCustomer, Permission.ReadCustomerGroup),\n items: [\n {\n requiresPermission: allow(Permission.ReadCustomer),\n id: 'customers',\n label: _('nav.customers'),\n routerLink: ['/customer', 'customers'],\n icon: 'user',\n },\n {\n requiresPermission: allow(Permission.ReadCustomerGroup),\n id: 'customer-groups',\n label: _('nav.customer-groups'),\n routerLink: ['/customer', 'groups'],\n icon: 'users',\n },\n ],\n },\n {\n id: 'marketing',\n label: _('nav.marketing'),\n requiresPermission: allow(Permission.ReadPromotion),\n items: [\n {\n requiresPermission: allow(Permission.ReadPromotion),\n id: 'promotions',\n label: _('nav.promotions'),\n routerLink: ['/marketing', 'promotions'],\n icon: 'asterisk',\n },\n ],\n },\n {\n id: 'settings',\n label: _('nav.settings'),\n requiresPermission: allow(\n Permission.ReadSettings,\n Permission.ReadChannel,\n Permission.ReadAdministrator,\n Permission.ReadShippingMethod,\n Permission.ReadPaymentMethod,\n Permission.ReadTaxCategory,\n Permission.ReadTaxRate,\n Permission.ReadCountry,\n Permission.ReadZone,\n Permission.UpdateGlobalSettings,\n ),\n collapsible: true,\n collapsedByDefault: true,\n items: [\n {\n requiresPermission: allow(Permission.ReadChannel),\n id: 'channels',\n label: _('nav.channels'),\n routerLink: ['/settings', 'channels'],\n icon: 'layers',\n },\n {\n requiresPermission: allow(Permission.ReadAdministrator),\n id: 'administrators',\n label: _('nav.administrators'),\n routerLink: ['/settings', 'administrators'],\n icon: 'administrator',\n },\n {\n requiresPermission: allow(Permission.ReadAdministrator),\n id: 'roles',\n label: _('nav.roles'),\n routerLink: ['/settings', 'roles'],\n icon: 'users',\n },\n {\n requiresPermission: allow(Permission.ReadShippingMethod),\n id: 'shipping-methods',\n label: _('nav.shipping-methods'),\n routerLink: ['/settings', 'shipping-methods'],\n icon: 'truck',\n },\n {\n requiresPermission: allow(Permission.ReadPaymentMethod),\n id: 'payment-methods',\n label: _('nav.payment-methods'),\n routerLink: ['/settings', 'payment-methods'],\n icon: 'credit-card',\n },\n {\n requiresPermission: allow(Permission.ReadTaxCategory),\n id: 'tax-categories',\n label: _('nav.tax-categories'),\n routerLink: ['/settings', 'tax-categories'],\n icon: 'view-list',\n },\n {\n requiresPermission: allow(Permission.ReadTaxRate),\n id: 'tax-rates',\n label: _('nav.tax-rates'),\n routerLink: ['/settings', 'tax-rates'],\n icon: 'calculator',\n },\n {\n requiresPermission: allow(Permission.ReadCountry),\n id: 'countries',\n label: _('nav.countries'),\n routerLink: ['/settings', 'countries'],\n icon: 'flag',\n },\n {\n requiresPermission: allow(Permission.ReadZone),\n id: 'zones',\n label: _('nav.zones'),\n routerLink: ['/settings', 'zones'],\n icon: 'world',\n },\n {\n requiresPermission: allow(Permission.UpdateGlobalSettings),\n id: 'global-settings',\n label: _('nav.global-settings'),\n routerLink: ['/settings', 'global-settings'],\n icon: 'cog',\n },\n ],\n },\n {\n id: 'system',\n label: _('nav.system'),\n requiresPermission: Permission.ReadSystem,\n collapsible: true,\n collapsedByDefault: true,\n items: [\n {\n id: 'job-queue',\n label: _('nav.job-queue'),\n routerLink: ['/system', 'jobs'],\n icon: 'tick-chart',\n statusBadge: this.jobQueueService.activeJobs$.pipe(\n startWith([]),\n map(\n jobs =>\n ({\n type: jobs.length === 0 ? 'none' : 'info',\n propagateToSection: jobs.length > 0,\n } as NavMenuBadge),\n ),\n ),\n },\n {\n id: 'system-status',\n label: _('nav.system-status'),\n routerLink: ['/system', 'system-status'],\n icon: 'rack-server',\n statusBadge: this.healthCheckService.status$.pipe(\n map(status => ({\n type: status === 'ok' ? 'success' : 'error',\n propagateToSection: status === 'error',\n })),\n ),\n },\n ],\n },\n ]);\n }\n}\n","import { Component, ElementRef, HostListener, ViewChild } from '@angular/core';\r\n\r\nimport { NotificationType } from '../../providers/notification/notification.service';\r\n\r\n@Component({\r\n selector: 'vdr-notification',\r\n templateUrl: './notification.component.html',\r\n styleUrls: ['./notification.component.scss'],\r\n})\r\nexport class NotificationComponent {\r\n @ViewChild('wrapper', { static: true }) wrapper: ElementRef;\r\n offsetTop = 0;\r\n message = '';\r\n translationVars: { [key: string]: string | number } = {};\r\n type: NotificationType = 'info';\r\n isVisible = true;\r\n private onClickFn: () => void = () => {\r\n /* */\r\n }\r\n\r\n registerOnClickFn(fn: () => void): void {\r\n this.onClickFn = fn;\r\n }\r\n\r\n @HostListener('click')\r\n onClick(): void {\r\n if (this.isVisible) {\r\n this.onClickFn();\r\n }\r\n }\r\n\r\n /**\r\n * Fade out the toast. When promise resolves, toast is invisible and\r\n * can be removed.\r\n */\r\n fadeOut(): Promise<any> {\r\n this.isVisible = false;\r\n return new Promise(resolve => setTimeout(resolve, 1000));\r\n }\r\n\r\n /**\r\n * Returns the height of the toast element in px.\r\n */\r\n getHeight(): number {\r\n if (!this.wrapper) {\r\n return 0;\r\n }\r\n const el: HTMLElement = this.wrapper.nativeElement;\r\n return el.getBoundingClientRect().height;\r\n }\r\n\r\n getIcon(): string {\r\n switch (this.type) {\r\n case 'info':\r\n return 'info-circle';\r\n case 'success':\r\n return 'check-circle';\r\n case 'error':\r\n return 'exclamation-circle';\r\n case 'warning':\r\n return 'exclamation-triangle';\r\n }\r\n }\r\n\r\n stringifyMessage(message: unknown) {\r\n if (typeof message === 'string') {\r\n return message;\r\n } else {\r\n return JSON.stringify(message, null, 2);\r\n }\r\n }\r\n}\r\n","import { Component, ViewContainerRef } from '@angular/core';\r\n\r\nimport { OverlayHostService } from '../../providers/overlay-host/overlay-host.service';\r\n\r\n/**\r\n * The OverlayHostComponent is a placeholder component which provides a location in the DOM into which overlay\r\n * elements (modals, notify notifications etc) may be injected dynamically.\r\n */\r\n@Component({\r\n selector: 'vdr-overlay-host',\r\n template: '<!-- -->',\r\n})\r\nexport class OverlayHostComponent {\r\n constructor(viewContainerRef: ViewContainerRef, overlayHostService: OverlayHostService) {\r\n overlayHostService.registerHostView(viewContainerRef);\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { DataService } from '../../data/providers/data.service';\r\nimport { LocalStorageService } from '../../providers/local-storage/local-storage.service';\r\n\r\n@Component({\r\n selector: 'vdr-theme-switcher',\r\n templateUrl: './theme-switcher.component.html',\r\n styleUrls: ['./theme-switcher.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ThemeSwitcherComponent implements OnInit {\r\n activeTheme$: Observable<string>;\r\n\r\n constructor(private dataService: DataService, private localStorageService: LocalStorageService) {}\r\n\r\n ngOnInit() {\r\n this.activeTheme$ = this.dataService.client.uiState().mapStream(data => data.uiState.theme);\r\n }\r\n\r\n toggleTheme(current: string) {\r\n const newTheme = current === 'default' ? 'dark' : 'default';\r\n this.dataService.client.setUiTheme(newTheme).subscribe(() => {\r\n this.localStorageService.set('activeTheme', newTheme);\r\n });\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { LanguageCode } from '../../common/generated-types';\r\n\r\n@Component({\r\n selector: 'vdr-user-menu',\r\n templateUrl: './user-menu.component.html',\r\n styleUrls: ['./user-menu.component.scss'],\r\n})\r\nexport class UserMenuComponent {\r\n @Input() userName = '';\r\n @Input() availableLanguages: LanguageCode[] = [];\r\n @Input() uiLanguageAndLocale: [LanguageCode, string | undefined];\r\n @Output() logOut = new EventEmitter<void>();\r\n @Output() selectUiLanguage = new EventEmitter<void>();\r\n}\r\n","// tslint:disable\r\n\r\n export interface PossibleTypesResultData {\r\n possibleTypes: {\r\n [key: string]: string[]\r\n }\r\n }\r\n const result: PossibleTypesResultData = {\r\n \"possibleTypes\": {\r\n \"AddFulfillmentToOrderResult\": [\r\n \"Fulfillment\",\r\n \"EmptyOrderLineSelectionError\",\r\n \"ItemsAlreadyFulfilledError\",\r\n \"InsufficientStockOnHandError\",\r\n \"InvalidFulfillmentHandlerError\",\r\n \"FulfillmentStateTransitionError\",\r\n \"CreateFulfillmentError\"\r\n ],\r\n \"AddManualPaymentToOrderResult\": [\r\n \"Order\",\r\n \"ManualPaymentStateError\"\r\n ],\r\n \"ApplyCouponCodeResult\": [\r\n \"Order\",\r\n \"CouponCodeExpiredError\",\r\n \"CouponCodeInvalidError\",\r\n \"CouponCodeLimitError\"\r\n ],\r\n \"AuthenticationResult\": [\r\n \"CurrentUser\",\r\n \"InvalidCredentialsError\"\r\n ],\r\n \"CancelOrderResult\": [\r\n \"Order\",\r\n \"EmptyOrderLineSelectionError\",\r\n \"QuantityTooGreatError\",\r\n \"MultipleOrderError\",\r\n \"CancelActiveOrderError\",\r\n \"OrderStateTransitionError\"\r\n ],\r\n \"CancelPaymentResult\": [\r\n \"Payment\",\r\n \"CancelPaymentError\",\r\n \"PaymentStateTransitionError\"\r\n ],\r\n \"CreateAssetResult\": [\r\n \"Asset\",\r\n \"MimeTypeError\"\r\n ],\r\n \"CreateChannelResult\": [\r\n \"Channel\",\r\n \"LanguageNotAvailableError\"\r\n ],\r\n \"CreateCustomerResult\": [\r\n \"Customer\",\r\n \"EmailAddressConflictError\"\r\n ],\r\n \"CreatePromotionResult\": [\r\n \"Promotion\",\r\n \"MissingConditionsError\"\r\n ],\r\n \"CustomField\": [\r\n \"BooleanCustomFieldConfig\",\r\n \"DateTimeCustomFieldConfig\",\r\n \"FloatCustomFieldConfig\",\r\n \"IntCustomFieldConfig\",\r\n \"LocaleStringCustomFieldConfig\",\r\n \"RelationCustomFieldConfig\",\r\n \"StringCustomFieldConfig\",\r\n \"TextCustomFieldConfig\"\r\n ],\r\n \"CustomFieldConfig\": [\r\n \"StringCustomFieldConfig\",\r\n \"LocaleStringCustomFieldConfig\",\r\n \"IntCustomFieldConfig\",\r\n \"FloatCustomFieldConfig\",\r\n \"BooleanCustomFieldConfig\",\r\n \"DateTimeCustomFieldConfig\",\r\n \"RelationCustomFieldConfig\",\r\n \"TextCustomFieldConfig\"\r\n ],\r\n \"ErrorResult\": [\r\n \"AlreadyRefundedError\",\r\n \"CancelActiveOrderError\",\r\n \"CancelPaymentError\",\r\n \"ChannelDefaultLanguageError\",\r\n \"CouponCodeExpiredError\",\r\n \"CouponCodeInvalidError\",\r\n \"CouponCodeLimitError\",\r\n \"CreateFulfillmentError\",\r\n \"EmailAddressConflictError\",\r\n \"EmptyOrderLineSelectionError\",\r\n \"FacetInUseError\",\r\n \"FulfillmentStateTransitionError\",\r\n \"IneligibleShippingMethodError\",\r\n \"InsufficientStockError\",\r\n \"InsufficientStockOnHandError\",\r\n \"InvalidCredentialsError\",\r\n \"InvalidFulfillmentHandlerError\",\r\n \"ItemsAlreadyFulfilledError\",\r\n \"LanguageNotAvailableError\",\r\n \"ManualPaymentStateError\",\r\n \"MimeTypeError\",\r\n \"MissingConditionsError\",\r\n \"MultipleOrderError\",\r\n \"NativeAuthStrategyError\",\r\n \"NegativeQuantityError\",\r\n \"NoActiveOrderError\",\r\n \"NoChangesSpecifiedError\",\r\n \"NothingToRefundError\",\r\n \"OrderLimitError\",\r\n \"OrderModificationError\",\r\n \"OrderModificationStateError\",\r\n \"OrderStateTransitionError\",\r\n \"PaymentMethodMissingError\",\r\n \"PaymentOrderMismatchError\",\r\n \"PaymentStateTransitionError\",\r\n \"ProductOptionInUseError\",\r\n \"QuantityTooGreatError\",\r\n \"RefundOrderStateError\",\r\n \"RefundPaymentIdMissingError\",\r\n \"RefundStateTransitionError\",\r\n \"SettlePaymentError\"\r\n ],\r\n \"ModifyOrderResult\": [\r\n \"Order\",\r\n \"NoChangesSpecifiedError\",\r\n \"OrderModificationStateError\",\r\n \"PaymentMethodMissingError\",\r\n \"RefundPaymentIdMissingError\",\r\n \"OrderLimitError\",\r\n \"NegativeQuantityError\",\r\n \"InsufficientStockError\",\r\n \"CouponCodeExpiredError\",\r\n \"CouponCodeInvalidError\",\r\n \"CouponCodeLimitError\"\r\n ],\r\n \"NativeAuthenticationResult\": [\r\n \"CurrentUser\",\r\n \"InvalidCredentialsError\",\r\n \"NativeAuthStrategyError\"\r\n ],\r\n \"Node\": [\r\n \"Address\",\r\n \"Administrator\",\r\n \"Allocation\",\r\n \"Asset\",\r\n \"AuthenticationMethod\",\r\n \"Cancellation\",\r\n \"Channel\",\r\n \"Collection\",\r\n \"Country\",\r\n \"Customer\",\r\n \"CustomerGroup\",\r\n \"Facet\",\r\n \"FacetValue\",\r\n \"Fulfillment\",\r\n \"HistoryEntry\",\r\n \"Job\",\r\n \"Order\",\r\n \"OrderItem\",\r\n \"OrderLine\",\r\n \"OrderModification\",\r\n \"Payment\",\r\n \"PaymentMethod\",\r\n \"Product\",\r\n \"ProductOption\",\r\n \"ProductOptionGroup\",\r\n \"ProductVariant\",\r\n \"Promotion\",\r\n \"Refund\",\r\n \"Release\",\r\n \"Return\",\r\n \"Role\",\r\n \"Sale\",\r\n \"ShippingMethod\",\r\n \"StockAdjustment\",\r\n \"Surcharge\",\r\n \"Tag\",\r\n \"TaxCategory\",\r\n \"TaxRate\",\r\n \"User\",\r\n \"Zone\"\r\n ],\r\n \"PaginatedList\": [\r\n \"AdministratorList\",\r\n \"AssetList\",\r\n \"CollectionList\",\r\n \"CountryList\",\r\n \"CustomerGroupList\",\r\n \"CustomerList\",\r\n \"FacetList\",\r\n \"HistoryEntryList\",\r\n \"JobList\",\r\n \"OrderList\",\r\n \"PaymentMethodList\",\r\n \"ProductList\",\r\n \"ProductVariantList\",\r\n \"PromotionList\",\r\n \"RoleList\",\r\n \"ShippingMethodList\",\r\n \"TagList\",\r\n \"TaxRateList\"\r\n ],\r\n \"RefundOrderResult\": [\r\n \"Refund\",\r\n \"QuantityTooGreatError\",\r\n \"NothingToRefundError\",\r\n \"OrderStateTransitionError\",\r\n \"MultipleOrderError\",\r\n \"PaymentOrderMismatchError\",\r\n \"RefundOrderStateError\",\r\n \"AlreadyRefundedError\",\r\n \"RefundStateTransitionError\"\r\n ],\r\n \"RemoveFacetFromChannelResult\": [\r\n \"Facet\",\r\n \"FacetInUseError\"\r\n ],\r\n \"RemoveOptionGroupFromProductResult\": [\r\n \"Product\",\r\n \"ProductOptionInUseError\"\r\n ],\r\n \"RemoveOrderItemsResult\": [\r\n \"Order\",\r\n \"OrderModificationError\"\r\n ],\r\n \"SearchResultPrice\": [\r\n \"PriceRange\",\r\n \"SinglePrice\"\r\n ],\r\n \"SetCustomerForDraftOrderResult\": [\r\n \"Order\",\r\n \"EmailAddressConflictError\"\r\n ],\r\n \"SetOrderShippingMethodResult\": [\r\n \"Order\",\r\n \"OrderModificationError\",\r\n \"IneligibleShippingMethodError\",\r\n \"NoActiveOrderError\"\r\n ],\r\n \"SettlePaymentResult\": [\r\n \"Payment\",\r\n \"SettlePaymentError\",\r\n \"PaymentStateTransitionError\",\r\n \"OrderStateTransitionError\"\r\n ],\r\n \"SettleRefundResult\": [\r\n \"Refund\",\r\n \"RefundStateTransitionError\"\r\n ],\r\n \"StockMovement\": [\r\n \"Allocation\",\r\n \"Cancellation\",\r\n \"Release\",\r\n \"Return\",\r\n \"Sale\",\r\n \"StockAdjustment\"\r\n ],\r\n \"StockMovementItem\": [\r\n \"StockAdjustment\",\r\n \"Allocation\",\r\n \"Sale\",\r\n \"Cancellation\",\r\n \"Return\",\r\n \"Release\"\r\n ],\r\n \"TransitionFulfillmentToStateResult\": [\r\n \"Fulfillment\",\r\n \"FulfillmentStateTransitionError\"\r\n ],\r\n \"TransitionOrderToStateResult\": [\r\n \"Order\",\r\n \"OrderStateTransitionError\"\r\n ],\r\n \"TransitionPaymentToStateResult\": [\r\n \"Payment\",\r\n \"PaymentStateTransitionError\"\r\n ],\r\n \"UpdateChannelResult\": [\r\n \"Channel\",\r\n \"LanguageNotAvailableError\"\r\n ],\r\n \"UpdateCustomerResult\": [\r\n \"Customer\",\r\n \"EmailAddressConflictError\"\r\n ],\r\n \"UpdateGlobalSettingsResult\": [\r\n \"GlobalSettings\",\r\n \"ChannelDefaultLanguageError\"\r\n ],\r\n \"UpdateOrderItemsResult\": [\r\n \"Order\",\r\n \"OrderModificationError\",\r\n \"OrderLimitError\",\r\n \"NegativeQuantityError\",\r\n \"InsufficientStockError\"\r\n ],\r\n \"UpdatePromotionResult\": [\r\n \"Promotion\",\r\n \"MissingConditionsError\"\r\n ]\r\n }\r\n};\r\n export default result;\r\n ","// Allows the introspectionResult to be imported as a named symbol\r\nexport { default as introspectionResult } from './introspection-result';\r\n","import { Injector } from '@angular/core';\r\nimport { ApolloLink, Operation } from '@apollo/client/core';\r\n\r\nimport { JobQueueService } from '../providers/job-queue/job-queue.service';\r\n\r\n/**\r\n * This link checks each operation and if it is a mutation, it tells the JobQueueService\r\n * to poll for active jobs. This is because certain mutations trigger background jobs\r\n * which should be made known in the UI.\r\n */\r\nexport class CheckJobsLink extends ApolloLink {\r\n private _jobQueueService: JobQueueService;\r\n get jobQueueService(): JobQueueService {\r\n if (!this._jobQueueService) {\r\n this._jobQueueService = this.injector.get(JobQueueService);\r\n }\r\n return this._jobQueueService;\r\n }\r\n\r\n /**\r\n * We inject the Injector rather than the JobQueueService directly in order\r\n * to avoid a circular dependency error.\r\n */\r\n constructor(private injector: Injector) {\r\n super((operation, forward) => {\r\n if (this.isMutation(operation)) {\r\n this.jobQueueService.checkForJobs();\r\n }\r\n return forward ? forward(operation) : null;\r\n });\r\n }\r\n\r\n private isMutation(operation: Operation): boolean {\r\n return !!operation.query.definitions.find(\r\n d => d.kind === 'OperationDefinition' && d.operation === 'mutation',\r\n );\r\n }\r\n}\r\n","import { getAppConfig } from '../../app.config';\r\nimport { GetNetworkStatus, GetUiState, GetUserStatus } from '../../common/generated-types';\r\nimport { getDefaultUiLanguage, getDefaultUiLocale } from '../../common/utilities/get-default-ui-language';\r\nimport { LocalStorageService } from '../../providers/local-storage/local-storage.service';\r\n\r\nexport function getClientDefaults(localStorageService: LocalStorageService) {\r\n const currentLanguage = localStorageService.get('uiLanguageCode') || getDefaultUiLanguage();\r\n const currentLocale = localStorageService.get('uiLocale') || getDefaultUiLocale();\r\n const currentContentLanguage = localStorageService.get('contentLanguageCode') || getDefaultUiLanguage();\r\n const activeTheme = localStorageService.get('activeTheme') || 'default';\r\n return {\r\n networkStatus: {\r\n inFlightRequests: 0,\r\n __typename: 'NetworkStatus',\r\n } as GetNetworkStatus.NetworkStatus,\r\n userStatus: {\r\n username: '',\r\n isLoggedIn: false,\r\n loginTime: '',\r\n activeChannelId: null,\r\n permissions: [],\r\n channels: [],\r\n __typename: 'UserStatus',\r\n } as GetUserStatus.UserStatus,\r\n uiState: {\r\n language: currentLanguage,\r\n locale: currentLocale || '',\r\n contentLanguage: currentContentLanguage,\r\n theme: activeTheme,\r\n displayUiExtensionPoints: false,\r\n __typename: 'UiState',\r\n } as GetUiState.UiState,\r\n };\r\n}\r\n","import { InMemoryCache } from '@apollo/client/core';\r\n\r\nimport {\r\n GetNetworkStatus,\r\n GetUiState,\r\n GetUserStatus,\r\n LanguageCode,\r\n SetActiveChannel,\r\n SetAsLoggedIn,\r\n SetContentLanguage,\r\n SetDisplayUiExtensionPoints,\r\n SetUiLanguage,\r\n SetUiLocale,\r\n SetUiTheme,\r\n UpdateUserChannels,\r\n UserStatus,\r\n} from '../../common/generated-types';\r\nimport { GET_NEWTORK_STATUS, GET_UI_STATE, GET_USER_STATUS } from '../definitions/client-definitions';\r\n\r\nexport type ResolverContext = {\r\n cache: InMemoryCache;\r\n optimisticResponse: any;\r\n getCacheKey: (storeObj: any) => string;\r\n};\r\n\r\nexport type ResolverDefinition = {\r\n Mutation: {\r\n [name: string]: (rootValue: any, args: any, context: ResolverContext, info?: any) => any;\r\n };\r\n};\r\n\r\nexport const clientResolvers: ResolverDefinition = {\r\n Mutation: {\r\n requestStarted: (_, args, { cache }): number => {\r\n return updateRequestsInFlight(cache, 1);\r\n },\r\n requestCompleted: (_, args, { cache }): number => {\r\n return updateRequestsInFlight(cache, -1);\r\n },\r\n setAsLoggedIn: (_, args: SetAsLoggedIn.Variables, { cache }): GetUserStatus.UserStatus => {\r\n const {\r\n input: { username, loginTime, channels, activeChannelId },\r\n } = args;\r\n // tslint:disable-next-line:no-non-null-assertion\r\n const permissions = channels.find(c => c.id === activeChannelId)!.permissions;\r\n const data: { userStatus: UserStatus } = {\r\n userStatus: {\r\n __typename: 'UserStatus',\r\n username,\r\n loginTime,\r\n isLoggedIn: true,\r\n permissions,\r\n channels,\r\n activeChannelId,\r\n },\r\n };\r\n cache.writeQuery({ query: GET_USER_STATUS, data });\r\n return data.userStatus;\r\n },\r\n setAsLoggedOut: (_, args, { cache }): GetUserStatus.UserStatus => {\r\n const data: GetUserStatus.Query = {\r\n userStatus: {\r\n __typename: 'UserStatus',\r\n username: '',\r\n loginTime: '',\r\n isLoggedIn: false,\r\n permissions: [],\r\n channels: [],\r\n activeChannelId: null,\r\n },\r\n };\r\n cache.writeQuery({ query: GET_USER_STATUS, data });\r\n return data.userStatus;\r\n },\r\n setUiLanguage: (_, args: SetUiLanguage.Variables, { cache }): LanguageCode => {\r\n // tslint:disable-next-line:no-non-null-assertion\r\n const previous = cache.readQuery<GetUiState.Query>({ query: GET_UI_STATE })!;\r\n const data = updateUiState(previous, 'language', args.languageCode);\r\n cache.writeQuery({ query: GET_UI_STATE, data });\r\n return args.languageCode;\r\n },\r\n setUiLocale: (_, args: SetUiLocale.Variables, { cache }): string | undefined => {\r\n // tslint:disable-next-line:no-non-null-assertion\r\n const previous = cache.readQuery<GetUiState.Query>({ query: GET_UI_STATE })!;\r\n const data = updateUiState(previous, 'locale', args.locale);\r\n cache.writeQuery({ query: GET_UI_STATE, data });\r\n return args.locale ?? undefined;\r\n },\r\n setContentLanguage: (_, args: SetContentLanguage.Variables, { cache }): LanguageCode => {\r\n // tslint:disable-next-line:no-non-null-assertion\r\n const previous = cache.readQuery<GetUiState.Query>({ query: GET_UI_STATE })!;\r\n const data = updateUiState(previous, 'contentLanguage', args.languageCode);\r\n cache.writeQuery({ query: GET_UI_STATE, data });\r\n return args.languageCode;\r\n },\r\n setUiTheme: (_, args: SetUiTheme.Variables, { cache }): string => {\r\n // tslint:disable-next-line:no-non-null-assertion\r\n const previous = cache.readQuery<GetUiState.Query>({ query: GET_UI_STATE })!;\r\n const data = updateUiState(previous, 'theme', args.theme);\r\n cache.writeQuery({ query: GET_UI_STATE, data });\r\n return args.theme;\r\n },\r\n setDisplayUiExtensionPoints: (_, args: SetDisplayUiExtensionPoints.Variables, { cache }): boolean => {\r\n // tslint:disable-next-line:no-non-null-assertion\r\n const previous = cache.readQuery<GetUiState.Query>({ query: GET_UI_STATE })!;\r\n const data = updateUiState(previous, 'displayUiExtensionPoints', args.display);\r\n cache.writeQuery({ query: GET_UI_STATE, data });\r\n return args.display;\r\n },\r\n setActiveChannel: (_, args: SetActiveChannel.Variables, { cache }): UserStatus => {\r\n // tslint:disable-next-line:no-non-null-assertion\r\n const previous = cache.readQuery<GetUserStatus.Query>({ query: GET_USER_STATUS })!;\r\n const activeChannel = previous.userStatus.channels.find(c => c.id === args.channelId);\r\n if (!activeChannel) {\r\n throw new Error('setActiveChannel: Could not find Channel with ID ' + args.channelId);\r\n }\r\n const permissions = activeChannel.permissions;\r\n const data: { userStatus: UserStatus } = {\r\n userStatus: {\r\n ...previous.userStatus,\r\n permissions,\r\n activeChannelId: activeChannel.id,\r\n },\r\n };\r\n cache.writeQuery({ query: GET_USER_STATUS, data });\r\n return data.userStatus;\r\n },\r\n updateUserChannels: (_, args: UpdateUserChannels.Variables, { cache }): UserStatus => {\r\n // tslint:disable-next-line:no-non-null-assertion\r\n const previous = cache.readQuery<GetUserStatus.Query>({ query: GET_USER_STATUS })!;\r\n const data = {\r\n userStatus: {\r\n ...previous.userStatus,\r\n channels: Array.isArray(args.channels) ? args.channels : [args.channels],\r\n },\r\n };\r\n cache.writeQuery({ query: GET_USER_STATUS, data });\r\n return data.userStatus;\r\n },\r\n },\r\n};\r\n\r\nfunction updateUiState<K extends keyof GetUiState.Query['uiState']>(\r\n previous: GetUiState.Query,\r\n key: K,\r\n value: GetUiState.Query['uiState'][K],\r\n): GetUiState.Query {\r\n return {\r\n uiState: {\r\n ...previous.uiState,\r\n [key]: value,\r\n __typename: 'UiState',\r\n },\r\n };\r\n}\r\n\r\nfunction updateRequestsInFlight(cache: InMemoryCache, increment: 1 | -1): number {\r\n const previous = cache.readQuery<GetNetworkStatus.Query>({ query: GET_NEWTORK_STATUS });\r\n const inFlightRequests = previous ? previous.networkStatus.inFlightRequests + increment : increment;\r\n const data: GetNetworkStatus.Query = {\r\n networkStatus: {\r\n __typename: 'NetworkStatus',\r\n inFlightRequests,\r\n },\r\n };\r\n cache.writeQuery({ query: GET_NEWTORK_STATUS, data });\r\n return inFlightRequests;\r\n}\r\n","import { ApolloLink } from '@apollo/client/core';\r\nimport { omit } from '@vendure/common/lib/omit';\r\n\r\n/**\r\n * The \"__typename\" property added by Apollo Client causes errors when posting the entity\r\n * back in a mutation. Therefore this link will remove all such keys before the object\r\n * reaches the API layer.\r\n *\r\n * See: https://github.com/apollographql/apollo-client/issues/1913#issuecomment-393721604\r\n */\r\nexport class OmitTypenameLink extends ApolloLink {\r\n constructor() {\r\n super((operation, forward) => {\r\n if (operation.variables) {\r\n operation.variables = omit(operation.variables, ['__typename'], true);\r\n }\r\n\r\n return forward ? forward(operation) : null;\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n/**\r\n * An adapter that allows the Angular HttpClient to be used as a replacement for the global `fetch` function.\r\n * This is used to supply a custom fetch function to the apollo-upload-client whilst also allowing the\r\n * use of Angular's http infrastructure such as interceptors.\r\n */\r\n@Injectable()\r\nexport class FetchAdapter {\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n fetch = (input: Request | string, init: RequestInit): Promise<Response> => {\r\n const url = typeof input === 'string' ? input : input.url;\r\n const method = typeof input === 'string' ? (init.method ? init.method : 'GET') : input.method;\r\n\r\n return this.httpClient\r\n .request(method, url, {\r\n body: init.body,\r\n headers: init.headers as any,\r\n observe: 'response',\r\n responseType: 'json',\r\n withCredentials: true,\r\n })\r\n .toPromise()\r\n .then(result => {\r\n return new Response(JSON.stringify(result.body), {\r\n status: result.status,\r\n statusText: result.statusText,\r\n });\r\n });\r\n };\r\n}\r\n","import { ComponentFactoryResolver, ComponentRef, Injectable, ViewContainerRef } from '@angular/core';\r\n\r\nimport { NotificationComponent } from '../../components/notification/notification.component';\r\nimport { I18nService } from '../i18n/i18n.service';\r\nimport { OverlayHostService } from '../overlay-host/overlay-host.service';\r\n\r\n/**\r\n * @description\r\n * The types of notification available.\r\n *\r\n * @docsCategory providers\r\n * @docsPage NotificationService\r\n */\r\nexport type NotificationType = 'info' | 'success' | 'error' | 'warning';\r\n\r\n/**\r\n * @description\r\n * Configuration for a toast notification.\r\n *\r\n * @docsCategory providers\r\n * @docsPage NotificationService\r\n */\r\nexport interface ToastConfig {\r\n message: string;\r\n translationVars?: { [key: string]: string | number };\r\n type?: NotificationType;\r\n duration?: number;\r\n}\r\n\r\n// How many ms before the toast is dismissed.\r\nconst TOAST_DURATION = 3000;\r\n\r\n/**\r\n * @description\r\n * Provides toast notification functionality.\r\n *\r\n * @example\r\n * ```TypeScript\r\n * class MyComponent {\r\n * constructor(private notificationService: NotificationService) {}\r\n *\r\n * save() {\r\n * this.notificationService\r\n * .success(_('asset.notify-create-assets-success'), {\r\n * count: successCount,\r\n * });\r\n * }\r\n * }\r\n *\r\n * @docsCategory providers\r\n * @docsPage NotificationService\r\n * @docsWeight 0\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NotificationService {\r\n private get hostView(): Promise<ViewContainerRef> {\r\n return this.overlayHostService.getHostView();\r\n }\r\n\r\n private openToastRefs: Array<{ ref: ComponentRef<NotificationComponent>; timerId: any }> = [];\r\n\r\n constructor(\r\n private i18nService: I18nService,\r\n private resolver: ComponentFactoryResolver,\r\n private overlayHostService: OverlayHostService,\r\n ) {}\r\n\r\n /**\r\n * @description\r\n * Display a success toast notification\r\n */\r\n success(message: string, translationVars?: { [key: string]: string | number }): void {\r\n this.notify({\r\n message,\r\n translationVars,\r\n type: 'success',\r\n });\r\n }\r\n\r\n /**\r\n * @description\r\n * Display an info toast notification\r\n */\r\n info(message: string, translationVars?: { [key: string]: string | number }): void {\r\n this.notify({\r\n message,\r\n translationVars,\r\n type: 'info',\r\n });\r\n }\r\n\r\n /**\r\n * @description\r\n * Display a warning toast notification\r\n */\r\n warning(message: string, translationVars?: { [key: string]: string | number }): void {\r\n this.notify({\r\n message,\r\n translationVars,\r\n type: 'warning',\r\n });\r\n }\r\n\r\n /**\r\n * @description\r\n * Display an error toast notification\r\n */\r\n error(message: string, translationVars?: { [key: string]: string | number }): void {\r\n this.notify({\r\n message,\r\n translationVars,\r\n type: 'error',\r\n duration: 20000,\r\n });\r\n }\r\n\r\n /**\r\n * @description\r\n * Display a toast notification.\r\n */\r\n notify(config: ToastConfig): void {\r\n this.createToast(config);\r\n }\r\n\r\n /**\r\n * Load a ToastComponent into the DOM host location.\r\n */\r\n private async createToast(config: ToastConfig): Promise<void> {\r\n const toastFactory = this.resolver.resolveComponentFactory(NotificationComponent);\r\n const hostView = await this.hostView;\r\n const ref = hostView.createComponent<NotificationComponent>(toastFactory);\r\n const toast: NotificationComponent = ref.instance;\r\n const dismissFn = this.createDismissFunction(ref);\r\n toast.type = config.type || 'info';\r\n toast.message = config.message;\r\n toast.translationVars = this.translateTranslationVars(config.translationVars || {});\r\n toast.registerOnClickFn(dismissFn);\r\n\r\n let timerId;\r\n if (!config.duration || 0 < config.duration) {\r\n timerId = setTimeout(dismissFn, config.duration || TOAST_DURATION);\r\n }\r\n\r\n this.openToastRefs.unshift({ ref, timerId });\r\n setTimeout(() => this.calculatePositions());\r\n }\r\n\r\n /**\r\n * Returns a function which will destroy the toast component and\r\n * remove it from the openToastRefs array.\r\n */\r\n private createDismissFunction(ref: ComponentRef<NotificationComponent>): () => void {\r\n return () => {\r\n const toast: NotificationComponent = ref.instance;\r\n const index = this.openToastRefs.map(o => o.ref).indexOf(ref);\r\n\r\n if (this.openToastRefs[index]) {\r\n clearTimeout(this.openToastRefs[index].timerId);\r\n }\r\n\r\n toast.fadeOut().then(() => {\r\n ref.destroy();\r\n this.openToastRefs.splice(index, 1);\r\n this.calculatePositions();\r\n });\r\n };\r\n }\r\n\r\n /**\r\n * Calculate and set the top offsets for each of the open toasts.\r\n */\r\n private calculatePositions(): void {\r\n let cumulativeHeight = 10;\r\n\r\n this.openToastRefs.forEach(obj => {\r\n const toast: NotificationComponent = obj.ref.instance;\r\n toast.offsetTop = cumulativeHeight;\r\n cumulativeHeight += toast.getHeight() + 6;\r\n });\r\n }\r\n\r\n private translateTranslationVars(translationVars: { [key: string]: string | number }): {\r\n [key: string]: string | number;\r\n } {\r\n for (const [key, val] of Object.entries(translationVars)) {\r\n if (typeof val === 'string') {\r\n translationVars[key] = this.i18nService.translate(val);\r\n }\r\n }\r\n return translationVars;\r\n }\r\n}\r\n","import {\n HttpErrorResponse,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest,\n HttpResponse,\n} from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { DEFAULT_AUTH_TOKEN_HEADER_KEY } from '@vendure/common/lib/shared-constants';\nimport { AdminUiConfig } from '@vendure/common/lib/shared-types';\nimport { Observable } from 'rxjs';\nimport { switchMap, tap } from 'rxjs/operators';\n\nimport { getAppConfig } from '../../app.config';\nimport { AuthService } from '../../providers/auth/auth.service';\nimport { LocalStorageService } from '../../providers/local-storage/local-storage.service';\nimport { NotificationService } from '../../providers/notification/notification.service';\nimport { DataService } from '../providers/data.service';\n\nexport const AUTH_REDIRECT_PARAM = 'redirectTo';\n\n/**\n * The default interceptor examines all HTTP requests & responses and automatically updates the requesting state\n * and shows error notifications.\n */\n@Injectable()\nexport class DefaultInterceptor implements HttpInterceptor {\n private readonly tokenMethod: AdminUiConfig['tokenMethod'] = 'cookie';\n private readonly authTokenHeaderKey: string;\n\n constructor(\n private dataService: DataService,\n private injector: Injector,\n private authService: AuthService,\n private router: Router,\n private localStorageService: LocalStorageService,\n ) {\n this.tokenMethod = getAppConfig().tokenMethod;\n this.authTokenHeaderKey = getAppConfig().authTokenHeaderKey || DEFAULT_AUTH_TOKEN_HEADER_KEY;\n }\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n this.dataService.client.startRequest().subscribe();\n return this.dataService.client.uiState().single$.pipe(\n switchMap(({ uiState }) => {\n const request = req.clone({\n setParams: {\n languageCode: uiState?.contentLanguage ?? '',\n },\n });\n return next.handle(request);\n }),\n tap(\n event => {\n if (event instanceof HttpResponse) {\n this.checkForAuthToken(event);\n this.notifyOnError(event);\n this.dataService.client.completeRequest().subscribe();\n }\n },\n err => {\n if (err instanceof HttpErrorResponse) {\n this.notifyOnError(err);\n this.dataService.client.completeRequest().subscribe();\n } else {\n this.displayErrorNotification(err.message);\n }\n },\n ),\n );\n }\n\n private notifyOnError(response: HttpResponse<any> | HttpErrorResponse) {\n if (response instanceof HttpErrorResponse) {\n if (response.status === 0) {\n const { apiHost, apiPort } = getAppConfig();\n this.displayErrorNotification(_(`error.could-not-connect-to-server`), {\n url: `${apiHost}:${apiPort}`,\n });\n } else if (response.status === 503 && response.url?.endsWith('/health')) {\n this.displayErrorNotification(_(`error.health-check-failed`));\n } else {\n this.displayErrorNotification(this.extractErrorFromHttpResponse(response));\n }\n } else {\n // GraphQL errors still return 200 OK responses, but have the actual error message\n // inside the body of the response.\n const graqhQLErrors = response.body.errors;\n if (graqhQLErrors && Array.isArray(graqhQLErrors)) {\n const firstCode: string = graqhQLErrors[0]?.extensions?.code;\n if (firstCode === 'FORBIDDEN') {\n this.authService.logOut().subscribe(() => {\n if (!window.location.pathname.includes('login')) {\n const path = graqhQLErrors[0].path.join(' > ');\n this.displayErrorNotification(_(`error.403-forbidden`), { path });\n }\n this.router.navigate(['/login'], {\n queryParams: {\n [AUTH_REDIRECT_PARAM]: btoa(this.router.url),\n },\n });\n });\n } else if (firstCode === 'CHANNEL_NOT_FOUND') {\n const message = graqhQLErrors.map(err => err.message).join('\\n');\n this.displayErrorNotification(message);\n this.localStorageService.remove('activeChannelToken');\n } else {\n const message = graqhQLErrors.map(err => err.message).join('\\n');\n this.displayErrorNotification(message);\n }\n }\n }\n }\n\n private extractErrorFromHttpResponse(response: HttpErrorResponse): string {\n const errors = response.error.errors;\n if (Array.isArray(errors)) {\n return errors.map(e => e.message).join('\\n');\n } else {\n return response.message;\n }\n }\n\n /**\n * We need to lazily inject the NotificationService since it depends on the I18nService which\n * eventually depends on the HttpClient (used to load messages from json files). If we were to\n * directly inject NotificationService into the constructor, we get a cyclic dependency.\n */\n private displayErrorNotification(message: string, vars?: Record<string, any>): void {\n const notificationService = this.injector.get<NotificationService>(NotificationService);\n notificationService.error(message, vars);\n }\n\n /**\n * If the server is configured to use the \"bearer\" tokenMethod, each response should be checked\n * for the existence of an auth token.\n */\n private checkForAuthToken(response: HttpResponse<any>) {\n if (this.tokenMethod === 'bearer') {\n const authToken = response.headers.get(this.authTokenHeaderKey);\n if (authToken) {\n this.localStorageService.set('authToken', authToken);\n }\n }\n }\n}\n","import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { APP_INITIALIZER, Injector, NgModule } from '@angular/core';\r\nimport { ApolloClientOptions, InMemoryCache } from '@apollo/client/core';\r\nimport { setContext } from '@apollo/client/link/context';\r\nimport { ApolloLink } from '@apollo/client/link/core';\r\nimport { APOLLO_OPTIONS } from 'apollo-angular';\r\nimport { createUploadLink } from 'apollo-upload-client';\r\n\r\nimport { getAppConfig } from '../app.config';\r\nimport { introspectionResult } from '../common/introspection-result-wrapper';\r\nimport { LocalStorageService } from '../providers/local-storage/local-storage.service';\r\n\r\nimport { CheckJobsLink } from './check-jobs-link';\r\nimport { getClientDefaults } from './client-state/client-defaults';\r\nimport { clientResolvers } from './client-state/client-resolvers';\r\nimport { GET_CLIENT_STATE } from './definitions/client-definitions';\r\nimport { OmitTypenameLink } from './omit-typename-link';\r\nimport { BaseDataService } from './providers/base-data.service';\r\nimport { DataService } from './providers/data.service';\r\nimport { FetchAdapter } from './providers/fetch-adapter';\r\nimport { DefaultInterceptor } from './providers/interceptor';\r\nimport { initializeServerConfigService, ServerConfigService } from './server-config';\r\nimport { getServerLocation } from './utils/get-server-location';\r\n\r\nexport function createApollo(\r\n localStorageService: LocalStorageService,\r\n fetchAdapter: FetchAdapter,\r\n injector: Injector,\r\n): ApolloClientOptions<any> {\r\n const { adminApiPath, tokenMethod } = getAppConfig();\r\n const serverLocation = getServerLocation();\r\n const apolloCache = new InMemoryCache({\r\n possibleTypes: introspectionResult.possibleTypes,\r\n typePolicies: {\r\n GlobalSettings: {\r\n fields: {\r\n serverConfig: {\r\n merge: (existing, incoming) => ({ ...existing, ...incoming }),\r\n },\r\n },\r\n },\r\n },\r\n });\r\n apolloCache.writeQuery({\r\n query: GET_CLIENT_STATE,\r\n data: getClientDefaults(localStorageService),\r\n });\r\n\r\n if (!false) {\r\n // TODO: enable only for dev mode\r\n // make the Apollo Cache inspectable in the console for debug purposes\r\n (window as any)['apolloCache'] = apolloCache;\r\n }\r\n return {\r\n link: ApolloLink.from([\r\n new OmitTypenameLink(),\r\n new CheckJobsLink(injector),\r\n setContext(() => {\r\n const headers: Record<string, string> = {};\r\n const channelToken = localStorageService.get('activeChannelToken');\r\n if (channelToken) {\r\n headers['vendure-token'] = channelToken;\r\n }\r\n if (tokenMethod === 'bearer') {\r\n const authToken = localStorageService.get('authToken');\r\n if (authToken) {\r\n headers.authorization = `Bearer ${authToken}`;\r\n }\r\n }\r\n return { headers };\r\n }),\r\n createUploadLink({\r\n uri: `${serverLocation}/${adminApiPath}`,\r\n fetch: fetchAdapter.fetch,\r\n }),\r\n ]),\r\n cache: apolloCache,\r\n resolvers: clientResolvers,\r\n };\r\n}\r\n\r\n/**\r\n * The DataModule is responsible for all API calls *and* serves as the source of truth for global app\r\n * state via the apollo-link-state package.\r\n */\r\n@NgModule({\r\n imports: [HttpClientModule],\r\n exports: [],\r\n declarations: [],\r\n providers: [\r\n BaseDataService,\r\n DataService,\r\n FetchAdapter,\r\n ServerConfigService,\r\n {\r\n provide: APOLLO_OPTIONS,\r\n useFactory: createApollo,\r\n deps: [LocalStorageService, FetchAdapter, Injector],\r\n },\r\n { provide: HTTP_INTERCEPTORS, useClass: DefaultInterceptor, multi: true },\r\n {\r\n provide: APP_INITIALIZER,\r\n multi: true,\r\n useFactory: initializeServerConfigService,\r\n deps: [ServerConfigService],\r\n },\r\n ],\r\n})\r\nexport class DataModule {}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { TranslateLoader } from '@ngx-translate/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport type Dictionary = {\r\n [key: string]: string | Dictionary;\r\n};\r\n\r\n/**\r\n * A loader for ngx-translate which extends the HttpLoader functionality by stripping out any\r\n * values which are empty strings. This means that during development, translation keys which have\r\n * been extracted but not yet defined will fall back to the raw key text rather than displaying nothing.\r\n *\r\n * Originally from https://github.com/ngx-translate/core/issues/662#issuecomment-377010232\r\n */\r\nexport class CustomHttpTranslationLoader implements TranslateLoader {\r\n constructor(\r\n private http: HttpClient,\r\n private prefix: string = '/assets/i18n/',\r\n private suffix: string = '.json',\r\n ) {}\r\n\r\n public getTranslation(lang: string): Observable<any> {\r\n return this.http\r\n .get(`${this.prefix}${lang}${this.suffix}`)\r\n .pipe(map((res: any) => this.process(res)));\r\n }\r\n\r\n private process(object: Dictionary): Dictionary {\r\n const newObject: Dictionary = {};\r\n\r\n for (const key in object) {\r\n if (object.hasOwnProperty(key)) {\r\n const value = object[key];\r\n if (typeof value !== 'string') {\r\n newObject[key] = this.process(value);\r\n } else if (typeof value === 'string' && value === '') {\r\n // do not copy empty strings\r\n } else {\r\n newObject[key] = object[key];\r\n }\r\n }\r\n }\r\n\r\n return newObject;\r\n }\r\n}\r\n","/* tslint:disable:no-console */\r\nimport { Injectable } from '@angular/core';\r\nimport {\r\n TranslateMessageFormatCompiler,\r\n TranslateMessageFormatDebugCompiler,\r\n} from 'ngx-translate-messageformat-compiler';\r\n\r\n/**\r\n * Work-around for Angular 9 compat.\r\n * See https://github.com/lephyrus/ngx-translate-messageformat-compiler/issues/53#issuecomment-583677994\r\n *\r\n * Also logs errors which would otherwise get swallowed by ngx-translate. This is important\r\n * because it is quite easy to make errors in messageformat syntax, and without clear\r\n * error messages it's very hard to debug.\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class InjectableTranslateMessageFormatCompiler extends TranslateMessageFormatCompiler {\r\n compileTranslations(value: any, lang: string): any {\r\n try {\r\n return super.compileTranslations(value, lang);\r\n } catch (e) {\r\n console.error(`There was an error with the ${lang} translations:`);\r\n console.log(e);\r\n console.log(\r\n `Check the messageformat docs: https://messageformat.github.io/messageformat/page-guide`,\r\n );\r\n }\r\n }\r\n}\r\n","import { Injectable, Type } from '@angular/core';\r\n\r\nimport { FormInputComponent, InputComponentConfig } from '../../common/component-registry-types';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ComponentRegistryService {\r\n private inputComponentMap = new Map<string, Type<FormInputComponent<any>>>();\r\n\r\n registerInputComponent(id: string, component: Type<FormInputComponent<any>>) {\r\n if (this.inputComponentMap.has(id)) {\r\n throw new Error(\r\n `Cannot register an InputComponent with the id \"${id}\", as one with that id already exists`,\r\n );\r\n }\r\n this.inputComponentMap.set(id, component);\r\n }\r\n\r\n getInputComponent(id: string): Type<FormInputComponent<any>> | undefined {\r\n return this.inputComponentMap.get(id);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Type } from '@vendure/common/lib/shared-types';\r\n\r\nimport { FormInputComponent } from '../../common/component-registry-types';\r\nimport { CustomFields, CustomFieldsFragment } from '../../common/generated-types';\r\nimport { ComponentRegistryService } from '../component-registry/component-registry.service';\r\n\r\nexport type CustomFieldConfigType = CustomFieldsFragment;\r\n\r\nexport interface CustomFieldControl extends FormInputComponent<CustomFieldConfigType> {}\r\n\r\nexport type CustomFieldEntityName = Exclude<keyof CustomFields, '__typename'>;\r\n\r\n/**\r\n * This service allows the registration of custom controls for customFields.\r\n *\r\n * @deprecated The ComponentRegistryService now handles custom field components directly.\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CustomFieldComponentService {\r\n constructor(private componentRegistryService: ComponentRegistryService) {}\r\n\r\n /**\r\n * Register a CustomFieldControl component to be used with the specified customField and entity.\r\n */\r\n registerCustomFieldComponent(\r\n entity: CustomFieldEntityName,\r\n fieldName: string,\r\n component: Type<CustomFieldControl>,\r\n ) {\r\n const id = this.generateId(entity, fieldName, true);\r\n this.componentRegistryService.registerInputComponent(id, component);\r\n }\r\n\r\n /**\r\n * Checks whether a custom component is registered for the given entity custom field,\r\n * and if so returns the ID of that component.\r\n */\r\n customFieldComponentExists(entity: CustomFieldEntityName, fieldName: string): string | undefined {\r\n const id = this.generateId(entity, fieldName, true);\r\n return this.componentRegistryService.getInputComponent(id) ? id : undefined;\r\n }\r\n\r\n private generateId(entity: CustomFieldEntityName, fieldName: string, isCustomField: boolean) {\r\n let id = entity;\r\n if (isCustomField) {\r\n id += '-customFields';\r\n }\r\n id += '-' + fieldName;\r\n return id;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DefaultFormComponentConfig, DefaultFormComponentId } from '@vendure/common/lib/shared-types';\r\n\r\nimport { FormInputComponent, InputComponentConfig } from '../../../common/component-registry-types';\r\n\r\n/**\r\n * @description\r\n * A checkbox input. The default input component for `boolean` fields.\r\n *\r\n * @docsCategory custom-input-components\r\n * @docsPage default-inputs\r\n */\r\n@Component({\r\n selector: 'vdr-boolean-form-input',\r\n templateUrl: './boolean-form-input.component.html',\r\n styleUrls: ['./boolean-form-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BooleanFormInputComponent implements FormInputComponent {\r\n static readonly id: DefaultFormComponentId = 'boolean-form-input';\r\n readonly: boolean;\r\n formControl: FormControl;\r\n config: DefaultFormComponentConfig<'boolean-form-input'>;\r\n}\r\n","import { AfterViewInit, ChangeDetectorRef, Directive, ElementRef, ViewChild } from '@angular/core';\r\nimport { FormControl, ValidatorFn } from '@angular/forms';\r\nimport { DefaultFormComponentConfig } from '@vendure/common/lib/shared-types';\r\nimport { CodeJar } from 'codejar';\r\n\r\nimport { FormInputComponent } from '../../../common/component-registry-types';\r\n\r\nexport interface CodeEditorConfig {\r\n validator: ValidatorFn;\r\n getErrorMessage: (content: string) => string | undefined;\r\n highlight: (content: string, errorPos: number | undefined) => string;\r\n}\r\n\r\n@Directive()\r\nexport abstract class BaseCodeEditorFormInputComponent implements FormInputComponent, AfterViewInit {\r\n readonly: boolean;\r\n formControl: FormControl;\r\n config: DefaultFormComponentConfig<'json-editor-form-input'>;\r\n isValid = true;\r\n errorMessage: string | undefined;\r\n @ViewChild('editor') private editorElementRef: ElementRef<HTMLDivElement>;\r\n jar: CodeJar;\r\n private highlight: CodeEditorConfig['highlight'];\r\n private getErrorMessage: CodeEditorConfig['getErrorMessage'];\r\n\r\n protected constructor(protected changeDetector: ChangeDetectorRef) {}\r\n\r\n get height() {\r\n return this.config.ui?.height || this.config.height;\r\n }\r\n\r\n configure(config: CodeEditorConfig) {\r\n this.formControl.addValidators(config.validator);\r\n this.highlight = config.highlight;\r\n this.getErrorMessage = config.getErrorMessage;\r\n }\r\n\r\n ngAfterViewInit() {\r\n let lastVal = '';\r\n const highlight = (editor: HTMLElement) => {\r\n const code = editor.textContent ?? '';\r\n if (code === lastVal) {\r\n return;\r\n }\r\n lastVal = code;\r\n this.errorMessage = this.getErrorMessage(code);\r\n this.changeDetector.markForCheck();\r\n editor.innerHTML = this.highlight(code, this.getErrorPos(this.errorMessage));\r\n };\r\n this.jar = CodeJar(this.editorElementRef.nativeElement, highlight);\r\n this.jar.onUpdate(value => {\r\n this.formControl.setValue(value);\r\n this.formControl.markAsDirty();\r\n this.isValid = this.formControl.valid;\r\n });\r\n this.jar.updateCode(this.formControl.value);\r\n\r\n if (this.readonly) {\r\n this.editorElementRef.nativeElement.contentEditable = 'false';\r\n }\r\n }\r\n\r\n protected getErrorPos(errorMessage: string | undefined): number | undefined {\r\n if (!errorMessage) {\r\n return;\r\n }\r\n const matches = errorMessage.match(/at position (\\d+)/);\r\n const pos = matches?.[1];\r\n return pos != null ? +pos : undefined;\r\n }\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { DefaultFormComponentId } from '@vendure/common/lib/shared-types';\r\n\r\nimport { FormInputComponent } from '../../../common/component-registry-types';\r\n\r\nimport { BaseCodeEditorFormInputComponent } from './base-code-editor-form-input.component';\r\n\r\nfunction htmlValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n return null;\r\n };\r\n}\r\n\r\nconst HTML_TAG_RE = /<\\/?[^>]+>?/g;\r\n\r\n/**\r\n * @description\r\n * A JSON editor input with syntax highlighting and error detection. Works well\r\n * with `text` type fields.\r\n *\r\n * @docsCategory custom-input-components\r\n * @docsPage default-inputs\r\n */\r\n@Component({\r\n selector: 'vdr-html-editor-form-input',\r\n templateUrl: './html-editor-form-input.component.html',\r\n styleUrls: ['./html-editor-form-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class HtmlEditorFormInputComponent\r\n extends BaseCodeEditorFormInputComponent\r\n implements FormInputComponent, AfterViewInit, OnInit\r\n{\r\n static readonly id: DefaultFormComponentId = 'html-editor-form-input';\r\n\r\n constructor(protected changeDetector: ChangeDetectorRef) {\r\n super(changeDetector);\r\n }\r\n\r\n ngOnInit() {\r\n this.configure({\r\n validator: htmlValidator,\r\n highlight: (html: string, errorPos: number | undefined) => {\r\n let hasMarkedError = false;\r\n return html.replace(HTML_TAG_RE, (match, ...args) => {\r\n let errorClass = '';\r\n if (errorPos && !hasMarkedError) {\r\n const length = args[0].length;\r\n const offset = args[4];\r\n if (errorPos <= length + offset) {\r\n errorClass = 'je-error';\r\n hasMarkedError = true;\r\n }\r\n }\r\n return (\r\n '<span class=\"he-tag' +\r\n ' ' +\r\n errorClass +\r\n '\">' +\r\n this.encodeHtmlChars(match).replace(\r\n /([a-zA-Z0-9-]+=)([\"'][^'\"]*[\"'])/g,\r\n (_match, ..._args) => `${_args[0]}<span class=\"he-attr\">${_args[1]}</span>`,\r\n ) +\r\n '</span>'\r\n );\r\n });\r\n },\r\n getErrorMessage: (json: string): string | undefined => {\r\n return;\r\n },\r\n });\r\n }\r\n\r\n private encodeHtmlChars(html: string): string {\r\n return html.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\r\n }\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { DefaultFormComponentId } from '@vendure/common/lib/shared-types';\r\n\r\nimport { FormInputComponent } from '../../../common/component-registry-types';\r\n\r\nimport { BaseCodeEditorFormInputComponent } from './base-code-editor-form-input.component';\r\n\r\nexport function jsonValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const error: ValidationErrors = { jsonInvalid: true };\r\n\r\n try {\r\n JSON.parse(control.value);\r\n } catch (e) {\r\n control.setErrors(error);\r\n return error;\r\n }\r\n\r\n control.setErrors(null);\r\n return null;\r\n };\r\n}\r\n\r\n/**\r\n * @description\r\n * A JSON editor input with syntax highlighting and error detection. Works well\r\n * with `text` type fields.\r\n *\r\n * @docsCategory custom-input-components\r\n * @docsPage default-inputs\r\n */\r\n@Component({\r\n selector: 'vdr-json-editor-form-input',\r\n templateUrl: './json-editor-form-input.component.html',\r\n styleUrls: ['./json-editor-form-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class JsonEditorFormInputComponent\r\n extends BaseCodeEditorFormInputComponent\r\n implements FormInputComponent, AfterViewInit, OnInit\r\n{\r\n static readonly id: DefaultFormComponentId = 'json-editor-form-input';\r\n\r\n constructor(protected changeDetector: ChangeDetectorRef) {\r\n super(changeDetector);\r\n }\r\n\r\n ngOnInit() {\r\n this.configure({\r\n validator: jsonValidator,\r\n highlight: (json: string, errorPos: number | undefined) => {\r\n json = json.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\r\n let hasMarkedError = false;\r\n return json.replace(\r\n /(\"(\\\\u[a-zA-Z0-9]{4}|\\\\[^u]|[^\\\\\"])*\"(\\s*:)?|\\b(true|false|null)\\b|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?)/g,\r\n (match, ...args) => {\r\n let cls = 'number';\r\n if (/^\"/.test(match)) {\r\n if (/:$/.test(match)) {\r\n cls = 'key';\r\n } else {\r\n cls = 'string';\r\n }\r\n } else if (/true|false/.test(match)) {\r\n cls = 'boolean';\r\n } else if (/null/.test(match)) {\r\n cls = 'null';\r\n }\r\n let errorClass = '';\r\n if (errorPos && !hasMarkedError) {\r\n const length = args[0].length;\r\n const offset = args[4];\r\n if (errorPos <= length + offset) {\r\n errorClass = 'je-error';\r\n hasMarkedError = true;\r\n }\r\n }\r\n return '<span class=\"je-' + cls + ' ' + errorClass + '\">' + match + '</span>';\r\n },\r\n );\r\n },\r\n getErrorMessage: (json: string): string | undefined => {\r\n try {\r\n JSON.parse(json);\r\n } catch (e) {\r\n return e.message;\r\n }\r\n return;\r\n },\r\n });\r\n }\r\n}\r\n","import { ConfigArgType, CustomFieldType } from '@vendure/common/lib/shared-types';\r\nimport { assertNever } from '@vendure/common/lib/shared-utils';\r\n\r\nimport {\r\n ConfigArgDefinition,\r\n ConfigurableOperation,\r\n ConfigurableOperationDefinition,\r\n ConfigurableOperationInput,\r\n} from '../generated-types';\r\n\r\n/**\r\n * ConfigArg values are always stored as strings. If they are not primitives, then\r\n * they are JSON-encoded. This function unwraps them back into their original\r\n * data type.\r\n */\r\nexport function getConfigArgValue(value: any) {\r\n try {\r\n return value != null ? JSON.parse(value) : undefined;\r\n } catch (e) {\r\n return value;\r\n }\r\n}\r\n\r\nexport function encodeConfigArgValue(value: any): string {\r\n return Array.isArray(value) ? JSON.stringify(value) : (value ?? '').toString();\r\n}\r\n\r\n/**\r\n * Creates an empty ConfigurableOperation object based on the definition.\r\n */\r\nexport function configurableDefinitionToInstance(\r\n def: ConfigurableOperationDefinition,\r\n): ConfigurableOperation {\r\n return {\r\n ...def,\r\n args: def.args.map(arg => {\r\n return {\r\n ...arg,\r\n value: getDefaultConfigArgValue(arg),\r\n };\r\n }),\r\n } as ConfigurableOperation;\r\n}\r\n\r\n/**\r\n * Converts an object of the type:\r\n * ```\r\n * {\r\n * code: 'my-operation',\r\n * args: {\r\n * someProperty: 'foo'\r\n * }\r\n * }\r\n * ```\r\n * to the format defined by the ConfigurableOperationInput GraphQL input type:\r\n * ```\r\n * {\r\n * code: 'my-operation',\r\n * arguments: [\r\n * { name: 'someProperty', value: 'foo' }\r\n * ]\r\n * }\r\n * ```\r\n */\r\nexport function toConfigurableOperationInput(\r\n operation: ConfigurableOperation,\r\n formValueOperations: { args: Record<string, string> | Array<{ name: string; value: string }> },\r\n): ConfigurableOperationInput {\r\n const argsArray = Array.isArray(formValueOperations.args) ? formValueOperations.args : undefined;\r\n const argsMap = !Array.isArray(formValueOperations.args) ? formValueOperations.args : undefined;\r\n return {\r\n code: operation.code,\r\n arguments: operation.args.map(({ name, value }, j) => {\r\n const formValue = argsArray?.find(arg => arg.name === name)?.value ?? argsMap?.[name];\r\n if (formValue == null) {\r\n throw new Error(`Cannot find an argument value for the key \"${name}\"`);\r\n }\r\n return {\r\n name,\r\n value: formValue?.hasOwnProperty('value')\r\n ? encodeConfigArgValue((formValue as any).value)\r\n : encodeConfigArgValue(formValue),\r\n };\r\n }),\r\n };\r\n}\r\n\r\nexport function configurableOperationValueIsValid(\r\n def?: ConfigurableOperationDefinition,\r\n value?: { code: string; args: { [key: string]: string } },\r\n) {\r\n if (!def || !value) {\r\n return false;\r\n }\r\n if (def.code !== value.code) {\r\n return false;\r\n }\r\n for (const argDef of def.args) {\r\n const argVal = value.args[argDef.name];\r\n if (argDef.required && (argVal == null || argVal === '' || argVal === '0')) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n\r\n/**\r\n * Returns a default value based on the type of the config arg.\r\n */\r\nexport function getDefaultConfigArgValue(arg: ConfigArgDefinition): any {\r\n if (arg.list) {\r\n return [];\r\n }\r\n if (arg.defaultValue != null) {\r\n return arg.defaultValue;\r\n }\r\n const type = arg.type as ConfigArgType;\r\n switch (type) {\r\n case 'string':\r\n case 'datetime':\r\n case 'float':\r\n case 'ID':\r\n case 'int':\r\n return null;\r\n case 'boolean':\r\n return false;\r\n default:\r\n assertNever(type);\r\n }\r\n}\r\n","import { ConfigurableOperationDefinition } from '../generated-types';\r\n\r\n/**\r\n * Interpolates the description of an ConfigurableOperation with the given values.\r\n */\r\nexport function interpolateDescription(\r\n operation: ConfigurableOperationDefinition,\r\n values: { [name: string]: any },\r\n): string {\r\n if (!operation) {\r\n return '';\r\n }\r\n const templateString = operation.description;\r\n const interpolated = templateString.replace(/{\\s*([a-zA-Z0-9]+)\\s*}/gi, (substring, argName: string) => {\r\n const normalizedArgName = argName.toLowerCase();\r\n const value = values[normalizedArgName];\r\n if (value == null) {\r\n return '_';\r\n }\r\n let formatted = value;\r\n const argDef = operation.args.find(arg => arg.name === normalizedArgName);\r\n if (argDef && argDef.type === 'int' && argDef.ui && argDef.ui.component === 'currency-form-input') {\r\n formatted = value / 100;\r\n }\r\n if (argDef && argDef.type === 'datetime' && value instanceof Date) {\r\n formatted = value.toLocaleDateString();\r\n }\r\n return formatted;\r\n });\r\n return interpolated;\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormControl,\r\n FormGroup,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n ValidationErrors,\r\n Validator,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { ConfigArgType } from '@vendure/common/lib/shared-types';\r\nimport { assertNever } from '@vendure/common/lib/shared-utils';\r\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\r\n\r\nimport { InputComponentConfig } from '../../../common/component-registry-types';\r\nimport {\r\n ConfigArg,\r\n ConfigArgDefinition,\r\n ConfigurableOperation,\r\n ConfigurableOperationDefinition,\r\n} from '../../../common/generated-types';\r\nimport { getDefaultConfigArgValue } from '../../../common/utilities/configurable-operation-utils';\r\nimport { interpolateDescription } from '../../../common/utilities/interpolate-description';\r\n\r\n/**\r\n * A form input which renders a card with the internal form fields of the given ConfigurableOperation.\r\n */\r\n@Component({\r\n selector: 'vdr-configurable-input',\r\n templateUrl: './configurable-input.component.html',\r\n styleUrls: ['./configurable-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: ConfigurableInputComponent,\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ConfigurableInputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class ConfigurableInputComponent\r\n implements OnInit, OnChanges, OnDestroy, ControlValueAccessor, Validator\r\n{\r\n @Input() operation?: ConfigurableOperation;\r\n @Input() operationDefinition?: ConfigurableOperationDefinition;\r\n @Input() readonly = false;\r\n @Input() removable = true;\r\n @Input() position = 0;\r\n @Output() remove = new EventEmitter<ConfigurableOperation>();\r\n argValues: { [name: string]: any } = {};\r\n onChange: (val: any) => void;\r\n onTouch: () => void;\r\n form = new FormGroup({});\r\n positionChange$: Observable<number>;\r\n private positionChangeSubject = new BehaviorSubject<number>(0);\r\n private subscription: Subscription;\r\n\r\n interpolateDescription(): string {\r\n if (this.operationDefinition) {\r\n return interpolateDescription(this.operationDefinition, this.form.value);\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.positionChange$ = this.positionChangeSubject.asObservable();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if ('operation' in changes || 'operationDefinition' in changes) {\r\n this.createForm();\r\n }\r\n if ('position' in changes) {\r\n this.positionChangeSubject.next(this.position);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n if (isDisabled) {\r\n this.form.disable();\r\n } else {\r\n this.form.enable();\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value) {\r\n this.form.patchValue(value);\r\n }\r\n }\r\n\r\n trackByName(index: number, arg: ConfigArg): string {\r\n return arg.name;\r\n }\r\n\r\n getArgDef(arg: ConfigArg): ConfigArgDefinition | undefined {\r\n return this.operationDefinition?.args.find(a => a.name === arg.name);\r\n }\r\n\r\n private createForm() {\r\n if (!this.operation) {\r\n return;\r\n }\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n this.form = new FormGroup({});\r\n (this.form as any).__id = Math.random().toString(36).substr(10);\r\n\r\n if (this.operation.args) {\r\n for (const arg of this.operationDefinition?.args || []) {\r\n let value: any = this.operation.args.find(a => a.name === arg.name)?.value;\r\n if (value === undefined) {\r\n value = getDefaultConfigArgValue(arg);\r\n }\r\n const validators = arg.list ? undefined : arg.required ? Validators.required : undefined;\r\n this.form.addControl(arg.name, new FormControl(value, validators));\r\n }\r\n }\r\n\r\n this.subscription = this.form.valueChanges.subscribe(value => {\r\n if (this.onChange) {\r\n this.onChange({\r\n code: this.operation && this.operation.code,\r\n args: value,\r\n });\r\n }\r\n if (this.onTouch) {\r\n this.onTouch();\r\n }\r\n });\r\n }\r\n\r\n validate(c: AbstractControl): ValidationErrors | null {\r\n if (this.form.invalid) {\r\n return {\r\n required: true,\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit, Optional } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { DefaultFormComponentConfig, DefaultFormComponentId } from '@vendure/common/lib/shared-types';\nimport { Observable, of } from 'rxjs';\nimport { map, tap } from 'rxjs/operators';\n\nimport { FormInputComponent, InputComponentConfig } from '../../../common/component-registry-types';\nimport { ConfigurableInputComponent } from '../../components/configurable-input/configurable-input.component';\n\n/**\n * @description\n * A special input used to display the \"Combination mode\" AND/OR toggle.\n *\n * @docsCategory custom-input-components\n * @docsPage default-inputs\n */\n@Component({\n selector: 'vdr-combination-mode-form-input',\n templateUrl: './combination-mode-form-input.component.html',\n styleUrls: ['./combination-mode-form-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CombinationModeFormInputComponent implements FormInputComponent, OnInit {\n static readonly id: DefaultFormComponentId = 'combination-mode-form-input';\n readonly: boolean;\n formControl: FormControl;\n config: DefaultFormComponentConfig<'combination-mode-form-input'>;\n selectable$: Observable<boolean>;\n\n constructor(@Optional() private configurableInputComponent: ConfigurableInputComponent) {}\n\n ngOnInit() {\n const selectable$ = this.configurableInputComponent\n ? this.configurableInputComponent.positionChange$.pipe(map(position => 0 < position))\n : of(true);\n this.selectable$ = selectable$.pipe(\n tap(selectable => {\n if (!selectable) {\n this.formControl.setValue(true, { emitEvent: false });\n }\n }),\n );\n }\n\n setCombinationModeAnd() {\n this.formControl.setValue(true);\n }\n\n setCombinationModeOr() {\n this.formControl.setValue(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DefaultFormComponentConfig, DefaultFormComponentId } from '@vendure/common/lib/shared-types';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { FormInputComponent, InputComponentConfig } from '../../../common/component-registry-types';\r\nimport { CurrencyCode } from '../../../common/generated-types';\r\nimport { DataService } from '../../../data/providers/data.service';\r\n\r\n/**\r\n * @description\r\n * An input for monetary values. Should be used with `int` type fields.\r\n *\r\n * @docsCategory custom-input-components\r\n * @docsPage default-inputs\r\n */\r\n@Component({\r\n selector: 'vdr-currency-form-input',\r\n templateUrl: './currency-form-input.component.html',\r\n styleUrls: ['./currency-form-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CurrencyFormInputComponent implements FormInputComponent {\r\n static readonly id: DefaultFormComponentId = 'currency-form-input';\r\n @Input() readonly: boolean;\r\n formControl: FormControl;\r\n currencyCode$: Observable<CurrencyCode>;\r\n config: DefaultFormComponentConfig<'currency-form-input'>;\r\n\r\n constructor(private dataService: DataService) {\r\n this.currencyCode$ = this.dataService.settings\r\n .getActiveChannel()\r\n .mapStream(data => data.activeChannel.currencyCode);\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DefaultFormComponentConfig, DefaultFormComponentId } from '@vendure/common/lib/shared-types';\r\nimport { Observable } from 'rxjs';\r\nimport { startWith } from 'rxjs/operators';\r\n\r\nimport { FormInputComponent } from '../../../common/component-registry-types';\r\nimport { GetCustomerGroups } from '../../../common/generated-types';\r\nimport { DataService } from '../../../data/providers/data.service';\r\n\r\n/**\r\n * @description\r\n * Allows the selection of a Customer via an autocomplete select input.\r\n * Should be used with `ID` type fields which represent Customer IDs.\r\n *\r\n * @docsCategory custom-input-components\r\n * @docsPage default-inputs\r\n */\r\n@Component({\r\n selector: 'vdr-customer-group-form-input',\r\n templateUrl: './customer-group-form-input.component.html',\r\n styleUrls: ['./customer-group-form-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CustomerGroupFormInputComponent implements FormInputComponent, OnInit {\r\n static readonly id: DefaultFormComponentId = 'customer-group-form-input';\r\n @Input() readonly: boolean;\r\n formControl: FormControl;\r\n customerGroups$: Observable<GetCustomerGroups.Items[]>;\r\n config: DefaultFormComponentConfig<'customer-group-form-input'>;\r\n\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit() {\r\n this.customerGroups$ = this.dataService.customer\r\n .getCustomerGroupList({\r\n take: 1000,\r\n })\r\n .mapSingle(res => res.customerGroups.items)\r\n .pipe(startWith([]));\r\n }\r\n\r\n selectGroup(group: GetCustomerGroups.Items) {\r\n this.formControl.setValue(group.id);\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DefaultFormComponentConfig, DefaultFormComponentId } from '@vendure/common/lib/shared-types';\r\n\r\nimport { FormInputComponent } from '../../../common/component-registry-types';\r\n\r\n/**\r\n * @description\r\n * Allows selection of a datetime. Default input for `datetime` type fields.\r\n *\r\n * @docsCategory custom-input-components\r\n * @docsPage default-inputs\r\n */\r\n@Component({\r\n selector: 'vdr-date-form-input',\r\n templateUrl: './date-form-input.component.html',\r\n styleUrls: ['./date-form-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DateFormInputComponent implements FormInputComponent {\r\n static readonly id: DefaultFormComponentId = 'date-form-input';\r\n @Input() readonly: boolean;\r\n formControl: FormControl;\r\n config: DefaultFormComponentConfig<'date-form-input'>;\r\n get min() {\r\n return this.config.ui?.min || this.config.min;\r\n }\r\n get max() {\r\n return this.config.ui?.max || this.config.max;\r\n }\r\n get yearRange() {\r\n return this.config.ui?.yearRange || this.config.yearRange;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DefaultFormComponentId } from '@vendure/common/lib/shared-types';\r\nimport { Observable } from 'rxjs';\r\nimport { shareReplay } from 'rxjs/operators';\r\n\r\nimport { FormInputComponent, InputComponentConfig } from '../../../common/component-registry-types';\r\nimport { FacetWithValues } from '../../../common/generated-types';\r\nimport { DataService } from '../../../data/providers/data.service';\r\nimport { FacetValueSeletorItem } from '../../components/facet-value-selector/facet-value-selector.component';\r\n\r\n/**\r\n * @description\r\n * Allows the selection of multiple FacetValues via an autocomplete select input.\r\n * Should be used with `ID` type **list** fields which represent FacetValue IDs.\r\n *\r\n * @docsCategory custom-input-components\r\n * @docsPage default-inputs\r\n */\r\n@Component({\r\n selector: 'vdr-facet-value-form-input',\r\n templateUrl: './facet-value-form-input.component.html',\r\n styleUrls: ['./facet-value-form-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FacetValueFormInputComponent implements FormInputComponent, OnInit {\r\n static readonly id: DefaultFormComponentId = 'facet-value-form-input';\r\n readonly isListInput = true;\r\n readonly: boolean;\r\n formControl: FormControl;\r\n facets$: Observable<FacetWithValues.Fragment[]>;\r\n config: InputComponentConfig;\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit() {\r\n this.facets$ = this.dataService.facet\r\n .getAllFacets()\r\n .mapSingle(data => data.facets.items)\r\n .pipe(shareReplay(1));\r\n }\r\n\r\n valueTransformFn = (values: FacetValueSeletorItem[]) => {\r\n const isUsedInConfigArg = this.config.__typename === 'ConfigArgDefinition';\r\n if (isUsedInConfigArg) {\r\n return JSON.stringify(values.map(s => s.id));\r\n } else {\r\n return values;\r\n }\r\n };\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DefaultFormComponentConfig, DefaultFormComponentId } from '@vendure/common/lib/shared-types';\r\n\r\nimport { FormInputComponent } from '../../../common/component-registry-types';\r\n\r\n/**\r\n * @description\r\n * Displays a number input. Default input for `int` and `float` type fields.\r\n *\r\n * @docsCategory custom-input-components\r\n * @docsPage default-inputs\r\n */\r\n@Component({\r\n selector: 'vdr-number-form-input',\r\n templateUrl: './number-form-input.component.html',\r\n styleUrls: ['./number-form-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class NumberFormInputComponent implements FormInputComponent {\r\n static readonly id: DefaultFormComponentId = 'number-form-input';\r\n @Input() readonly: boolean;\r\n formControl: FormControl;\r\n config: DefaultFormComponentConfig<'number-form-input'>;\r\n\r\n get prefix() {\r\n return this.config.ui?.prefix || this.config.prefix;\r\n }\r\n get suffix() {\r\n return this.config.ui?.suffix || this.config.suffix;\r\n }\r\n get min() {\r\n return this.config.ui?.min || this.config.min;\r\n }\r\n get max() {\r\n return this.config.ui?.max || this.config.max;\r\n }\r\n get step() {\r\n return this.config.ui?.step || this.config.step;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DefaultFormComponentId } from '@vendure/common/lib/shared-types';\r\n\r\nimport { FormInputComponent, InputComponentConfig } from '../../../common/component-registry-types';\r\n\r\n/**\r\n * @description\r\n * Displays a password text input. Should be used with `string` type fields.\r\n *\r\n * @docsCategory custom-input-components\r\n * @docsPage default-inputs\r\n */\r\n@Component({\r\n selector: 'vdr-password-form-input',\r\n templateUrl: './password-form-input.component.html',\r\n styleUrls: ['./password-form-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PasswordFormInputComponent implements FormInputComponent {\r\n static readonly id: DefaultFormComponentId = 'password-form-input';\r\n readonly: boolean;\r\n formControl: FormControl;\r\n config: InputComponentConfig;\r\n}\r\n","import { Observable, Subject } from 'rxjs';\r\n\r\nexport interface SelectionManagerOptions<T> {\r\n multiSelect: boolean;\r\n itemsAreEqual: (a: T, b: T) => boolean;\r\n additiveMode: boolean;\r\n}\r\n\r\n/**\r\n * @description\r\n * A helper class used to manage selection of list items. Supports multiple selection via\r\n * cmd/ctrl/shift key.\r\n */\r\nexport class SelectionManager<T> {\r\n constructor(private options: SelectionManagerOptions<T>) {\r\n this.selectionChanges$ = this.selectionChangesSubject.asObservable();\r\n }\r\n\r\n get selection(): T[] {\r\n return this._selection;\r\n }\r\n\r\n selectionChanges$: Observable<T[]>;\r\n\r\n private _selection: T[] = [];\r\n private items: T[] = [];\r\n private selectionChangesSubject = new Subject<T[]>();\r\n\r\n setMultiSelect(isMultiSelect: boolean) {\r\n this.options.multiSelect = isMultiSelect;\r\n }\r\n\r\n setCurrentItems(items: T[]) {\r\n this.items = items;\r\n }\r\n\r\n toggleSelection(item: T, event?: MouseEvent) {\r\n const { multiSelect, itemsAreEqual, additiveMode } = this.options;\r\n const index = this._selection.findIndex(a => itemsAreEqual(a, item));\r\n if (multiSelect && event?.shiftKey && 1 <= this._selection.length) {\r\n const lastSelection = this._selection[this._selection.length - 1];\r\n const lastSelectionIndex = this.items.findIndex(a => itemsAreEqual(a, lastSelection));\r\n const currentIndex = this.items.findIndex(a => itemsAreEqual(a, item));\r\n const start = currentIndex < lastSelectionIndex ? currentIndex : lastSelectionIndex;\r\n const end = currentIndex > lastSelectionIndex ? currentIndex + 1 : lastSelectionIndex;\r\n this._selection.push(\r\n ...this.items.slice(start, end).filter(a => !this._selection.find(s => itemsAreEqual(a, s))),\r\n );\r\n } else if (index === -1) {\r\n if (multiSelect && (event?.ctrlKey || event?.shiftKey || additiveMode)) {\r\n this._selection.push(item);\r\n } else {\r\n this._selection = [item];\r\n }\r\n } else {\r\n if (multiSelect && event?.ctrlKey) {\r\n this._selection.splice(index, 1);\r\n } else if (1 < this._selection.length && !additiveMode) {\r\n this._selection = [item];\r\n } else {\r\n this._selection.splice(index, 1);\r\n }\r\n }\r\n // Make the selection mutable\r\n this._selection = this._selection.map(x => ({ ...x }));\r\n this.invokeOnSelectionChangeHandler();\r\n }\r\n\r\n selectMultiple(items: T[]) {\r\n this._selection = items;\r\n this.invokeOnSelectionChangeHandler();\r\n }\r\n\r\n clearSelection() {\r\n this._selection = [];\r\n this.invokeOnSelectionChangeHandler();\r\n }\r\n\r\n isSelected(item: T): boolean {\r\n return !!this._selection.find(a => this.options.itemsAreEqual(a, item));\r\n }\r\n\r\n areAllCurrentItemsSelected(): boolean {\r\n if (!this.items || this.items.length === 0) {\r\n return false;\r\n }\r\n return this.items.every(a => this._selection.find(b => this.options.itemsAreEqual(a, b)));\r\n }\r\n\r\n toggleSelectAll() {\r\n if (this.areAllCurrentItemsSelected()) {\r\n this._selection = this._selection.filter(\r\n a => !this.items.find(b => this.options.itemsAreEqual(a, b)),\r\n );\r\n } else {\r\n this._selection = this._selection.slice(0);\r\n for (const item of this.items) {\r\n if (!this._selection.find(a => this.options.itemsAreEqual(a, item))) {\r\n this._selection.push(item);\r\n }\r\n }\r\n }\r\n this.invokeOnSelectionChangeHandler();\r\n }\r\n\r\n lastSelected(): T {\r\n return this._selection[this._selection.length - 1];\r\n }\r\n\r\n private invokeOnSelectionChangeHandler() {\r\n this.selectionChangesSubject.next(this._selection);\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { PaginationInstance } from 'ngx-pagination';\r\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\r\nimport { map, tap } from 'rxjs/operators';\r\n\r\nimport { SearchProductsQuery } from '../../../common/generated-types';\r\nimport { SelectionManager } from '../../../common/utilities/selection-manager';\r\nimport { DataService } from '../../../data/providers/data.service';\r\nimport { Dialog } from '../../../providers/modal/modal.service';\r\n\r\nexport type SearchItem = SearchProductsQuery['search']['items'][number];\r\n\r\n@Component({\r\n selector: 'vdr-product-multi-selector-dialog',\r\n templateUrl: './product-multi-selector-dialog.component.html',\r\n styleUrls: ['./product-multi-selector-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ProductMultiSelectorDialogComponent implements OnInit, Dialog<SearchItem[]> {\r\n mode: 'product' | 'variant' = 'product';\r\n initialSelectionIds: string[] = [];\r\n items$: Observable<SearchItem[]>;\r\n facetValues$: Observable<SearchProductsQuery['search']['facetValues']>;\r\n searchTerm$ = new BehaviorSubject<string>('');\r\n searchFacetValueIds$ = new BehaviorSubject<string[]>([]);\r\n paginationConfig: PaginationInstance = {\r\n currentPage: 1,\r\n itemsPerPage: 25,\r\n totalItems: 1,\r\n };\r\n selectionManager: SelectionManager<SearchItem>;\r\n\r\n resolveWith: (result?: SearchItem[]) => void;\r\n private paginationConfig$ = new BehaviorSubject<PaginationInstance>(this.paginationConfig);\r\n\r\n constructor(private dataService: DataService, private changeDetector: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n const idFn =\r\n this.mode === 'product'\r\n ? (a: SearchItem, b: SearchItem) => a.productId === b.productId\r\n : (a: SearchItem, b: SearchItem) => a.productVariantId === b.productVariantId;\r\n this.selectionManager = new SelectionManager<SearchItem>({\r\n multiSelect: true,\r\n itemsAreEqual: idFn,\r\n additiveMode: true,\r\n });\r\n const searchQueryResult = this.dataService.product.searchProducts(\r\n '',\r\n this.paginationConfig.itemsPerPage,\r\n 0,\r\n );\r\n const result$ = combineLatest(\r\n this.searchTerm$,\r\n this.searchFacetValueIds$,\r\n this.paginationConfig$,\r\n ).subscribe(([term, facetValueIds, pagination]) => {\r\n const take = +pagination.itemsPerPage;\r\n const skip = (pagination.currentPage - 1) * take;\r\n return searchQueryResult.ref.refetch({\r\n input: { skip, take, term, facetValueIds, groupByProduct: this.mode === 'product' },\r\n });\r\n });\r\n\r\n this.items$ = searchQueryResult.stream$.pipe(\r\n tap(data => {\r\n this.paginationConfig.totalItems = data.search.totalItems;\r\n this.selectionManager.setCurrentItems(data.search.items);\r\n }),\r\n map(data => data.search.items),\r\n );\r\n\r\n this.facetValues$ = searchQueryResult.stream$.pipe(map(data => data.search.facetValues));\r\n\r\n if (this.initialSelectionIds.length) {\r\n if (this.mode === 'product') {\r\n this.dataService.product\r\n .getProducts({\r\n filter: {\r\n id: {\r\n in: this.initialSelectionIds,\r\n },\r\n },\r\n })\r\n .single$.subscribe(({ products }) => {\r\n this.selectionManager.selectMultiple(\r\n products.items.map(\r\n product =>\r\n ({\r\n productId: product.id,\r\n productName: product.name,\r\n } as SearchItem),\r\n ),\r\n );\r\n this.changeDetector.markForCheck();\r\n });\r\n } else {\r\n this.dataService.product\r\n .getProductVariants({\r\n filter: {\r\n id: {\r\n in: this.initialSelectionIds,\r\n },\r\n },\r\n })\r\n .single$.subscribe(({ productVariants }) => {\r\n this.selectionManager.selectMultiple(\r\n productVariants.items.map(\r\n variant =>\r\n ({\r\n productVariantId: variant.id,\r\n productVariantName: variant.name,\r\n } as SearchItem),\r\n ),\r\n );\r\n this.changeDetector.markForCheck();\r\n });\r\n }\r\n }\r\n }\r\n\r\n trackByFn(index: number, item: SearchItem) {\r\n return item.productId;\r\n }\r\n\r\n setSearchTerm(term: string) {\r\n this.searchTerm$.next(term);\r\n }\r\n setFacetValueIds(ids: string[]) {\r\n this.searchFacetValueIds$.next(ids);\r\n }\r\n\r\n toggleSelection(item: SearchItem, event: MouseEvent) {\r\n this.selectionManager.toggleSelection(item, event);\r\n }\r\n\r\n clearSelection() {\r\n this.selectionManager.selectMultiple([]);\r\n }\r\n\r\n isSelected(item: SearchItem) {\r\n return this.selectionManager.isSelected(item);\r\n }\r\n\r\n entityInfoClick(event: MouseEvent) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n pageChange(page: number) {\r\n this.paginationConfig.currentPage = page;\r\n this.paginationConfig$.next(this.paginationConfig);\r\n }\r\n\r\n itemsPerPageChange(itemsPerPage: number) {\r\n this.paginationConfig.itemsPerPage = itemsPerPage;\r\n this.paginationConfig$.next(this.paginationConfig);\r\n }\r\n\r\n select() {\r\n this.resolveWith(this.selectionManager.selection);\r\n }\r\n\r\n cancel() {\r\n this.resolveWith();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DefaultFormComponentConfig, DefaultFormComponentId } from '@vendure/common/lib/shared-types';\r\n\r\nimport { FormInputComponent } from '../../../common/component-registry-types';\r\nimport { DataService } from '../../../data/providers/data.service';\r\nimport { ModalService } from '../../../providers/modal/modal.service';\r\nimport { ProductMultiSelectorDialogComponent } from '../../components/product-multi-selector-dialog/product-multi-selector-dialog.component';\r\n\r\n@Component({\r\n selector: 'vdr-product-multi-selector-form-input',\r\n templateUrl: './product-multi-selector-form-input.component.html',\r\n styleUrls: ['./product-multi-selector-form-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ProductMultiSelectorFormInputComponent implements OnInit, FormInputComponent {\r\n @Input() config: DefaultFormComponentConfig<'product-multi-form-input'>;\r\n @Input() formControl: FormControl;\r\n @Input() readonly: boolean;\r\n mode: 'product' | 'variant' = 'product';\r\n readonly isListInput = true;\r\n static readonly id: DefaultFormComponentId = 'product-multi-form-input';\r\n\r\n constructor(\r\n private modalService: ModalService,\r\n private dataService: DataService,\r\n private changeDetector: ChangeDetectorRef,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.mode = this.config.ui?.selectionMode ?? 'product';\r\n }\r\n\r\n select() {\r\n this.modalService\r\n .fromComponent(ProductMultiSelectorDialogComponent, {\r\n size: 'xl',\r\n locals: {\r\n mode: this.mode,\r\n initialSelectionIds: this.formControl.value,\r\n },\r\n })\r\n .subscribe(selection => {\r\n if (selection) {\r\n this.formControl.setValue(\r\n selection.map(item =>\r\n this.mode === 'product' ? item.productId : item.productVariantId,\r\n ),\r\n );\r\n this.changeDetector.markForCheck();\r\n }\r\n });\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DefaultFormComponentId } from '@vendure/common/lib/shared-types';\r\nimport { notNullOrUndefined } from '@vendure/common/lib/shared-utils';\r\nimport { forkJoin, Observable, of } from 'rxjs';\r\nimport { map, startWith, switchMap } from 'rxjs/operators';\r\n\r\nimport { FormInputComponent, InputComponentConfig } from '../../../common/component-registry-types';\r\nimport { GetProductVariant, ProductSelectorSearch } from '../../../common/generated-types';\r\nimport { DataService } from '../../../data/providers/data.service';\r\n\r\n/**\r\n * @description\r\n * Allows the selection of multiple ProductVariants via an autocomplete select input.\r\n * Should be used with `ID` type **list** fields which represent ProductVariant IDs.\r\n *\r\n * @docsCategory custom-input-components\r\n * @docsPage default-inputs\r\n */\r\n@Component({\r\n selector: 'vdr-product-selector-form-input',\r\n templateUrl: './product-selector-form-input.component.html',\r\n styleUrls: ['./product-selector-form-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ProductSelectorFormInputComponent implements FormInputComponent, OnInit {\r\n static readonly id: DefaultFormComponentId = 'product-selector-form-input';\r\n readonly isListInput = true;\r\n readonly: boolean;\r\n formControl: FormControl;\r\n config: InputComponentConfig;\r\n selection$: Observable<GetProductVariant.ProductVariant[]>;\r\n\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit() {\r\n this.formControl.setValidators([\r\n control => {\r\n if (!control.value || !control.value.length) {\r\n return {\r\n atLeastOne: { length: control.value.length },\r\n };\r\n }\r\n return null;\r\n },\r\n ]);\r\n\r\n this.selection$ = this.formControl.valueChanges.pipe(\r\n startWith(this.formControl.value),\r\n switchMap(value => {\r\n if (Array.isArray(value) && 0 < value.length) {\r\n return forkJoin(\r\n value.map(id =>\r\n this.dataService.product\r\n .getProductVariant(id)\r\n .mapSingle(data => data.productVariant),\r\n ),\r\n );\r\n }\r\n return of([]);\r\n }),\r\n map(variants => variants.filter(notNullOrUndefined)),\r\n );\r\n }\r\n\r\n addProductVariant(product: ProductSelectorSearch.Items) {\r\n const value = this.formControl.value as string[];\r\n this.formControl.setValue([...new Set([...value, product.productVariantId])]);\r\n }\r\n\r\n removeProductVariant(id: string) {\r\n const value = this.formControl.value as string[];\r\n this.formControl.setValue(value.filter(_id => _id !== id));\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DefaultFormComponentId } from '@vendure/common/lib/shared-types';\r\n\r\nimport { FormInputComponent } from '../../../common/component-registry-types';\r\nimport { RelationCustomFieldConfig } from '../../../common/generated-types';\r\n\r\n/**\r\n * @description\r\n * The default input component for `relation` type custom fields. Allows the selection\r\n * of a ProductVariant, Product, Customer or Asset. For other entity types, a custom\r\n * implementation will need to be defined. See {@link registerFormInputComponent}.\r\n *\r\n * @docsCategory custom-input-components\r\n * @docsPage default-inputs\r\n */\r\n@Component({\r\n selector: 'vdr-relation-form-input',\r\n templateUrl: './relation-form-input.component.html',\r\n styleUrls: ['./relation-form-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RelationFormInputComponent implements FormInputComponent {\r\n static readonly id: DefaultFormComponentId = 'relation-form-input';\r\n @Input() readonly: boolean;\r\n formControl: FormControl;\r\n config: RelationCustomFieldConfig;\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DefaultFormComponentConfig, DefaultFormComponentId } from '@vendure/common/lib/shared-types';\r\n\r\nimport { FormInputComponent, InputComponentConfig } from '../../../common/component-registry-types';\r\n\r\n/**\r\n * @description\r\n * Uses the {@link RichTextEditorComponent} as in input for `text` type fields.\r\n *\r\n * @docsCategory custom-input-components\r\n * @docsPage default-inputs\r\n */\r\n@Component({\r\n selector: 'vdr-rich-text-form-input',\r\n templateUrl: './rich-text-form-input.component.html',\r\n styleUrls: ['./rich-text-form-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RichTextFormInputComponent implements FormInputComponent {\r\n static readonly id: DefaultFormComponentId = 'rich-text-form-input';\r\n readonly: boolean;\r\n formControl: FormControl;\r\n config: DefaultFormComponentConfig<'rich-text-form-input'>;\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DefaultFormComponentConfig, DefaultFormComponentId } from '@vendure/common/lib/shared-types';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { FormInputComponent } from '../../../common/component-registry-types';\r\nimport { CustomFieldConfigFragment, LanguageCode } from '../../../common/generated-types';\r\nimport { DataService } from '../../../data/providers/data.service';\r\n\r\n/**\r\n * @description\r\n * Uses a select input to allow the selection of a string value. Should be used with\r\n * `string` type fields with options.\r\n *\r\n * @docsCategory custom-input-components\r\n * @docsPage default-inputs\r\n */\r\n@Component({\r\n selector: 'vdr-select-form-input',\r\n templateUrl: './select-form-input.component.html',\r\n styleUrls: ['./select-form-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SelectFormInputComponent implements FormInputComponent, OnInit {\r\n static readonly id: DefaultFormComponentId = 'select-form-input';\r\n @Input() readonly: boolean;\r\n formControl: FormControl;\r\n config: DefaultFormComponentConfig<'select-form-input'> & CustomFieldConfigFragment;\r\n uiLanguage$: Observable<LanguageCode>;\r\n\r\n get options() {\r\n return this.config.ui?.options || this.config.options;\r\n }\r\n\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit() {\r\n this.uiLanguage$ = this.dataService.client.uiState().mapStream(({ uiState }) => uiState.language);\r\n }\r\n\r\n trackByFn(index: number, item: any) {\r\n return item.value;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DefaultFormComponentConfig, DefaultFormComponentId } from '@vendure/common/lib/shared-types';\r\n\r\nimport { FormInputComponent, InputComponentConfig } from '../../../common/component-registry-types';\r\n\r\n/**\r\n * @description\r\n * Uses a regular text form input. This is the default input for `string` and `localeString` type fields.\r\n *\r\n * @docsCategory custom-input-components\r\n * @docsPage default-inputs\r\n */\r\n@Component({\r\n selector: 'vdr-text-form-input',\r\n templateUrl: './text-form-input.component.html',\r\n styleUrls: ['./text-form-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TextFormInputComponent implements FormInputComponent {\r\n static readonly id: DefaultFormComponentId = 'text-form-input';\r\n readonly: boolean;\r\n formControl: FormControl;\r\n config: DefaultFormComponentConfig<'text-form-input'>;\r\n\r\n get prefix() {\r\n return this.config.ui?.prefix || this.config.prefix;\r\n }\r\n\r\n get suffix() {\r\n return this.config.ui?.suffix || this.config.suffix;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DefaultFormComponentConfig, DefaultFormComponentId } from '@vendure/common/lib/shared-types';\r\n\r\nimport { FormInputComponent, InputComponentConfig } from '../../../common/component-registry-types';\r\n\r\n/**\r\n * @description\r\n * Uses textarea form input. This is the default input for `text` type fields.\r\n *\r\n * @docsCategory custom-input-components\r\n * @docsPage default-inputs\r\n */\r\n@Component({\r\n selector: 'vdr-textarea-form-input',\r\n templateUrl: './textarea-form-input.component.html',\r\n styleUrls: ['./textarea-form-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TextareaFormInputComponent implements FormInputComponent {\r\n static readonly id: DefaultFormComponentId = 'textarea-form-input';\r\n readonly: boolean;\r\n formControl: FormControl;\r\n config: DefaultFormComponentConfig<'textarea-form-input'>;\r\n\r\n get spellcheck(): boolean {\r\n return this.config.spellcheck === true;\r\n }\r\n}\r\n","import { APP_INITIALIZER, FactoryProvider, Provider, Type } from '@angular/core';\r\n\r\nimport { FormInputComponent } from '../../common/component-registry-types';\r\nimport { ComponentRegistryService } from '../../providers/component-registry/component-registry.service';\r\nimport {\r\n CustomFieldComponentService,\r\n CustomFieldControl,\r\n CustomFieldEntityName,\r\n} from '../../providers/custom-field-component/custom-field-component.service';\r\n\r\nimport { BooleanFormInputComponent } from './boolean-form-input/boolean-form-input.component';\r\nimport { HtmlEditorFormInputComponent } from './code-editor-form-input/html-editor-form-input.component';\r\nimport { JsonEditorFormInputComponent } from './code-editor-form-input/json-editor-form-input.component';\r\nimport { CombinationModeFormInputComponent } from './combination-mode-form-input/combination-mode-form-input.component';\r\nimport { CurrencyFormInputComponent } from './currency-form-input/currency-form-input.component';\r\nimport { CustomerGroupFormInputComponent } from './customer-group-form-input/customer-group-form-input.component';\r\nimport { DateFormInputComponent } from './date-form-input/date-form-input.component';\r\nimport { FacetValueFormInputComponent } from './facet-value-form-input/facet-value-form-input.component';\r\nimport { NumberFormInputComponent } from './number-form-input/number-form-input.component';\r\nimport { PasswordFormInputComponent } from './password-form-input/password-form-input.component';\r\nimport { ProductMultiSelectorFormInputComponent } from './product-multi-selector-form-input/product-multi-selector-form-input.component';\r\nimport { ProductSelectorFormInputComponent } from './product-selector-form-input/product-selector-form-input.component';\r\nimport { RelationFormInputComponent } from './relation-form-input/relation-form-input.component';\r\nimport { RichTextFormInputComponent } from './rich-text-form-input/rich-text-form-input.component';\r\nimport { SelectFormInputComponent } from './select-form-input/select-form-input.component';\r\nimport { TextFormInputComponent } from './text-form-input/text-form-input.component';\r\nimport { TextareaFormInputComponent } from './textarea-form-input/textarea-form-input.component';\r\n\r\nexport const defaultFormInputs = [\r\n BooleanFormInputComponent,\r\n CurrencyFormInputComponent,\r\n DateFormInputComponent,\r\n FacetValueFormInputComponent,\r\n NumberFormInputComponent,\r\n SelectFormInputComponent,\r\n TextFormInputComponent,\r\n ProductSelectorFormInputComponent,\r\n CustomerGroupFormInputComponent,\r\n PasswordFormInputComponent,\r\n RelationFormInputComponent,\r\n TextareaFormInputComponent,\r\n RichTextFormInputComponent,\r\n JsonEditorFormInputComponent,\r\n HtmlEditorFormInputComponent,\r\n ProductMultiSelectorFormInputComponent,\r\n CombinationModeFormInputComponent,\r\n];\r\n\r\n/**\r\n * @description\r\n * Registers a custom FormInputComponent which can be used to control the argument inputs\r\n * of a {@link ConfigurableOperationDef} (e.g. CollectionFilter, ShippingMethod etc) or for\r\n * a custom field.\r\n *\r\n * @example\r\n * ```TypeScript\r\n * \\@NgModule({\r\n * imports: [SharedModule],\r\n * declarations: [MyCustomFieldControl],\r\n * providers: [\r\n * registerFormInputComponent('my-custom-input', MyCustomFieldControl),\r\n * ],\r\n * })\r\n * export class MyUiExtensionModule {}\r\n * ```\r\n *\r\n * This input component can then be used in a custom field:\r\n *\r\n * @example\r\n * ```TypeScript\r\n * const config = {\r\n * // ...\r\n * customFields: {\r\n * ProductVariant: [\r\n * {\r\n * name: 'rrp',\r\n * type: 'int',\r\n * ui: { component: 'my-custom-input' },\r\n * },\r\n * ]\r\n * }\r\n * }\r\n * ```\r\n *\r\n * or with an argument of a {@link ConfigurableOperationDef}:\r\n *\r\n * @example\r\n * ```TypeScript\r\n * args: {\r\n * rrp: { type: 'int', ui: { component: 'my-custom-input' } },\r\n * }\r\n * ```\r\n *\r\n * @docsCategory custom-input-components\r\n */\r\nexport function registerFormInputComponent(id: string, component: Type<FormInputComponent>): FactoryProvider {\r\n return {\r\n provide: APP_INITIALIZER,\r\n multi: true,\r\n useFactory: (registry: ComponentRegistryService) => () => {\r\n registry.registerInputComponent(id, component);\r\n },\r\n deps: [ComponentRegistryService],\r\n };\r\n}\r\n\r\n/**\r\n * @description\r\n * **Deprecated** use `registerFormInputComponent()` in combination with the customField `ui` config instead.\r\n *\r\n * Registers a custom component to act as the form input control for the given custom field.\r\n * This should be used in the NgModule `providers` array of your ui extension module.\r\n *\r\n * @example\r\n * ```TypeScript\r\n * \\@NgModule({\r\n * imports: [SharedModule],\r\n * declarations: [MyCustomFieldControl],\r\n * providers: [\r\n * registerCustomFieldComponent('Product', 'someCustomField', MyCustomFieldControl),\r\n * ],\r\n * })\r\n * export class MyUiExtensionModule {}\r\n * ```\r\n *\r\n * @deprecated use `registerFormInputComponent()` in combination with the customField `ui` config instead.\r\n *\r\n * @docsCategory custom-input-components\r\n */\r\nexport function registerCustomFieldComponent(\r\n entity: CustomFieldEntityName,\r\n fieldName: string,\r\n component: Type<CustomFieldControl>,\r\n): FactoryProvider {\r\n return {\r\n provide: APP_INITIALIZER,\r\n multi: true,\r\n useFactory: (customFieldComponentService: CustomFieldComponentService) => () => {\r\n customFieldComponentService.registerCustomFieldComponent(entity, fieldName, component);\r\n },\r\n deps: [CustomFieldComponentService],\r\n };\r\n}\r\n\r\n/**\r\n * Registers the default form input components.\r\n */\r\nexport function registerDefaultFormInputs(): FactoryProvider[] {\r\n return defaultFormInputs.map(cmp => registerFormInputComponent(cmp.id, cmp));\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { assertNever } from '@vendure/common/lib/shared-utils';\r\nimport { BehaviorSubject, combineLatest, Observable, of } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\n\r\nimport { ActionBarLocationId } from '../../../common/component-registry-types';\r\nimport { DataService } from '../../../data/providers/data.service';\r\nimport { ActionBarItem } from '../../../providers/nav-builder/nav-builder-types';\r\nimport { NavBuilderService } from '../../../providers/nav-builder/nav-builder.service';\r\nimport { NotificationService } from '../../../providers/notification/notification.service';\r\n\r\n@Component({\r\n selector: 'vdr-action-bar-items',\r\n templateUrl: './action-bar-items.component.html',\r\n styleUrls: ['./action-bar-items.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ActionBarItemsComponent implements OnInit, OnChanges {\r\n @HostBinding('attr.data-location-id')\r\n @Input()\r\n locationId: ActionBarLocationId;\r\n\r\n items$: Observable<ActionBarItem[]>;\r\n private locationId$ = new BehaviorSubject<string>('');\r\n\r\n constructor(\r\n private navBuilderService: NavBuilderService,\r\n private route: ActivatedRoute,\r\n private dataService: DataService,\r\n private notificationService: NotificationService,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.items$ = combineLatest(this.navBuilderService.actionBarConfig$, this.locationId$).pipe(\r\n map(([items, locationId]) => items.filter(config => config.locationId === locationId)),\r\n );\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ('locationId' in changes) {\r\n this.locationId$.next(changes['locationId'].currentValue);\r\n }\r\n }\r\n\r\n handleClick(event: MouseEvent, item: ActionBarItem) {\r\n if (typeof item.onClick === 'function') {\r\n item.onClick(event, {\r\n route: this.route,\r\n dataService: this.dataService,\r\n notificationService: this.notificationService,\r\n });\r\n }\r\n }\r\n\r\n getRouterLink(item: ActionBarItem): any[] | null {\r\n return this.navBuilderService.getRouterLink(item, this.route);\r\n }\r\n\r\n getButtonStyles(item: ActionBarItem): string[] {\r\n const styles = ['btn'];\r\n if (item.buttonStyle && item.buttonStyle === 'link') {\r\n styles.push('btn-link');\r\n return styles;\r\n }\r\n styles.push(this.getButtonColorClass(item));\r\n return styles;\r\n }\r\n\r\n private getButtonColorClass(item: ActionBarItem): string {\r\n switch (item.buttonColor) {\r\n case undefined:\r\n case 'primary':\r\n return item.buttonStyle === 'outline' ? 'btn-outline' : 'btn-primary';\r\n case 'success':\r\n return item.buttonStyle === 'outline' ? 'btn-success-outline' : 'btn-success';\r\n case 'warning':\r\n return item.buttonStyle === 'outline' ? 'btn-warning-outline' : 'btn-warning';\r\n default:\r\n assertNever(item.buttonColor);\r\n return '';\r\n }\r\n }\r\n}\r\n","import { Component, ContentChild, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vdr-ab-left',\r\n template: ` <ng-content></ng-content> `,\r\n})\r\nexport class ActionBarLeftComponent {\r\n @Input() grow = false;\r\n}\r\n\r\n@Component({\r\n selector: 'vdr-ab-right',\r\n template: ` <ng-content></ng-content> `,\r\n})\r\nexport class ActionBarRightComponent {\r\n @Input() grow = false;\r\n}\r\n\r\n@Component({\r\n selector: 'vdr-action-bar',\r\n templateUrl: './action-bar.component.html',\r\n styleUrls: ['./action-bar.component.scss'],\r\n})\r\nexport class ActionBarComponent {\r\n @ContentChild(ActionBarLeftComponent) left: ActionBarLeftComponent;\r\n @ContentChild(ActionBarRightComponent) right: ActionBarRightComponent;\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\nimport { CustomFieldConfig, GetAvailableCountries } from '../../../common/generated-types';\r\n\r\n@Component({\r\n selector: 'vdr-address-form',\r\n templateUrl: './address-form.component.html',\r\n styleUrls: ['./address-form.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AddressFormComponent {\r\n @Input() customFields: CustomFieldConfig;\r\n @Input() formGroup: FormGroup;\r\n @Input() availableCountries: GetAvailableCountries.Items[];\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n/**\r\n * A wrapper around an <input> element which adds a prefix and/or a suffix element.\r\n */\r\n@Component({\r\n selector: 'vdr-affixed-input',\r\n templateUrl: './affixed-input.component.html',\r\n styleUrls: ['./affixed-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AffixedInputComponent {\r\n @Input() prefix: string;\r\n @Input() suffix: string;\r\n}\r\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n/**\r\n * A form input control which displays a number input with a percentage sign suffix.\r\n */\r\n@Component({\r\n selector: 'vdr-percentage-suffix-input',\r\n styles: [\r\n `\r\n :host {\r\n padding: 0;\r\n }\r\n `,\r\n ],\r\n template: `\r\n <vdr-affixed-input suffix=\"%\">\r\n <input\r\n type=\"number\"\r\n step=\"1\"\r\n [value]=\"_value\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (input)=\"onInput($event.target.value)\"\r\n (focus)=\"onTouch()\"\r\n />\r\n </vdr-affixed-input>\r\n `,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: PercentageSuffixInputComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class PercentageSuffixInputComponent implements ControlValueAccessor, OnChanges {\r\n @Input() disabled = false;\r\n @Input() readonly = false;\r\n @Input() value: number;\r\n onChange: (val: any) => void;\r\n onTouch: () => void;\r\n _value: number;\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if ('value' in changes) {\r\n this.writeValue(changes['value'].currentValue);\r\n }\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onInput(value: string | number) {\r\n this.onChange(value);\r\n }\r\n\r\n writeValue(value: any): void {\r\n const numericValue = +value;\r\n if (!Number.isNaN(numericValue)) {\r\n this._value = numericValue;\r\n }\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport { notNullOrUndefined } from '@vendure/common/lib/shared-utils';\r\n\r\nimport { ServerConfigService } from '../../../data/server-config';\r\n\r\n/**\r\n * A component for selecting files to upload as new Assets.\r\n */\r\n@Component({\r\n selector: 'vdr-asset-file-input',\r\n templateUrl: './asset-file-input.component.html',\r\n styleUrls: ['./asset-file-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AssetFileInputComponent implements OnInit {\r\n /**\r\n * CSS selector of the DOM element which will be masked by the file\r\n * drop zone. Defaults to `body`.\r\n */\r\n @Input() dropZoneTarget = 'body';\r\n @Input() uploading = false;\r\n @Output() selectFiles = new EventEmitter<File[]>();\r\n dragging = false;\r\n overDropZone = false;\r\n dropZoneStyle = {\r\n 'width.px': 0,\r\n 'height.px': 0,\r\n 'top.px': 0,\r\n 'left.px': 0,\r\n };\r\n accept: string;\r\n\r\n constructor(private serverConfig: ServerConfigService) {}\r\n\r\n ngOnInit() {\r\n this.accept = this.serverConfig.serverConfig.permittedAssetTypes.join(',');\r\n this.fitDropZoneToTarget();\r\n }\r\n\r\n @HostListener('document:dragenter')\r\n onDragEnter() {\r\n this.dragging = true;\r\n this.fitDropZoneToTarget();\r\n }\r\n\r\n // DragEvent is not supported in Safari, see https://github.com/vendure-ecommerce/vendure/pull/284\r\n @HostListener('document:dragleave', ['$event'])\r\n onDragLeave(event: any) {\r\n if (!event.clientX && !event.clientY) {\r\n this.dragging = false;\r\n }\r\n }\r\n\r\n /**\r\n * Preventing this event is required to make dropping work.\r\n * See https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API#Define_a_drop_zone\r\n */\r\n onDragOver(event: any) {\r\n event.preventDefault();\r\n }\r\n\r\n // DragEvent is not supported in Safari, see https://github.com/vendure-ecommerce/vendure/pull/284\r\n onDrop(event: any) {\r\n event.preventDefault();\r\n this.dragging = false;\r\n this.overDropZone = false;\r\n const files = Array.from<DataTransferItem>(event.dataTransfer ? event.dataTransfer.items : [])\r\n .map(i => i.getAsFile())\r\n .filter(notNullOrUndefined);\r\n this.selectFiles.emit(files);\r\n }\r\n\r\n select(event: Event) {\r\n const files = (event.target as HTMLInputElement).files;\r\n if (files) {\r\n this.selectFiles.emit(Array.from(files));\r\n }\r\n }\r\n\r\n private fitDropZoneToTarget() {\r\n const target = document.querySelector(this.dropZoneTarget) as HTMLElement;\r\n if (target) {\r\n const rect = target.getBoundingClientRect();\r\n this.dropZoneStyle['width.px'] = rect.width;\r\n this.dropZoneStyle['height.px'] = rect.height;\r\n this.dropZoneStyle['top.px'] = rect.top;\r\n this.dropZoneStyle['left.px'] = rect.left;\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { mergeMap } from 'rxjs/operators';\r\n\r\nimport { AssetFragment, GetAsset, GetAssetList, UpdateAssetInput } from '../../../common/generated-types';\r\nimport { DataService } from '../../../data/providers/data.service';\r\nimport { Dialog } from '../../../providers/modal/modal.service';\r\n\r\ntype AssetLike = GetAssetList.Items | AssetFragment;\r\n\r\n@Component({\r\n selector: 'vdr-asset-preview-dialog',\r\n templateUrl: './asset-preview-dialog.component.html',\r\n styleUrls: ['./asset-preview-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AssetPreviewDialogComponent implements Dialog<void>, OnInit {\r\n constructor(private dataService: DataService) {}\r\n asset: AssetLike;\r\n assetChanges?: UpdateAssetInput;\r\n resolveWith: (result?: void) => void;\r\n assetWithTags$: Observable<GetAsset.Asset>;\r\n\r\n ngOnInit() {\r\n this.assetWithTags$ = of(this.asset).pipe(\r\n mergeMap(asset => {\r\n if (this.hasTags(asset)) {\r\n return of(asset);\r\n } else {\r\n // tslint:disable-next-line:no-non-null-assertion\r\n return this.dataService.product.getAsset(asset.id).mapSingle(data => data.asset!);\r\n }\r\n }),\r\n );\r\n }\r\n\r\n private hasTags(asset: AssetLike): asset is GetAssetList.Items {\r\n return asset.hasOwnProperty('tags');\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\n\r\nimport { GetAssetList } from '../../../common/generated-types';\r\nimport { SelectionManager } from '../../../common/utilities/selection-manager';\r\nimport { ModalService } from '../../../providers/modal/modal.service';\r\nimport { AssetPreviewDialogComponent } from '../asset-preview-dialog/asset-preview-dialog.component';\r\n\r\nexport type AssetLike = GetAssetList.Items;\r\n\r\n@Component({\r\n selector: 'vdr-asset-gallery',\r\n templateUrl: './asset-gallery.component.html',\r\n styleUrls: ['./asset-gallery.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AssetGalleryComponent implements OnChanges {\r\n @Input() assets: AssetLike[];\r\n /**\r\n * If true, allows multiple assets to be selected by ctrl+clicking.\r\n */\r\n @Input() multiSelect = false;\r\n @Input() canDelete = false;\r\n @Output() selectionChange = new EventEmitter<AssetLike[]>();\r\n @Output() deleteAssets = new EventEmitter<AssetLike[]>();\r\n\r\n selectionManager = new SelectionManager<AssetLike>({\r\n multiSelect: this.multiSelect,\r\n itemsAreEqual: (a, b) => a.id === b.id,\r\n additiveMode: false,\r\n });\r\n\r\n constructor(private modalService: ModalService) {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (this.assets) {\r\n for (const asset of this.selectionManager.selection) {\r\n // Update any selected assets with any changes\r\n const match = this.assets.find(a => a.id === asset.id);\r\n if (match) {\r\n Object.assign(asset, match);\r\n }\r\n }\r\n }\r\n if (changes['assets']) {\r\n this.selectionManager.setCurrentItems(this.assets);\r\n }\r\n if (changes['multiSelect']) {\r\n this.selectionManager.setMultiSelect(this.multiSelect);\r\n }\r\n }\r\n\r\n toggleSelection(asset: AssetLike, event?: MouseEvent) {\r\n this.selectionManager.toggleSelection(asset, event);\r\n this.selectionChange.emit(this.selectionManager.selection);\r\n }\r\n\r\n selectMultiple(assets: AssetLike[]) {\r\n this.selectionManager.selectMultiple(assets);\r\n this.selectionChange.emit(this.selectionManager.selection);\r\n }\r\n\r\n isSelected(asset: AssetLike): boolean {\r\n return this.selectionManager.isSelected(asset);\r\n }\r\n\r\n lastSelected(): AssetLike {\r\n return this.selectionManager.lastSelected();\r\n }\r\n\r\n previewAsset(asset: AssetLike) {\r\n this.modalService\r\n .fromComponent(AssetPreviewDialogComponent, {\r\n size: 'xl',\r\n closable: true,\r\n locals: { asset },\r\n })\r\n .subscribe();\r\n }\r\n\r\n entityInfoClick(event: MouseEvent) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { PaginationInstance } from 'ngx-pagination';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\nimport { debounceTime, delay, finalize, map, take as rxjsTake, takeUntil, tap } from 'rxjs/operators';\r\n\r\nimport {\r\n Asset,\r\n CreateAssets,\r\n GetAssetList,\r\n LogicalOperator,\r\n SortOrder,\r\n TagFragment,\r\n} from '../../../common/generated-types';\r\nimport { DataService } from '../../../data/providers/data.service';\r\nimport { QueryResult } from '../../../data/query-result';\r\nimport { Dialog } from '../../../providers/modal/modal.service';\r\nimport { NotificationService } from '../../../providers/notification/notification.service';\r\nimport { AssetGalleryComponent } from '../asset-gallery/asset-gallery.component';\r\nimport { AssetSearchInputComponent } from '../asset-search-input/asset-search-input.component';\r\n\r\n/**\r\n * @description\r\n * A dialog which allows the creation and selection of assets.\r\n *\r\n * @example\r\n * ```TypeScript\r\n * selectAssets() {\r\n * this.modalService\r\n * .fromComponent(AssetPickerDialogComponent, {\r\n * size: 'xl',\r\n * })\r\n * .subscribe(result => {\r\n * if (result && result.length) {\r\n * // ...\r\n * }\r\n * });\r\n * }\r\n * ```\r\n *\r\n * @docsCategory components\r\n */\r\n@Component({\r\n selector: 'vdr-asset-picker-dialog',\r\n templateUrl: './asset-picker-dialog.component.html',\r\n styleUrls: ['./asset-picker-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AssetPickerDialogComponent implements OnInit, AfterViewInit, OnDestroy, Dialog<Asset[]> {\r\n assets$: Observable<GetAssetList.Items[]>;\r\n allTags$: Observable<TagFragment[]>;\r\n paginationConfig: PaginationInstance = {\r\n currentPage: 1,\r\n itemsPerPage: 25,\r\n totalItems: 1,\r\n };\r\n @ViewChild('assetSearchInputComponent')\r\n private assetSearchInputComponent: AssetSearchInputComponent;\r\n @ViewChild('assetGalleryComponent')\r\n private assetGalleryComponent: AssetGalleryComponent;\r\n\r\n multiSelect = true;\r\n initialTags: string[] = [];\r\n\r\n resolveWith: (result?: Asset[]) => void;\r\n selection: Asset[] = [];\r\n searchTerm$ = new BehaviorSubject<string | undefined>(undefined);\r\n filterByTags$ = new BehaviorSubject<TagFragment[] | undefined>(undefined);\r\n uploading = false;\r\n private listQuery: QueryResult<GetAssetList.Query, GetAssetList.Variables>;\r\n private destroy$ = new Subject<void>();\r\n\r\n constructor(private dataService: DataService, private notificationService: NotificationService) {}\r\n\r\n ngOnInit() {\r\n this.listQuery = this.dataService.product.getAssetList(this.paginationConfig.itemsPerPage, 0);\r\n this.allTags$ = this.dataService.product.getTagList().mapSingle(data => data.tags.items);\r\n this.assets$ = this.listQuery.stream$.pipe(\r\n tap(result => (this.paginationConfig.totalItems = result.assets.totalItems)),\r\n map(result => result.assets.items),\r\n );\r\n this.searchTerm$.pipe(debounceTime(250), takeUntil(this.destroy$)).subscribe(() => {\r\n this.fetchPage(this.paginationConfig.currentPage, this.paginationConfig.itemsPerPage);\r\n });\r\n this.filterByTags$.pipe(debounceTime(100), takeUntil(this.destroy$)).subscribe(() => {\r\n this.fetchPage(this.paginationConfig.currentPage, this.paginationConfig.itemsPerPage);\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (0 < this.initialTags.length) {\r\n this.allTags$\r\n .pipe(\r\n rxjsTake(1),\r\n map(allTags => allTags.filter(tag => this.initialTags.includes(tag.value))),\r\n tap(tags => this.filterByTags$.next(tags)),\r\n delay(1),\r\n )\r\n .subscribe(tags => this.assetSearchInputComponent.setTags(tags));\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n pageChange(page: number) {\r\n this.paginationConfig.currentPage = page;\r\n this.fetchPage(this.paginationConfig.currentPage, this.paginationConfig.itemsPerPage);\r\n }\r\n\r\n itemsPerPageChange(itemsPerPage: number) {\r\n this.paginationConfig.itemsPerPage = itemsPerPage;\r\n this.fetchPage(this.paginationConfig.currentPage, this.paginationConfig.itemsPerPage);\r\n }\r\n\r\n cancel() {\r\n this.resolveWith();\r\n }\r\n\r\n select() {\r\n this.resolveWith(this.selection);\r\n }\r\n\r\n createAssets(files: File[]) {\r\n if (files.length) {\r\n this.uploading = true;\r\n this.dataService.product\r\n .createAssets(files)\r\n .pipe(finalize(() => (this.uploading = false)))\r\n .subscribe(res => {\r\n this.fetchPage(this.paginationConfig.currentPage, this.paginationConfig.itemsPerPage);\r\n this.notificationService.success(_('asset.notify-create-assets-success'), {\r\n count: files.length,\r\n });\r\n const assets = res.createAssets.filter(\r\n a => a.__typename === 'Asset',\r\n ) as CreateAssets.AssetInlineFragment[];\r\n this.assetGalleryComponent.selectMultiple(assets);\r\n });\r\n }\r\n }\r\n\r\n private fetchPage(currentPage: number, itemsPerPage: number) {\r\n const take = +itemsPerPage;\r\n const skip = (currentPage - 1) * +itemsPerPage;\r\n const searchTerm = this.searchTerm$.value;\r\n const tags = this.filterByTags$.value?.map(t => t.value);\r\n this.listQuery.ref.refetch({\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n name: {\r\n contains: searchTerm,\r\n },\r\n },\r\n sort: {\r\n createdAt: SortOrder.DESC,\r\n },\r\n tags,\r\n tagsOperator: LogicalOperator.AND,\r\n },\r\n });\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { AssetLike } from '../asset-gallery/asset-gallery.component';\r\n\r\n@Component({\r\n selector: 'vdr-asset-preview-links',\r\n templateUrl: './asset-preview-links.component.html',\r\n styleUrls: ['./asset-preview-links.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AssetPreviewLinksComponent {\r\n @Input() asset: AssetLike;\r\n sizes = ['tiny', 'thumb', 'small', 'medium', 'large', 'full'];\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { forkJoin, Observable } from 'rxjs';\r\n\r\nimport { GetTagList } from '../../../common/generated-types';\r\nimport { DataService } from '../../../data/providers/data.service';\r\nimport { Dialog } from '../../../providers/modal/modal.service';\r\n\r\n@Component({\r\n selector: 'vdr-manage-tags-dialog',\r\n templateUrl: './manage-tags-dialog.component.html',\r\n styleUrls: ['./manage-tags-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ManageTagsDialogComponent implements Dialog<boolean>, OnInit {\r\n resolveWith: (result: boolean | undefined) => void;\r\n allTags$: Observable<GetTagList.Items[]>;\r\n toDelete: string[] = [];\r\n toUpdate: Array<{ id: string; value: string }> = [];\r\n\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit(): void {\r\n this.allTags$ = this.dataService.product.getTagList().mapStream(data => data.tags.items);\r\n }\r\n\r\n toggleDelete(id: string) {\r\n const marked = this.markedAsDeleted(id);\r\n if (marked) {\r\n this.toDelete = this.toDelete.filter(_id => _id !== id);\r\n } else {\r\n this.toDelete.push(id);\r\n }\r\n }\r\n\r\n markedAsDeleted(id: string): boolean {\r\n return this.toDelete.includes(id);\r\n }\r\n\r\n updateTagValue(id: string, value: string) {\r\n const exists = this.toUpdate.find(i => i.id === id);\r\n if (exists) {\r\n exists.value = value;\r\n } else {\r\n this.toUpdate.push({ id, value });\r\n }\r\n }\r\n\r\n saveChanges() {\r\n const operations: Array<Observable<any>> = [];\r\n for (const id of this.toDelete) {\r\n operations.push(this.dataService.product.deleteTag(id));\r\n }\r\n for (const item of this.toUpdate) {\r\n if (!this.toDelete.includes(item.id)) {\r\n operations.push(this.dataService.product.updateTag(item));\r\n }\r\n }\r\n return forkJoin(operations).subscribe(() => this.resolveWith(true));\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { fromEvent, Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\nimport { CustomFieldConfig, GetAsset, GetAssetList, UpdateAssetInput } from '../../../common/generated-types';\r\nimport { DataService } from '../../../data/providers/data.service';\r\nimport { ModalService } from '../../../providers/modal/modal.service';\r\nimport { NotificationService } from '../../../providers/notification/notification.service';\r\nimport { Point } from '../focal-point-control/focal-point-control.component';\r\nimport { ManageTagsDialogComponent } from '../manage-tags-dialog/manage-tags-dialog.component';\r\n\r\nexport type PreviewPreset = 'tiny' | 'thumb' | 'small' | 'medium' | 'large' | '';\r\ntype AssetLike = GetAssetList.Items | GetAsset.Asset;\r\n\r\n@Component({\r\n selector: 'vdr-asset-preview',\r\n templateUrl: './asset-preview.component.html',\r\n styleUrls: ['./asset-preview.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AssetPreviewComponent implements OnInit, OnDestroy {\r\n @Input() asset: AssetLike;\r\n @Input() editable = false;\r\n @Input() customFields: CustomFieldConfig[] = [];\r\n @Input() customFieldsForm: FormGroup | undefined;\r\n @Output() assetChange = new EventEmitter<Omit<UpdateAssetInput, 'focalPoint'>>();\r\n @Output() editClick = new EventEmitter();\r\n\r\n form: FormGroup;\r\n\r\n size: PreviewPreset = 'medium';\r\n width = 0;\r\n height = 0;\r\n centered = true;\r\n settingFocalPoint = false;\r\n lastFocalPoint?: Point;\r\n @ViewChild('imageElement', { static: true }) private imageElementRef: ElementRef<HTMLImageElement>;\r\n @ViewChild('previewDiv', { static: true }) private previewDivRef: ElementRef<HTMLDivElement>;\r\n private subscription: Subscription;\r\n private sizePriorToSettingFocalPoint: PreviewPreset;\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private dataService: DataService,\r\n private notificationService: NotificationService,\r\n private changeDetector: ChangeDetectorRef,\r\n private modalService: ModalService,\r\n ) {}\r\n\r\n get fpx(): number | null {\r\n return this.asset.focalPoint ? this.asset.focalPoint.x : null;\r\n }\r\n\r\n get fpy(): number | null {\r\n return this.asset.focalPoint ? this.asset.focalPoint.y : null;\r\n }\r\n\r\n ngOnInit() {\r\n const { focalPoint } = this.asset;\r\n this.form = this.formBuilder.group({\r\n name: [this.asset.name],\r\n tags: [this.asset.tags?.map(t => t.value)],\r\n });\r\n this.subscription = this.form.valueChanges.subscribe(value => {\r\n this.assetChange.emit({\r\n id: this.asset.id,\r\n name: value.name,\r\n tags: value.tags,\r\n });\r\n });\r\n\r\n this.subscription.add(\r\n fromEvent(window, 'resize')\r\n .pipe(debounceTime(50))\r\n .subscribe(() => {\r\n this.updateDimensions();\r\n this.changeDetector.markForCheck();\r\n }),\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n getSourceFileName(): string {\r\n const parts = this.asset.source.split(/[\\\\\\/]/g);\r\n return parts[parts.length - 1];\r\n }\r\n\r\n onImageLoad() {\r\n this.updateDimensions();\r\n this.changeDetector.markForCheck();\r\n }\r\n\r\n updateDimensions() {\r\n const img = this.imageElementRef.nativeElement;\r\n const container = this.previewDivRef.nativeElement;\r\n const imgWidth = img.naturalWidth;\r\n const imgHeight = img.naturalHeight;\r\n const containerWidth = container.offsetWidth;\r\n const containerHeight = container.offsetHeight;\r\n\r\n const constrainToContainer = this.settingFocalPoint;\r\n if (constrainToContainer) {\r\n const controlsMarginPx = 48 * 2;\r\n const availableHeight = containerHeight - controlsMarginPx;\r\n const availableWidth = containerWidth;\r\n const hRatio = imgHeight / availableHeight;\r\n const wRatio = imgWidth / availableWidth;\r\n\r\n const imageExceedsAvailableDimensions = 1 < hRatio || 1 < wRatio;\r\n if (imageExceedsAvailableDimensions) {\r\n const factor = hRatio < wRatio ? wRatio : hRatio;\r\n this.width = Math.round(imgWidth / factor);\r\n this.height = Math.round(imgHeight / factor);\r\n this.centered = true;\r\n return;\r\n }\r\n }\r\n this.width = imgWidth;\r\n this.height = imgHeight;\r\n this.centered = imgWidth <= containerWidth && imgHeight <= containerHeight;\r\n }\r\n\r\n setFocalPointStart() {\r\n this.sizePriorToSettingFocalPoint = this.size;\r\n this.size = 'medium';\r\n this.settingFocalPoint = true;\r\n this.lastFocalPoint = this.asset.focalPoint || { x: 0.5, y: 0.5 };\r\n this.updateDimensions();\r\n }\r\n\r\n removeFocalPoint() {\r\n this.dataService.product\r\n .updateAsset({\r\n id: this.asset.id,\r\n focalPoint: null,\r\n })\r\n .subscribe(\r\n () => {\r\n this.notificationService.success(_('asset.update-focal-point-success'));\r\n this.asset = { ...this.asset, focalPoint: null };\r\n this.changeDetector.markForCheck();\r\n },\r\n () => this.notificationService.error(_('asset.update-focal-point-error')),\r\n );\r\n }\r\n\r\n onFocalPointChange(point: Point) {\r\n this.lastFocalPoint = point;\r\n }\r\n\r\n setFocalPointCancel() {\r\n this.settingFocalPoint = false;\r\n this.lastFocalPoint = undefined;\r\n this.size = this.sizePriorToSettingFocalPoint;\r\n }\r\n\r\n setFocalPointEnd() {\r\n this.settingFocalPoint = false;\r\n this.size = this.sizePriorToSettingFocalPoint;\r\n if (this.lastFocalPoint) {\r\n const { x, y } = this.lastFocalPoint;\r\n this.lastFocalPoint = undefined;\r\n this.dataService.product\r\n .updateAsset({\r\n id: this.asset.id,\r\n focalPoint: { x, y },\r\n })\r\n .subscribe(\r\n () => {\r\n this.notificationService.success(_('asset.update-focal-point-success'));\r\n this.asset = { ...this.asset, focalPoint: { x, y } };\r\n this.changeDetector.markForCheck();\r\n },\r\n () => this.notificationService.error(_('asset.update-focal-point-error')),\r\n );\r\n }\r\n }\r\n\r\n manageTags() {\r\n this.modalService\r\n .fromComponent(ManageTagsDialogComponent, {\r\n size: 'sm',\r\n })\r\n .subscribe(result => {\r\n if (result) {\r\n this.notificationService.success(_('common.notify-updated-tags-success'));\r\n }\r\n });\r\n }\r\n}\r\n","import { NgOption, SelectionModel } from '@ng-select/ng-select';\n\n/**\n * A custom SelectionModel for the NgSelect component which only allows a single\n * search term at a time.\n */\nexport class SingleSearchSelectionModel implements SelectionModel {\n private _selected: NgOption[] = [];\n\n get value(): NgOption[] {\n return this._selected;\n }\n\n select(item: NgOption, multiple: boolean, groupAsModel: boolean) {\n item.selected = true;\n if (groupAsModel || !item.children) {\n if ((item.value as any).label) {\n const isSearchTerm = (i: any) => !!i.value.label;\n const searchTerms = this._selected.filter(isSearchTerm);\n if (searchTerms.length > 0) {\n // there is already a search term, so replace it with this new one.\n this._selected = this._selected.filter(i => !isSearchTerm(i)).concat(item);\n } else {\n this._selected.push(item);\n }\n } else {\n this._selected.push(item);\n }\n }\n }\n\n unselect(item: NgOption, multiple: boolean) {\n this._selected = this._selected.filter(x => x !== item);\n item.selected = false;\n }\n\n clear(keepDisabled: boolean) {\n this._selected = keepDisabled ? this._selected.filter(x => x.disabled) : [];\n }\n\n private _setChildrenSelectedState(children: NgOption[], selected: boolean) {\n children.forEach(x => (x.selected = selected));\n }\n\n private _removeChildren(parent: NgOption) {\n this._selected = this._selected.filter(x => x.parent !== parent);\n }\n\n private _removeParent(parent: NgOption) {\n this._selected = this._selected.filter(x => x !== parent);\n }\n}\n\nexport function SingleSearchSelectionModelFactory() {\n return new SingleSearchSelectionModel();\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { NgSelectComponent, SELECTION_MODEL_FACTORY } from '@ng-select/ng-select';\r\nimport { notNullOrUndefined } from '@vendure/common/lib/shared-utils';\r\n\r\nimport { SearchProducts, TagFragment } from '../../../common/generated-types';\r\nimport { SingleSearchSelectionModelFactory } from '../../../common/single-search-selection-model';\r\n\r\n@Component({\r\n selector: 'vdr-asset-search-input',\r\n templateUrl: './asset-search-input.component.html',\r\n styleUrls: ['./asset-search-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [{ provide: SELECTION_MODEL_FACTORY, useValue: SingleSearchSelectionModelFactory }],\r\n})\r\nexport class AssetSearchInputComponent {\r\n @Input() tags: TagFragment[];\r\n @Output() searchTermChange = new EventEmitter<string>();\r\n @Output() tagsChange = new EventEmitter<TagFragment[]>();\r\n @ViewChild('selectComponent', { static: true }) private selectComponent: NgSelectComponent;\r\n private lastTerm = '';\r\n private lastTagIds: string[] = [];\r\n\r\n setSearchTerm(term: string | null) {\r\n if (term) {\r\n this.selectComponent.select({ label: term, value: { label: term } });\r\n } else {\r\n const currentTerm = this.selectComponent.selectedItems.find(i => !this.isTag(i.value));\r\n if (currentTerm) {\r\n this.selectComponent.unselect(currentTerm);\r\n }\r\n }\r\n }\r\n\r\n setTags(tags: TagFragment[]) {\r\n const items = this.selectComponent.items;\r\n\r\n this.selectComponent.selectedItems.forEach(item => {\r\n if (this.isTag(item.value) && !tags.map(t => t.id).includes(item.id)) {\r\n this.selectComponent.unselect(item);\r\n }\r\n });\r\n\r\n tags.map(tag => {\r\n return items?.find(item => this.isTag(item) && item.id === tag.id);\r\n })\r\n .filter(notNullOrUndefined)\r\n .forEach(item => {\r\n const isSelected = this.selectComponent.selectedItems.find(i => {\r\n const val = i.value;\r\n if (this.isTag(val)) {\r\n return val.id === item.id;\r\n }\r\n return false;\r\n });\r\n if (!isSelected) {\r\n this.selectComponent.select({ label: '', value: item });\r\n }\r\n });\r\n }\r\n\r\n filterTagResults = (term: string, item: SearchProducts.FacetValues | { label: string }) => {\r\n if (!this.isTag(item)) {\r\n return false;\r\n }\r\n return item.value.toLowerCase().startsWith(term.toLowerCase());\r\n };\r\n\r\n onSelectChange(selectedItems: Array<TagFragment | { label: string }>) {\r\n if (!Array.isArray(selectedItems)) {\r\n selectedItems = [selectedItems];\r\n }\r\n\r\n const searchTermItems = selectedItems.filter(item => !this.isTag(item));\r\n if (1 < searchTermItems.length) {\r\n for (let i = 0; i < searchTermItems.length - 1; i++) {\r\n // this.selectComponent.unselect(searchTermItems[i] as any);\r\n }\r\n }\r\n\r\n const searchTermItem = searchTermItems[searchTermItems.length - 1] as { label: string } | undefined;\r\n\r\n const searchTerm = searchTermItem ? searchTermItem.label : '';\r\n\r\n const tags = selectedItems.filter(this.isTag);\r\n\r\n if (searchTerm !== this.lastTerm) {\r\n this.searchTermChange.emit(searchTerm);\r\n this.lastTerm = searchTerm;\r\n }\r\n if (this.lastTagIds.join(',') !== tags.map(t => t.id).join(',')) {\r\n this.tagsChange.emit(tags);\r\n this.lastTagIds = tags.map(t => t.id);\r\n }\r\n }\r\n\r\n isSearchHeaderSelected(): boolean {\r\n return this.selectComponent.itemsList.markedIndex === -1;\r\n }\r\n\r\n addTagFn(item: any) {\r\n return { label: item };\r\n }\r\n\r\n private isTag = (input: unknown): input is TagFragment => {\r\n return typeof input === 'object' && !!input && input.hasOwnProperty('value');\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { BulkAction, BulkActionLocationId } from './bulk-action-types';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BulkActionRegistryService {\r\n private locationBulActionMap = new Map<BulkActionLocationId, Set<BulkAction>>();\r\n\r\n registerBulkAction(bulkAction: BulkAction) {\r\n if (!this.locationBulActionMap.has(bulkAction.location)) {\r\n this.locationBulActionMap.set(bulkAction.location, new Set([bulkAction]));\r\n } else {\r\n // tslint:disable-next-line:no-non-null-assertion\r\n this.locationBulActionMap.get(bulkAction.location)!.add(bulkAction);\r\n }\r\n }\r\n\r\n getBulkActionsForLocation(id: BulkActionLocationId): BulkAction[] {\r\n return [...(this.locationBulActionMap.get(id)?.values() ?? [])];\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Injector,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\n\r\nimport { SelectionManager } from '../../../common/utilities/selection-manager';\r\nimport { DataService } from '../../../data/providers/data.service';\r\nimport { BulkActionRegistryService } from '../../../providers/bulk-action-registry/bulk-action-registry.service';\r\nimport {\r\n BulkAction,\r\n BulkActionFunctionContext,\r\n BulkActionLocationId,\r\n} from '../../../providers/bulk-action-registry/bulk-action-types';\r\n\r\n@Component({\r\n selector: 'vdr-bulk-action-menu',\r\n templateUrl: './bulk-action-menu.component.html',\r\n styleUrls: ['./bulk-action-menu.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BulkActionMenuComponent<T = any> implements OnInit, OnDestroy {\r\n @Input() locationId: BulkActionLocationId;\r\n @Input() selectionManager: SelectionManager<T>;\r\n @Input() hostComponent: any;\r\n actions$: Observable<\r\n Array<BulkAction<T> & { display: boolean; translationVars: Record<string, string | number> }>\r\n >;\r\n userPermissions: string[] = [];\r\n\r\n private subscription: Subscription;\r\n\r\n constructor(\r\n private bulkActionRegistryService: BulkActionRegistryService,\r\n private injector: Injector,\r\n private route: ActivatedRoute,\r\n private dataService: DataService,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const actionsForLocation = this.bulkActionRegistryService.getBulkActionsForLocation(this.locationId);\r\n this.actions$ = this.selectionManager.selectionChanges$.pipe(\r\n switchMap(selection => {\r\n return Promise.all(\r\n actionsForLocation.map(async action => {\r\n let display = true;\r\n let translationVars = {};\r\n const isVisibleFn = action.isVisible;\r\n const getTranslationVarsFn = action.getTranslationVars;\r\n const functionContext: BulkActionFunctionContext<T, any> = {\r\n injector: this.injector,\r\n hostComponent: this.hostComponent,\r\n route: this.route,\r\n selection,\r\n };\r\n if (typeof isVisibleFn === 'function') {\r\n display = await isVisibleFn(functionContext);\r\n }\r\n if (typeof getTranslationVarsFn === 'function') {\r\n translationVars = await getTranslationVarsFn(functionContext);\r\n }\r\n return { ...action, display, translationVars };\r\n }),\r\n );\r\n }),\r\n );\r\n this.subscription = this.dataService.client\r\n .userStatus()\r\n .mapStream(({ userStatus }) => {\r\n this.userPermissions = userStatus.permissions;\r\n })\r\n .subscribe();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription?.unsubscribe();\r\n }\r\n\r\n hasPermissions(bulkAction: Pick<BulkAction, 'requiresPermission'>) {\r\n if (!this.userPermissions) {\r\n return false;\r\n }\r\n if (!bulkAction.requiresPermission) {\r\n return true;\r\n }\r\n if (typeof bulkAction.requiresPermission === 'string') {\r\n return this.userPermissions.includes(bulkAction.requiresPermission);\r\n }\r\n if (typeof bulkAction.requiresPermission === 'function') {\r\n return bulkAction.requiresPermission(this.userPermissions);\r\n }\r\n }\r\n\r\n actionClick(event: MouseEvent, action: BulkAction) {\r\n action.onClick({\r\n injector: this.injector,\r\n event,\r\n route: this.route,\r\n selection: this.selectionManager.selection,\r\n hostComponent: this.hostComponent,\r\n clearSelection: () => this.selectionManager.clearSelection(),\r\n });\r\n }\r\n\r\n clearSelection() {\r\n this.selectionManager.clearSelection();\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';\r\nimport { notNullOrUndefined } from '@vendure/common/lib/shared-utils';\r\nimport { Observable } from 'rxjs';\r\nimport { map, tap } from 'rxjs/operators';\r\n\r\nimport { Channel, CurrentUserChannel } from '../../../common/generated-types';\r\nimport { DataService } from '../../../data/providers/data.service';\r\n\r\n@Component({\r\n selector: 'vdr-channel-assignment-control',\r\n templateUrl: './channel-assignment-control.component.html',\r\n styleUrls: ['./channel-assignment-control.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: ChannelAssignmentControlComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class ChannelAssignmentControlComponent implements OnInit, ControlValueAccessor {\r\n @Input() multiple = true;\r\n @Input() includeDefaultChannel = true;\r\n @Input() disableChannelIds: string[] = [];\r\n\r\n channels$: Observable<CurrentUserChannel[]>;\r\n value: CurrentUserChannel[] = [];\r\n disabled = false;\r\n private onChange: (value: any) => void;\r\n private onTouched: () => void;\r\n private channels: CurrentUserChannel[] | undefined;\r\n private lastIncomingValue: any;\r\n\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit() {\r\n this.channels$ = this.dataService.client.userStatus().single$.pipe(\r\n map(({ userStatus }) =>\r\n userStatus.channels.filter(c =>\r\n this.includeDefaultChannel ? true : c.code !== DEFAULT_CHANNEL_CODE,\r\n ),\r\n ),\r\n tap(channels => {\r\n if (!this.channels) {\r\n this.channels = channels;\r\n this.mapIncomingValueToChannels(this.lastIncomingValue);\r\n } else {\r\n this.channels = channels;\r\n }\r\n }),\r\n );\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n writeValue(obj: unknown): void {\r\n this.lastIncomingValue = obj;\r\n this.mapIncomingValueToChannels(obj);\r\n }\r\n\r\n focussed() {\r\n if (this.onTouched) {\r\n this.onTouched();\r\n }\r\n }\r\n\r\n channelIsDisabled(id: string) {\r\n return this.disableChannelIds.includes(id);\r\n }\r\n\r\n valueChanged(value: CurrentUserChannel[] | CurrentUserChannel | undefined) {\r\n if (Array.isArray(value)) {\r\n this.onChange(value.map(c => c.id));\r\n } else {\r\n this.onChange([value ? value.id : undefined]);\r\n }\r\n }\r\n\r\n compareFn(c1: Channel | string, c2: Channel | string): boolean {\r\n const c1id = typeof c1 === 'string' ? c1 : c1.id;\r\n const c2id = typeof c2 === 'string' ? c2 : c2.id;\r\n return c1id === c2id;\r\n }\r\n\r\n private mapIncomingValueToChannels(value: unknown) {\r\n if (Array.isArray(value)) {\r\n if (typeof value[0] === 'string') {\r\n this.value = value\r\n .map(id => this.channels?.find(c => c.id === id))\r\n .filter(notNullOrUndefined);\r\n } else {\r\n this.value = value;\r\n }\r\n } else {\r\n if (typeof value === 'string') {\r\n const channel = this.channels?.find(c => c.id === value);\r\n if (channel) {\r\n this.value = [channel];\r\n }\r\n } else if (value && (value as any).id) {\r\n this.value = [value as any];\r\n }\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';\r\n\r\n@Component({\r\n selector: 'vdr-channel-badge',\r\n templateUrl: './channel-badge.component.html',\r\n styleUrls: ['./channel-badge.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ChannelBadgeComponent {\r\n @Input() channelCode: string;\r\n get isDefaultChannel(): boolean {\r\n return this.channelCode === DEFAULT_CHANNEL_CODE;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n/**\r\n * @description\r\n * A chip component for displaying a label with an optional action icon.\r\n *\r\n * @example\r\n * ```HTML\r\n * <vdr-chip [colorFrom]=\"item.value\"\r\n * icon=\"close\"\r\n * (iconClick)=\"clear(item)\">\r\n * {{ item.value }}</vdr-chip>\r\n * ```\r\n * @docsCategory components\r\n */\r\n@Component({\r\n selector: 'vdr-chip',\r\n templateUrl: './chip.component.html',\r\n styleUrls: ['./chip.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ChipComponent {\r\n /**\r\n * @description\r\n * The icon should be the name of one of the available Clarity icons: https://clarity.design/foundation/icons/shapes/\r\n *\r\n */\r\n @Input() icon: string;\r\n @Input() invert = false;\r\n /**\r\n * @description\r\n * If set, the chip will have an auto-generated background\r\n * color based on the string value passed in.\r\n */\r\n @Input() colorFrom = '';\r\n /**\r\n * @description\r\n * The color of the chip can also be one of the standard status colors.\r\n */\r\n @Input() colorType: 'error' | 'success' | 'warning';\r\n @Output() iconClick = new EventEmitter<MouseEvent>();\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { BehaviorSubject, combineLatest, Observable, Subscription } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { DataService } from '../../../data/providers/data.service';\r\n\r\n/**\r\n * @description\r\n * A form input control which displays currency in decimal format, whilst working\r\n * with the integer cent value in the background.\r\n *\r\n * @example\r\n * ```HTML\r\n * <vdr-currency-input\r\n * [(ngModel)]=\"entityPrice\"\r\n * [currencyCode]=\"currencyCode\"\r\n * ></vdr-currency-input>\r\n * ```\r\n *\r\n * @docsCategory components\r\n */\r\n@Component({\r\n selector: 'vdr-currency-input',\r\n templateUrl: './currency-input.component.html',\r\n styleUrls: ['./currency-input.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: CurrencyInputComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class CurrencyInputComponent implements ControlValueAccessor, OnInit, OnChanges, OnDestroy {\r\n @Input() disabled = false;\r\n @Input() readonly = false;\r\n @Input() value: number;\r\n @Input() currencyCode = '';\r\n @Output() valueChange = new EventEmitter();\r\n prefix$: Observable<string>;\r\n suffix$: Observable<string>;\r\n hasFractionPart = true;\r\n onChange: (val: any) => void;\r\n onTouch: () => void;\r\n _inputValue: string;\r\n private currencyCode$ = new BehaviorSubject<string>('');\r\n private subscription: Subscription;\r\n\r\n constructor(private dataService: DataService, private changeDetectorRef: ChangeDetectorRef) {}\r\n\r\n ngOnInit() {\r\n const languageCode$ = this.dataService.client.uiState().mapStream(data => data.uiState.language);\r\n const shouldPrefix$ = combineLatest(languageCode$, this.currencyCode$).pipe(\r\n map(([languageCode, currencyCode]) => {\r\n if (!currencyCode) {\r\n return '';\r\n }\r\n const locale = languageCode.replace(/_/g, '-');\r\n const parts = (\r\n new Intl.NumberFormat(locale, {\r\n style: 'currency',\r\n currency: currencyCode,\r\n currencyDisplay: 'symbol',\r\n }) as any\r\n ).formatToParts();\r\n const NaNString = parts.find(p => p.type === 'nan')?.value ?? 'NaN';\r\n const localised = new Intl.NumberFormat(locale, {\r\n style: 'currency',\r\n currency: currencyCode,\r\n currencyDisplay: 'symbol',\r\n }).format(undefined as any);\r\n return localised.indexOf(NaNString) > 0;\r\n }),\r\n );\r\n this.prefix$ = shouldPrefix$.pipe(map(shouldPrefix => (shouldPrefix ? this.currencyCode : '')));\r\n this.suffix$ = shouldPrefix$.pipe(map(shouldPrefix => (shouldPrefix ? '' : this.currencyCode)));\r\n\r\n this.subscription = combineLatest(languageCode$, this.currencyCode$).subscribe(\r\n ([languageCode, currencyCode]) => {\r\n if (!currencyCode) {\r\n return '';\r\n }\r\n const locale = languageCode.replace(/_/g, '-');\r\n const parts = (\r\n new Intl.NumberFormat(locale, {\r\n style: 'currency',\r\n currency: currencyCode,\r\n currencyDisplay: 'symbol',\r\n }) as any\r\n ).formatToParts(123.45);\r\n this.hasFractionPart = !!parts.find(p => p.type === 'fraction');\r\n this._inputValue = this.toNumericString(this._inputValue);\r\n },\r\n );\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if ('value' in changes) {\r\n this.writeValue(changes['value'].currentValue);\r\n }\r\n if ('currencyCode' in changes) {\r\n this.currencyCode$.next(this.currencyCode);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onInput(value: string) {\r\n const integerValue = Math.round(+value * 100);\r\n if (typeof this.onChange === 'function') {\r\n this.onChange(integerValue);\r\n }\r\n this.valueChange.emit(integerValue);\r\n const delta = Math.abs(Number(this._inputValue) - Number(value));\r\n if (0.009 < delta && delta < 0.011) {\r\n this._inputValue = this.toNumericString(value);\r\n } else {\r\n this._inputValue = value;\r\n }\r\n }\r\n\r\n onFocus() {\r\n if (typeof this.onTouch === 'function') {\r\n this.onTouch();\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n const numericValue = +value;\r\n if (!Number.isNaN(numericValue)) {\r\n this._inputValue = this.toNumericString(Math.floor(value) / 100);\r\n }\r\n }\r\n\r\n private toNumericString(value: number | string): string {\r\n return this.hasFractionPart ? Number(value).toFixed(2) : Number(value).toFixed(0);\r\n }\r\n}\r\n","import { APP_INITIALIZER, Injectable, Provider } from '@angular/core';\r\n\r\nimport { CustomDetailComponentConfig } from './custom-detail-component-types';\r\n\r\n/**\r\n * @description\r\n * Registers a {@link CustomDetailComponent} to be placed in a given location. This allows you\r\n * to embed any type of custom Angular component in the entity detail pages of the Admin UI.\r\n *\r\n * @docsCategory custom-detail-components\r\n */\r\nexport function registerCustomDetailComponent(config: CustomDetailComponentConfig): Provider {\r\n return {\r\n provide: APP_INITIALIZER,\r\n multi: true,\r\n useFactory: (customDetailComponentService: CustomDetailComponentService) => () => {\r\n customDetailComponentService.registerCustomDetailComponent(config);\r\n },\r\n deps: [CustomDetailComponentService],\r\n };\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CustomDetailComponentService {\r\n private customDetailComponents = new Map<string, CustomDetailComponentConfig[]>();\r\n\r\n registerCustomDetailComponent(config: CustomDetailComponentConfig) {\r\n if (this.customDetailComponents.has(config.locationId)) {\r\n this.customDetailComponents.get(config.locationId)?.push(config);\r\n } else {\r\n this.customDetailComponents.set(config.locationId, [config]);\r\n }\r\n }\r\n\r\n getCustomDetailComponentsFor(locationId: string): CustomDetailComponentConfig[] {\r\n return this.customDetailComponents.get(locationId) ?? [];\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n Injector,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { CustomDetailComponentLocationId } from '../../../common/component-registry-types';\r\nimport { CustomDetailComponent } from '../../../providers/custom-detail-component/custom-detail-component-types';\r\nimport { CustomDetailComponentService } from '../../../providers/custom-detail-component/custom-detail-component.service';\r\n\r\n@Component({\r\n selector: 'vdr-custom-detail-component-host',\r\n templateUrl: './custom-detail-component-host.component.html',\r\n styleUrls: ['./custom-detail-component-host.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CustomDetailComponentHostComponent implements OnInit, OnDestroy {\r\n @Input() locationId: CustomDetailComponentLocationId;\r\n @Input() entity$: Observable<any>;\r\n @Input() detailForm: FormGroup;\r\n\r\n private componentRefs: Array<ComponentRef<CustomDetailComponent>> = [];\r\n\r\n constructor(\r\n private viewContainerRef: ViewContainerRef,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private customDetailComponentService: CustomDetailComponentService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const customComponents = this.customDetailComponentService.getCustomDetailComponentsFor(\r\n this.locationId,\r\n );\r\n\r\n for (const config of customComponents) {\r\n const factory = this.componentFactoryResolver.resolveComponentFactory(config.component);\r\n const componentRef = this.viewContainerRef.createComponent(factory);\r\n componentRef.instance.entity$ = this.entity$;\r\n componentRef.instance.detailForm = this.detailForm;\r\n this.componentRefs.push(componentRef);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n for (const ref of this.componentRefs) {\r\n ref.destroy();\r\n }\r\n }\r\n}\r\n","import { Component, ComponentFactory, Input, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { InputComponentConfig } from '../../../common/component-registry-types';\r\nimport { CustomFieldConfig, CustomFieldsFragment, LanguageCode } from '../../../common/generated-types';\r\nimport { DataService } from '../../../data/providers/data.service';\r\nimport {\r\n CustomFieldComponentService,\r\n CustomFieldControl,\r\n CustomFieldEntityName,\r\n} from '../../../providers/custom-field-component/custom-field-component.service';\r\n\r\n/**\r\n * This component renders the appropriate type of form input control based\r\n * on the \"type\" property of the provided CustomFieldConfig.\r\n */\r\n@Component({\r\n selector: 'vdr-custom-field-control',\r\n templateUrl: './custom-field-control.component.html',\r\n styleUrls: ['./custom-field-control.component.scss'],\r\n})\r\nexport class CustomFieldControlComponent implements OnInit {\r\n @Input() entityName: CustomFieldEntityName;\r\n @Input('customFieldsFormGroup') formGroup: FormGroup;\r\n @Input() customField: CustomFieldsFragment;\r\n @Input() compact = false;\r\n @Input() showLabel = true;\r\n @Input() readonly = false;\r\n hasCustomControl = false;\r\n @ViewChild('customComponentPlaceholder', { read: ViewContainerRef })\r\n private customComponentPlaceholder: ViewContainerRef;\r\n\r\n private customComponentFactory: ComponentFactory<CustomFieldControl> | undefined;\r\n uiLanguage$: Observable<LanguageCode>;\r\n\r\n constructor(\r\n private dataService: DataService,\r\n private customFieldComponentService: CustomFieldComponentService,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.uiLanguage$ = this.dataService.client\r\n .uiState()\r\n .stream$.pipe(map(({ uiState }) => uiState.language));\r\n }\r\n\r\n getFieldDefinition(): CustomFieldConfig & { ui?: InputComponentConfig } {\r\n const config: CustomFieldsFragment & { ui?: InputComponentConfig } = {\r\n ...this.customField,\r\n };\r\n const id = this.customFieldComponentService.customFieldComponentExists(\r\n this.entityName,\r\n this.customField.name,\r\n );\r\n if (id) {\r\n config.ui = { component: id };\r\n }\r\n switch (config.__typename) {\r\n case 'IntCustomFieldConfig':\r\n return {\r\n ...config,\r\n min: config.intMin,\r\n max: config.intMax,\r\n step: config.intStep,\r\n };\r\n case 'FloatCustomFieldConfig':\r\n return {\r\n ...config,\r\n min: config.floatMin,\r\n max: config.floatMax,\r\n step: config.floatStep,\r\n };\r\n case 'DateTimeCustomFieldConfig':\r\n return {\r\n ...config,\r\n min: config.datetimeMin,\r\n max: config.datetimeMax,\r\n step: config.datetimeStep,\r\n };\r\n default:\r\n return {\r\n ...config,\r\n };\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { Customer } from '../../../common/generated-types';\r\n\r\n@Component({\r\n selector: 'vdr-customer-label',\r\n templateUrl: './customer-label.component.html',\r\n styleUrls: ['./customer-label.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CustomerLabelComponent {\r\n @Input() customer: Customer.Fragment;\r\n}\r\n","import { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vdr-dt-column',\r\n template: `\r\n <ng-template><ng-content></ng-content></ng-template>\r\n `,\r\n})\r\nexport class DataTableColumnComponent {\r\n /**\r\n * When set to true, this column will expand to use avaiable width\r\n */\r\n @Input() expand = false;\r\n @ViewChild(TemplateRef, { static: true }) template: TemplateRef<any>;\r\n}\r\n","import {\r\n AfterContentInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { PaginationService } from 'ngx-pagination';\r\nimport { Subscription } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { SelectionManager } from '../../../common/utilities/selection-manager';\r\n\r\nimport { DataTableColumnComponent } from './data-table-column.component';\r\n\r\n/**\r\n * @description\r\n * A table for displaying PaginatedList results. It is designed to be used inside components which\r\n * extend the {@link BaseListComponent} class.\r\n *\r\n * @example\r\n * ```HTML\r\n * <vdr-data-table\r\n * [items]=\"items$ | async\"\r\n * [itemsPerPage]=\"itemsPerPage$ | async\"\r\n * [totalItems]=\"totalItems$ | async\"\r\n * [currentPage]=\"currentPage$ | async\"\r\n * (pageChange)=\"setPageNumber($event)\"\r\n * (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n * >\r\n * <!-- The header columns are defined first -->\r\n * <vdr-dt-column>{{ 'common.name' | translate }}</vdr-dt-column>\r\n * <vdr-dt-column></vdr-dt-column>\r\n * <vdr-dt-column></vdr-dt-column>\r\n *\r\n * <!-- Then we define how a row is rendered -->\r\n * <ng-template let-taxRate=\"item\">\r\n * <td class=\"left align-middle\">{{ taxRate.name }}</td>\r\n * <td class=\"left align-middle\">{{ taxRate.category.name }}</td>\r\n * <td class=\"left align-middle\">{{ taxRate.zone.name }}</td>\r\n * <td class=\"left align-middle\">{{ taxRate.value }}%</td>\r\n * <td class=\"right align-middle\">\r\n * <vdr-table-row-action\r\n * iconShape=\"edit\"\r\n * [label]=\"'common.edit' | translate\"\r\n * [linkTo]=\"['./', taxRate.id]\"\r\n * ></vdr-table-row-action>\r\n * </td>\r\n * <td class=\"right align-middle\">\r\n * <vdr-dropdown>\r\n * <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n * {{ 'common.actions' | translate }}\r\n * <clr-icon shape=\"caret down\"></clr-icon>\r\n * </button>\r\n * <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n * <button\r\n * type=\"button\"\r\n * class=\"delete-button\"\r\n * (click)=\"deleteTaxRate(taxRate)\"\r\n * [disabled]=\"!(['DeleteSettings', 'DeleteTaxRate'] | hasPermission)\"\r\n * vdrDropdownItem\r\n * >\r\n * <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n * {{ 'common.delete' | translate }}\r\n * </button>\r\n * </vdr-dropdown-menu>\r\n * </vdr-dropdown>\r\n * </td>\r\n * </ng-template>\r\n * </vdr-data-table>\r\n * ```\r\n *\r\n * @docsCategory components\r\n */\r\n@Component({\r\n selector: 'vdr-data-table',\r\n templateUrl: 'data-table.component.html',\r\n styleUrls: ['data-table.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [PaginationService],\r\n})\r\nexport class DataTableComponent<T> implements AfterContentInit, OnChanges, OnInit, OnDestroy {\r\n @Input() items: T[];\r\n @Input() itemsPerPage: number;\r\n @Input() currentPage: number;\r\n @Input() totalItems: number;\r\n @Input() emptyStateLabel: string;\r\n @Input() selectionManager?: SelectionManager<T>;\r\n @Output() pageChange = new EventEmitter<number>();\r\n @Output() itemsPerPageChange = new EventEmitter<number>();\r\n\r\n /** @deprecated pass a SelectionManager instance instead */\r\n @Input() allSelected: boolean;\r\n /** @deprecated pass a SelectionManager instance instead */\r\n @Input() isRowSelectedFn: (item: T) => boolean;\r\n /** @deprecated pass a SelectionManager instance instead */\r\n @Output() allSelectChange = new EventEmitter<void>();\r\n /** @deprecated pass a SelectionManager instance instead */\r\n @Output() rowSelectChange = new EventEmitter<{ event: MouseEvent; item: T }>();\r\n\r\n @ContentChildren(DataTableColumnComponent) columns: QueryList<DataTableColumnComponent>;\r\n @ContentChildren(TemplateRef) templateRefs: QueryList<TemplateRef<any>>;\r\n rowTemplate: TemplateRef<any>;\r\n currentStart: number;\r\n currentEnd: number;\r\n // This is used to apply a `user-select: none` CSS rule to the table,\r\n // which allows shift-click multi-row selection\r\n disableSelect = false;\r\n private subscription: Subscription | undefined;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {}\r\n\r\n private shiftDownHandler = (event: KeyboardEvent) => {\r\n if (event.shiftKey && !this.disableSelect) {\r\n this.disableSelect = true;\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n };\r\n\r\n private shiftUpHandler = (event: KeyboardEvent) => {\r\n if (this.disableSelect) {\r\n this.disableSelect = false;\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n };\r\n\r\n ngOnInit() {\r\n if (typeof this.isRowSelectedFn === 'function' || this.selectionManager) {\r\n document.addEventListener('keydown', this.shiftDownHandler, { passive: true });\r\n document.addEventListener('keyup', this.shiftUpHandler, { passive: true });\r\n }\r\n\r\n this.subscription = this.selectionManager?.selectionChanges$.subscribe(() =>\r\n this.changeDetectorRef.markForCheck(),\r\n );\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.items) {\r\n this.currentStart = this.itemsPerPage * (this.currentPage - 1);\r\n this.currentEnd = this.currentStart + changes.items.currentValue?.length;\r\n this.selectionManager?.setCurrentItems(this.items);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (typeof this.isRowSelectedFn === 'function' || this.selectionManager) {\r\n document.removeEventListener('keydown', this.shiftDownHandler);\r\n document.removeEventListener('keyup', this.shiftUpHandler);\r\n }\r\n this.subscription?.unsubscribe();\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.rowTemplate = this.templateRefs.last;\r\n }\r\n\r\n trackByFn(index: number, item: any) {\r\n if ((item as any).id != null) {\r\n return (item as any).id;\r\n } else {\r\n return index;\r\n }\r\n }\r\n\r\n onToggleAllClick() {\r\n this.allSelectChange.emit();\r\n this.selectionManager?.toggleSelectAll();\r\n }\r\n\r\n onRowClick(item: T, event: MouseEvent) {\r\n this.rowSelectChange.emit({ event, item });\r\n this.selectionManager?.toggleSelection(item, event);\r\n }\r\n}\r\n","import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\n\r\nimport { DayOfWeek } from './types';\r\n\r\nexport const dayOfWeekIndex: { [day in DayOfWeek]: number } = {\r\n sun: 0,\r\n mon: 1,\r\n tue: 2,\r\n wed: 3,\r\n thu: 4,\r\n fri: 5,\r\n sat: 6,\r\n};\r\n\r\nexport const weekDayNames = [\r\n _('datetime.weekday-su'),\r\n _('datetime.weekday-mo'),\r\n _('datetime.weekday-tu'),\r\n _('datetime.weekday-we'),\r\n _('datetime.weekday-th'),\r\n _('datetime.weekday-fr'),\r\n _('datetime.weekday-sa'),\r\n];\r\n","import { Injectable } from '@angular/core';\r\nimport dayjs from 'dayjs';\r\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { dayOfWeekIndex } from './constants';\r\nimport { CalendarView, DayCell, DayOfWeek } from './types';\r\n\r\n@Injectable()\r\nexport class DatetimePickerService {\r\n calendarView$: Observable<CalendarView>;\r\n selected$: Observable<Date | null>;\r\n viewing$: Observable<Date>;\r\n private selectedDatetime$ = new BehaviorSubject<dayjs.Dayjs | null>(null);\r\n private viewingDatetime$ = new BehaviorSubject<dayjs.Dayjs>(dayjs());\r\n private weekStartDayIndex: number;\r\n private min: dayjs.Dayjs | null = null;\r\n private max: dayjs.Dayjs | null = null;\r\n private jumping = false;\r\n\r\n constructor() {\r\n this.selected$ = this.selectedDatetime$.pipe(map(value => value && value.toDate()));\r\n this.viewing$ = this.viewingDatetime$.pipe(map(value => value.toDate()));\r\n this.weekStartDayIndex = dayOfWeekIndex['mon'];\r\n this.calendarView$ = combineLatest(this.viewingDatetime$, this.selectedDatetime$).pipe(\r\n map(([viewing, selected]) => this.generateCalendarView(viewing, selected)),\r\n );\r\n }\r\n\r\n setWeekStartingDay(weekStartDay: DayOfWeek) {\r\n this.weekStartDayIndex = dayOfWeekIndex[weekStartDay];\r\n }\r\n\r\n setMin(min?: string | null) {\r\n if (typeof min === 'string') {\r\n this.min = dayjs(min);\r\n }\r\n }\r\n\r\n setMax(max?: string | null) {\r\n if (typeof max === 'string') {\r\n this.max = dayjs(max);\r\n }\r\n }\r\n\r\n selectDatetime(date: Date | string | dayjs.Dayjs | null) {\r\n let viewingValue: dayjs.Dayjs;\r\n let selectedValue: dayjs.Dayjs | null = null;\r\n if (date == null || date === '') {\r\n viewingValue = dayjs();\r\n } else {\r\n viewingValue = dayjs(date);\r\n selectedValue = dayjs(date);\r\n }\r\n\r\n this.selectedDatetime$.next(selectedValue);\r\n this.viewingDatetime$.next(viewingValue);\r\n }\r\n\r\n selectHour(hourOfDay: number) {\r\n const current = this.selectedDatetime$.value || dayjs();\r\n const next = current.hour(hourOfDay);\r\n this.selectedDatetime$.next(next);\r\n this.viewingDatetime$.next(next);\r\n }\r\n\r\n selectMinute(minutePastHour: number) {\r\n const current = this.selectedDatetime$.value || dayjs();\r\n const next = current.minute(minutePastHour);\r\n this.selectedDatetime$.next(next);\r\n this.viewingDatetime$.next(next);\r\n }\r\n\r\n viewNextMonth() {\r\n this.jumping = false;\r\n const current = this.viewingDatetime$.value;\r\n this.viewingDatetime$.next(current.add(1, 'month'));\r\n }\r\n\r\n viewPrevMonth() {\r\n this.jumping = false;\r\n const current = this.viewingDatetime$.value;\r\n this.viewingDatetime$.next(current.subtract(1, 'month'));\r\n }\r\n\r\n viewToday() {\r\n this.jumping = false;\r\n this.viewingDatetime$.next(dayjs());\r\n }\r\n\r\n viewJumpDown() {\r\n this.jumping = true;\r\n const current = this.viewingDatetime$.value;\r\n this.viewingDatetime$.next(current.add(1, 'week'));\r\n }\r\n\r\n viewJumpUp() {\r\n this.jumping = true;\r\n const current = this.viewingDatetime$.value;\r\n this.viewingDatetime$.next(current.subtract(1, 'week'));\r\n }\r\n\r\n viewJumpRight() {\r\n this.jumping = true;\r\n const current = this.viewingDatetime$.value;\r\n this.viewingDatetime$.next(current.add(1, 'day'));\r\n }\r\n\r\n viewJumpLeft() {\r\n this.jumping = true;\r\n const current = this.viewingDatetime$.value;\r\n this.viewingDatetime$.next(current.subtract(1, 'day'));\r\n }\r\n\r\n selectToday() {\r\n this.jumping = false;\r\n this.selectDatetime(dayjs());\r\n }\r\n\r\n selectViewed() {\r\n this.jumping = false;\r\n this.selectDatetime(this.viewingDatetime$.value);\r\n }\r\n\r\n viewMonth(month: number) {\r\n this.jumping = false;\r\n const current = this.viewingDatetime$.value;\r\n this.viewingDatetime$.next(current.month(month - 1));\r\n }\r\n\r\n viewYear(year: number) {\r\n this.jumping = false;\r\n const current = this.viewingDatetime$.value;\r\n this.viewingDatetime$.next(current.year(year));\r\n }\r\n\r\n private generateCalendarView(viewing: dayjs.Dayjs, selected: dayjs.Dayjs | null): CalendarView {\r\n if (!viewing.isValid() || (selected && !selected.isValid())) {\r\n return [];\r\n }\r\n const start = viewing.startOf('month');\r\n const end = viewing.endOf('month');\r\n const today = dayjs();\r\n const daysInMonth = viewing.daysInMonth();\r\n const selectedDayOfMonth = selected && selected.get('date');\r\n\r\n const startDayOfWeek = start.day();\r\n const startIndex = (7 + (startDayOfWeek - this.weekStartDayIndex)) % 7;\r\n\r\n const calendarView: CalendarView = [];\r\n let week: DayCell[] = [];\r\n\r\n // Add the days at the tail of the previous month\r\n if (0 < startIndex) {\r\n const prevMonth = viewing.subtract(1, 'month');\r\n const daysInPrevMonth = prevMonth.daysInMonth();\r\n const prevIsCurrentMonth = prevMonth.isSame(today, 'month');\r\n for (let i = daysInPrevMonth - startIndex + 1; i <= daysInPrevMonth; i++) {\r\n const thisDay = viewing.subtract(1, 'month').date(i);\r\n week.push({\r\n dayOfMonth: i,\r\n selected: false,\r\n inCurrentMonth: false,\r\n isToday: prevIsCurrentMonth && today.get('date') === i,\r\n isViewing: false,\r\n disabled: !this.isInBounds(thisDay),\r\n select: () => {\r\n this.selectDatetime(thisDay);\r\n },\r\n });\r\n }\r\n }\r\n\r\n // Add this month's days\r\n const isCurrentMonth = viewing.isSame(today, 'month');\r\n for (let i = 1; i <= daysInMonth; i++) {\r\n if ((i + startIndex - 1) % 7 === 0) {\r\n calendarView.push(week);\r\n week = [];\r\n }\r\n const thisDay = start.add(i - 1, 'day');\r\n const isViewingThisMonth =\r\n !!selected && selected.isSame(viewing, 'month') && selected.isSame(viewing, 'year');\r\n week.push({\r\n dayOfMonth: i,\r\n selected: i === selectedDayOfMonth && isViewingThisMonth,\r\n inCurrentMonth: true,\r\n isToday: isCurrentMonth && today.get('date') === i,\r\n isViewing: this.jumping && viewing.date() === i,\r\n disabled: !this.isInBounds(thisDay),\r\n select: () => {\r\n this.selectDatetime(thisDay);\r\n },\r\n });\r\n }\r\n\r\n // Add the days at the start of the next month\r\n const emptyCellsEnd = 7 - ((startIndex + daysInMonth) % 7);\r\n if (emptyCellsEnd !== 7) {\r\n const nextMonth = viewing.add(1, 'month');\r\n const nextIsCurrentMonth = nextMonth.isSame(today, 'month');\r\n\r\n for (let i = 1; i <= emptyCellsEnd; i++) {\r\n const thisDay = end.add(i, 'day');\r\n week.push({\r\n dayOfMonth: i,\r\n selected: false,\r\n inCurrentMonth: false,\r\n isToday: nextIsCurrentMonth && today.get('date') === i,\r\n isViewing: false,\r\n disabled: !this.isInBounds(thisDay),\r\n select: () => {\r\n this.selectDatetime(thisDay);\r\n },\r\n });\r\n }\r\n }\r\n calendarView.push(week);\r\n return calendarView;\r\n }\r\n\r\n private isInBounds(date: dayjs.Dayjs): boolean {\r\n if (this.min && this.min.isAfter(date)) {\r\n return false;\r\n }\r\n if (this.max && this.max.isBefore(date)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { map, tap } from 'rxjs/operators';\r\n\r\nimport { DropdownComponent } from '../dropdown/dropdown.component';\r\n\r\nimport { dayOfWeekIndex, weekDayNames } from './constants';\r\nimport { DatetimePickerService } from './datetime-picker.service';\r\nimport { CalendarView, DayCell, DayOfWeek } from './types';\r\n\r\nexport type CurrentView = {\r\n date: Date;\r\n month: number;\r\n year: number;\r\n};\r\n\r\n/**\r\n * @description\r\n * A form input for selecting datetime values.\r\n *\r\n * @example\r\n * ```HTML\r\n * <vdr-datetime-picker [(ngModel)]=\"startDate\"></vdr-datetime-picker>\r\n * ```\r\n *\r\n * @docsCategory components\r\n */\r\n@Component({\r\n selector: 'vdr-datetime-picker',\r\n templateUrl: './datetime-picker.component.html',\r\n styleUrls: ['./datetime-picker.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n DatetimePickerService,\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: DatetimePickerComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class DatetimePickerComponent implements ControlValueAccessor, AfterViewInit, OnInit, OnDestroy {\r\n /**\r\n * @description\r\n * The range above and below the current year which is selectable from\r\n * the year select control. If a min or max value is set, these will\r\n * override the yearRange.\r\n */\r\n @Input() yearRange;\r\n /**\r\n * @description\r\n * The day that the week should start with in the calendar view.\r\n */\r\n @Input() weekStartDay: DayOfWeek = 'mon';\r\n /**\r\n * @description\r\n * The granularity of the minutes time picker\r\n */\r\n @Input() timeGranularityInterval = 5;\r\n /**\r\n * @description\r\n * The minimum date as an ISO string\r\n */\r\n @Input() min: string | null = null;\r\n /**\r\n * @description\r\n * The maximum date as an ISO string\r\n */\r\n @Input() max: string | null = null;\r\n /**\r\n * @description\r\n * Sets the readonly state\r\n */\r\n @Input() readonly = false;\r\n\r\n @ViewChild('dropdownComponent', { static: true }) dropdownComponent: DropdownComponent;\r\n @ViewChild('datetimeInput', { static: true }) datetimeInput: ElementRef<HTMLInputElement>;\r\n @ViewChild('calendarTable') calendarTable: ElementRef<HTMLTableElement>;\r\n\r\n disabled = false;\r\n calendarView$: Observable<CalendarView>;\r\n current$: Observable<CurrentView>;\r\n selected$: Observable<Date | null>;\r\n selectedHours$: Observable<number | null>;\r\n selectedMinutes$: Observable<number | null>;\r\n years: number[];\r\n weekdays: string[] = [];\r\n hours: number[];\r\n minutes: number[];\r\n private onChange: (val: any) => void;\r\n private onTouch: () => void;\r\n private subscription: Subscription;\r\n\r\n constructor(\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private datetimePickerService: DatetimePickerService,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.datetimePickerService.setWeekStartingDay(this.weekStartDay);\r\n this.datetimePickerService.setMin(this.min);\r\n this.datetimePickerService.setMax(this.max);\r\n this.populateYearsSelection();\r\n this.populateWeekdays();\r\n this.populateHours();\r\n this.populateMinutes();\r\n this.calendarView$ = this.datetimePickerService.calendarView$;\r\n this.current$ = this.datetimePickerService.viewing$.pipe(\r\n map(date => ({\r\n date,\r\n month: date.getMonth() + 1,\r\n year: date.getFullYear(),\r\n })),\r\n );\r\n this.selected$ = this.datetimePickerService.selected$;\r\n this.selectedHours$ = this.selected$.pipe(map(date => date && date.getHours()));\r\n this.selectedMinutes$ = this.selected$.pipe(map(date => date && date.getMinutes()));\r\n this.subscription = this.datetimePickerService.selected$.subscribe(val => {\r\n if (this.onChange) {\r\n this.onChange(val == null ? val : val.toISOString());\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.dropdownComponent.onOpenChange(isOpen => {\r\n if (isOpen) {\r\n this.calendarTable.nativeElement.focus();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n writeValue(value: string | null) {\r\n this.datetimePickerService.selectDatetime(value);\r\n }\r\n\r\n prevMonth() {\r\n this.datetimePickerService.viewPrevMonth();\r\n }\r\n\r\n nextMonth() {\r\n this.datetimePickerService.viewNextMonth();\r\n }\r\n\r\n selectToday() {\r\n this.datetimePickerService.selectToday();\r\n }\r\n\r\n setYear(event: Event) {\r\n const target = event.target as HTMLSelectElement;\r\n this.datetimePickerService.viewYear(parseInt(target.value, 10));\r\n }\r\n\r\n setMonth(event: Event) {\r\n const target = event.target as HTMLSelectElement;\r\n this.datetimePickerService.viewMonth(parseInt(target.value, 10));\r\n }\r\n\r\n selectDay(day: DayCell) {\r\n if (day.disabled) {\r\n return;\r\n }\r\n day.select();\r\n }\r\n\r\n clearValue() {\r\n this.datetimePickerService.selectDatetime(null);\r\n }\r\n\r\n handleCalendarKeydown(event: KeyboardEvent) {\r\n switch (event.key) {\r\n case 'ArrowDown':\r\n return this.datetimePickerService.viewJumpDown();\r\n case 'ArrowUp':\r\n return this.datetimePickerService.viewJumpUp();\r\n case 'ArrowRight':\r\n return this.datetimePickerService.viewJumpRight();\r\n case 'ArrowLeft':\r\n return this.datetimePickerService.viewJumpLeft();\r\n case 'Enter':\r\n return this.datetimePickerService.selectViewed();\r\n }\r\n }\r\n\r\n setHour(event: Event) {\r\n const target = event.target as HTMLSelectElement;\r\n this.datetimePickerService.selectHour(parseInt(target.value, 10));\r\n }\r\n\r\n setMinute(event: Event) {\r\n const target = event.target as HTMLSelectElement;\r\n this.datetimePickerService.selectMinute(parseInt(target.value, 10));\r\n }\r\n\r\n closeDatepicker() {\r\n this.dropdownComponent.toggleOpen();\r\n this.datetimeInput.nativeElement.focus();\r\n }\r\n\r\n private populateYearsSelection() {\r\n const yearRange = this.yearRange ?? 10;\r\n const currentYear = new Date().getFullYear();\r\n const min = (this.min && new Date(this.min).getFullYear()) || currentYear - yearRange;\r\n const max = (this.max && new Date(this.max).getFullYear()) || currentYear + yearRange;\r\n const spread = max - min + 1;\r\n this.years = Array.from({ length: spread }).map((_, i) => min + i);\r\n }\r\n\r\n private populateWeekdays() {\r\n const weekStartDayIndex = dayOfWeekIndex[this.weekStartDay];\r\n for (let i = 0; i < 7; i++) {\r\n this.weekdays.push(weekDayNames[(i + weekStartDayIndex + 0) % 7]);\r\n }\r\n }\r\n\r\n private populateHours() {\r\n this.hours = Array.from({ length: 24 }).map((_, i) => i);\r\n }\r\n\r\n private populateMinutes() {\r\n const minutes: number[] = [];\r\n for (let i = 0; i < 60; i += this.timeGranularityInterval) {\r\n minutes.push(i);\r\n }\r\n this.minutes = minutes;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ElementRef, Input } from '@angular/core';\r\n\r\n/**\r\n * @description\r\n * Used for building dropdown menus.\r\n *\r\n * @example\r\n * ```HTML\r\n * <vdr-dropdown>\r\n * <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n * <clr-icon shape=\"plus\"></clr-icon>\r\n * Select type\r\n * </button>\r\n * <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n * <button\r\n * *ngFor=\"let typeName of allTypes\"\r\n * type=\"button\"\r\n * vdrDropdownItem\r\n * (click)=\"selectType(typeName)\"\r\n * >\r\n * typeName\r\n * </button>\r\n * </vdr-dropdown-menu>\r\n * </vdr-dropdown>\r\n * ```\r\n * @docsCategory components\r\n */\r\n@Component({\r\n selector: 'vdr-dropdown',\r\n templateUrl: './dropdown.component.html',\r\n styleUrls: ['./dropdown.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DropdownComponent {\r\n private isOpen = false;\r\n private onOpenChangeCallbacks: Array<(isOpen: boolean) => void> = [];\r\n public trigger: ElementRef;\r\n @Input() manualToggle = false;\r\n\r\n onClick() {\r\n if (!this.manualToggle) {\r\n this.toggleOpen();\r\n }\r\n }\r\n\r\n toggleOpen() {\r\n this.isOpen = !this.isOpen;\r\n this.onOpenChangeCallbacks.forEach(fn => fn(this.isOpen));\r\n }\r\n\r\n onOpenChange(callback: (isOpen: boolean) => void) {\r\n this.onOpenChangeCallbacks.push(callback);\r\n }\r\n\r\n setTriggerElement(elementRef: ElementRef) {\r\n this.trigger = elementRef;\r\n }\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\n\r\nimport { DropdownComponent } from './dropdown.component';\r\n\r\n@Directive({\r\n selector: '[vdrDropdownItem]',\r\n // tslint:disable-next-line\r\n host: { '[class.dropdown-item]': 'true' },\r\n})\r\nexport class DropdownItemDirective {\r\n constructor(private dropdown: DropdownComponent) {}\r\n\r\n @HostListener('click', ['$event'])\r\n onDropdownItemClick(event: any): void {\r\n this.dropdown.onClick();\r\n }\r\n}\r\n","import {\r\n ConnectedPosition,\r\n HorizontalConnectionPos,\r\n Overlay,\r\n OverlayRef,\r\n PositionStrategy,\r\n VerticalConnectionPos,\r\n} from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n ElementRef,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n TemplateRef,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { DropdownTriggerDirective } from './dropdown-trigger.directive';\r\nimport { DropdownComponent } from './dropdown.component';\r\n\r\nexport type DropdownPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';\r\n\r\n/**\r\n * A dropdown menu modelled on the Clarity Dropdown component (https://v1.clarity.design/dropdowns).\r\n *\r\n * This was created because the Clarity implementation (at this time) does not handle edge detection. Instead\r\n * we make use of the Angular CDK's Overlay module to manage the positioning.\r\n *\r\n * The API of this component (and its related Components & Directives) are based on the Clarity version,\r\n * albeit only a subset which is currently used in this application.\r\n */\r\n@Component({\r\n selector: 'vdr-dropdown-menu',\r\n template: `\r\n <ng-template #menu>\r\n <div class=\"dropdown open\">\r\n <div class=\"dropdown-menu\" [ngClass]=\"customClasses\">\r\n <div class=\"dropdown-content-wrapper\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n `,\r\n styleUrls: ['./dropdown-menu.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DropdownMenuComponent implements AfterViewInit, OnInit, OnDestroy {\r\n @Input('vdrPosition') private position: DropdownPosition = 'bottom-left';\r\n @Input() customClasses: string;\r\n @ViewChild('menu', { static: true }) private menuTemplate: TemplateRef<any>;\r\n private menuPortal: TemplatePortal<any>;\r\n private overlayRef: OverlayRef;\r\n private backdropClickSub: Subscription;\r\n\r\n constructor(\r\n private overlay: Overlay,\r\n private viewContainerRef: ViewContainerRef,\r\n private dropdown: DropdownComponent,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.dropdown.onOpenChange(isOpen => {\r\n if (isOpen) {\r\n this.overlayRef.attach(this.menuPortal);\r\n } else {\r\n this.overlayRef.detach();\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.overlayRef = this.overlay.create({\r\n hasBackdrop: true,\r\n backdropClass: 'clear-backdrop',\r\n positionStrategy: this.getPositionStrategy(),\r\n maxHeight: '70vh',\r\n });\r\n this.menuPortal = new TemplatePortal(this.menuTemplate, this.viewContainerRef);\r\n this.backdropClickSub = this.overlayRef.backdropClick().subscribe(() => {\r\n this.dropdown.toggleOpen();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.overlayRef) {\r\n this.overlayRef.dispose();\r\n }\r\n if (this.backdropClickSub) {\r\n this.backdropClickSub.unsubscribe();\r\n }\r\n }\r\n\r\n private getPositionStrategy(): PositionStrategy {\r\n const position: { [K in DropdownPosition]: ConnectedPosition } = {\r\n ['top-left']: {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom',\r\n },\r\n ['top-right']: {\r\n originX: 'end',\r\n originY: 'top',\r\n overlayX: 'end',\r\n overlayY: 'bottom',\r\n },\r\n ['bottom-left']: {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n },\r\n ['bottom-right']: {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'top',\r\n },\r\n };\r\n\r\n const pos = position[this.position];\r\n\r\n return this.overlay\r\n .position()\r\n .flexibleConnectedTo(this.dropdown.trigger)\r\n .withPositions([pos, this.invertPosition(pos)])\r\n .withViewportMargin(12)\r\n .withPush(true);\r\n }\r\n\r\n /** Inverts an overlay position. */\r\n private invertPosition(pos: ConnectedPosition): ConnectedPosition {\r\n const inverted = { ...pos };\r\n inverted.originY = pos.originY === 'top' ? 'bottom' : 'top';\r\n inverted.overlayY = pos.overlayY === 'top' ? 'bottom' : 'top';\r\n\r\n return inverted;\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\n\nimport { DropdownComponent } from './dropdown.component';\n\n@Directive({\n selector: '[vdrDropdownTrigger]',\n})\nexport class DropdownTriggerDirective {\n constructor(private dropdown: DropdownComponent, private elementRef: ElementRef) {\n dropdown.setTriggerElement(this.elementRef);\n }\n\n @HostListener('click', ['$event'])\n onDropdownTriggerClick(event: any): void {\n this.dropdown.toggleOpen();\n }\n}\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\n\r\nimport { Dialog } from '../../../providers/modal/modal.service';\r\n\r\n@Component({\r\n selector: 'vdr-edit-note-dialog',\r\n templateUrl: './edit-note-dialog.component.html',\r\n styleUrls: ['./edit-note-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EditNoteDialogComponent implements Dialog<{ note: string; isPrivate?: boolean }> {\r\n displayPrivacyControls = true;\r\n noteIsPrivate = true;\r\n note = '';\r\n resolveWith: (result?: { note: string; isPrivate?: boolean }) => void;\r\n\r\n confirm() {\r\n this.resolveWith({\r\n note: this.note,\r\n isPrivate: this.noteIsPrivate,\r\n });\r\n }\r\n\r\n cancel() {\r\n this.resolveWith();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vdr-empty-placeholder',\r\n templateUrl: './empty-placeholder.component.html',\r\n styleUrls: ['./empty-placeholder.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EmptyPlaceholderComponent {\r\n @Input() emptyStateLabel: string;\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vdr-entity-info',\r\n templateUrl: './entity-info.component.html',\r\n styleUrls: ['./entity-info.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EntityInfoComponent {\r\n @Input() small = false;\r\n @Input() entity: { id: string; createdAt?: string; updatedAt?: string };\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\r\nimport { ActiveRouteData, ExtensionMessage, MessageResponse } from '@vendure/common/lib/extension-host-types';\r\nimport { assertNever } from '@vendure/common/lib/shared-utils';\r\nimport { parse } from 'graphql';\r\nimport { merge, Observer, Subject } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\n\r\nimport { DataService } from '../../../data/providers/data.service';\r\nimport { NotificationService } from '../../../providers/notification/notification.service';\r\n\r\n@Injectable()\r\nexport class ExtensionHostService implements OnDestroy {\r\n private extensionWindow: Window;\r\n private routeSnapshot: ActivatedRouteSnapshot;\r\n private cancellationMessage$ = new Subject<string>();\r\n private destroyMessage$ = new Subject<void>();\r\n\r\n constructor(private dataService: DataService, private notificationService: NotificationService) {}\r\n\r\n init(extensionWindow: Window, routeSnapshot: ActivatedRouteSnapshot) {\r\n this.extensionWindow = extensionWindow;\r\n this.routeSnapshot = routeSnapshot;\r\n window.addEventListener('message', this.handleMessage);\r\n }\r\n\r\n destroy() {\r\n window.removeEventListener('message', this.handleMessage);\r\n this.destroyMessage$.next();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy();\r\n }\r\n\r\n private handleMessage = (message: MessageEvent<ExtensionMessage>) => {\r\n const { data, origin } = message;\r\n if (this.isExtensionMessage(data)) {\r\n const cancellation$ = this.cancellationMessage$.pipe(\r\n filter(requestId => requestId === data.requestId),\r\n );\r\n const end$ = merge(cancellation$, this.destroyMessage$);\r\n switch (data.type) {\r\n case 'cancellation': {\r\n this.cancellationMessage$.next(data.requestId);\r\n break;\r\n }\r\n case 'destroy': {\r\n this.destroyMessage$.next();\r\n break;\r\n }\r\n case 'active-route': {\r\n const routeData: ActiveRouteData = {\r\n url: window.location.href,\r\n origin: window.location.origin,\r\n pathname: window.location.pathname,\r\n params: this.routeSnapshot.params,\r\n queryParams: this.routeSnapshot.queryParams,\r\n fragment: this.routeSnapshot.fragment,\r\n };\r\n this.sendMessage(\r\n { data: routeData, error: false, complete: false, requestId: data.requestId },\r\n origin,\r\n );\r\n this.sendMessage(\r\n { data: null, error: false, complete: true, requestId: data.requestId },\r\n origin,\r\n );\r\n break;\r\n }\r\n case 'graphql-query': {\r\n const { document, variables, fetchPolicy } = data.data;\r\n this.dataService\r\n .query(parse(document), variables, fetchPolicy)\r\n .stream$.pipe(takeUntil(end$))\r\n .subscribe(this.createObserver(data.requestId, origin));\r\n break;\r\n }\r\n case 'graphql-mutation': {\r\n const { document, variables } = data.data;\r\n this.dataService\r\n .mutate(parse(document), variables)\r\n .pipe(takeUntil(end$))\r\n .subscribe(this.createObserver(data.requestId, origin));\r\n break;\r\n }\r\n case 'notification': {\r\n this.notificationService.notify(data.data);\r\n break;\r\n }\r\n default:\r\n assertNever(data);\r\n }\r\n }\r\n };\r\n\r\n private createObserver(requestId: string, origin: string): Observer<any> {\r\n return {\r\n next: data => this.sendMessage({ data, error: false, complete: false, requestId }, origin),\r\n error: err => this.sendMessage({ data: err, error: true, complete: false, requestId }, origin),\r\n complete: () => this.sendMessage({ data: null, error: false, complete: true, requestId }, origin),\r\n };\r\n }\r\n\r\n private sendMessage(response: MessageResponse, origin: string) {\r\n this.extensionWindow.postMessage(response, origin);\r\n }\r\n\r\n private isExtensionMessage(input: any): input is ExtensionMessage {\r\n return (\r\n input.hasOwnProperty('type') && input.hasOwnProperty('data') && input.hasOwnProperty('requestId')\r\n );\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { ExtensionHostConfig } from './extension-host-config';\r\nimport { ExtensionHostService } from './extension-host.service';\r\n\r\n/**\r\n * This component uses an iframe to embed an external url into the Admin UI, and uses the PostMessage\r\n * protocol to allow cross-frame communication between the two frames.\r\n */\r\n@Component({\r\n selector: 'vdr-extension-host',\r\n templateUrl: './extension-host.component.html',\r\n styleUrls: ['./extension-host.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n providers: [ExtensionHostService],\r\n})\r\nexport class ExtensionHostComponent implements OnInit, AfterViewInit, OnDestroy {\r\n extensionUrl: SafeResourceUrl;\r\n openInIframe = true;\r\n extensionWindowIsOpen = false;\r\n private config: ExtensionHostConfig;\r\n private extensionWindow?: Window;\r\n @ViewChild('extensionFrame') private extensionFrame: ElementRef<HTMLIFrameElement>;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private sanitizer: DomSanitizer,\r\n private extensionHostService: ExtensionHostService,\r\n ) {}\r\n\r\n ngOnInit() {\r\n const { data } = this.route.snapshot;\r\n if (!this.isExtensionHostConfig(data.extensionHostConfig)) {\r\n throw new Error(\r\n `Expected an ExtensionHostConfig object, got ${JSON.stringify(data.extensionHostConfig)}`,\r\n );\r\n }\r\n this.config = data.extensionHostConfig;\r\n this.openInIframe = !this.config.openInNewTab;\r\n this.extensionUrl = this.sanitizer.bypassSecurityTrustResourceUrl(\r\n this.config.extensionUrl || 'about:blank',\r\n );\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.openInIframe) {\r\n const extensionWindow = this.extensionFrame.nativeElement.contentWindow;\r\n if (extensionWindow) {\r\n this.extensionHostService.init(extensionWindow, this.route.snapshot);\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.extensionWindow) {\r\n this.extensionWindow.close();\r\n }\r\n }\r\n\r\n launchExtensionWindow() {\r\n const extensionWindow = window.open(this.config.extensionUrl);\r\n if (!extensionWindow) {\r\n return;\r\n }\r\n this.extensionHostService.init(extensionWindow, this.route.snapshot);\r\n this.extensionWindowIsOpen = true;\r\n this.extensionWindow = extensionWindow;\r\n\r\n let timer: number;\r\n function pollWindowState(extwindow: Window, onClosed: () => void) {\r\n if (extwindow.closed) {\r\n window.clearTimeout(timer);\r\n onClosed();\r\n } else {\r\n timer = window.setTimeout(() => pollWindowState(extwindow, onClosed), 250);\r\n }\r\n }\r\n\r\n pollWindowState(extensionWindow, () => {\r\n this.extensionWindowIsOpen = false;\r\n this.extensionHostService.destroy();\r\n });\r\n }\r\n\r\n private isExtensionHostConfig(input: any): input is ExtensionHostConfig {\r\n return input.hasOwnProperty('extensionUrl');\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { FacetValue } from '../../../common/generated-types';\r\n\r\n@Component({\r\n selector: 'vdr-facet-value-chip',\r\n templateUrl: './facet-value-chip.component.html',\r\n styleUrls: ['./facet-value-chip.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FacetValueChipComponent {\r\n @Input() facetValue: FacetValue.Fragment;\r\n @Input() removable = true;\r\n @Input() displayFacetName = true;\r\n @Output() remove = new EventEmitter<void>();\r\n}\r\n","import { FacetValue, FacetWithValues } from '../generated-types';\r\n\r\nexport function flattenFacetValues(facetsWithValues: FacetWithValues.Fragment[]): FacetValue.Fragment[] {\r\n return facetsWithValues.reduce(\r\n (flattened, facet) => flattened.concat(facet.values),\r\n [] as FacetValue.Fragment[],\r\n );\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NgSelectComponent } from '@ng-select/ng-select';\r\n\r\nimport { FacetValue, FacetWithValues } from '../../../common/generated-types';\r\nimport { flattenFacetValues } from '../../../common/utilities/flatten-facet-values';\r\nimport { DataService } from '../../../data/providers/data.service';\r\n\r\nexport type FacetValueSeletorItem = {\r\n name: string;\r\n facetName: string;\r\n id: string;\r\n value: FacetValue.Fragment;\r\n};\r\n\r\n/**\r\n * @description\r\n * A form control for selecting facet values.\r\n *\r\n * @example\r\n * ```HTML\r\n * <vdr-facet-value-selector\r\n * [facets]=\"facets\"\r\n * (selectedValuesChange)=\"selectedValues = $event\"\r\n * ></vdr-facet-value-selector>\r\n * ```\r\n * The `facets` input should be provided from the parent component\r\n * like this:\r\n *\r\n * @example\r\n * ```TypeScript\r\n * this.facets = this.dataService\r\n * .facet.getAllFacets()\r\n * .mapSingle(data => data.facets.items);\r\n * ```\r\n * @docsCategory components\r\n */\r\n@Component({\r\n selector: 'vdr-facet-value-selector',\r\n templateUrl: './facet-value-selector.component.html',\r\n styleUrls: ['./facet-value-selector.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: FacetValueSelectorComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class FacetValueSelectorComponent implements OnInit, ControlValueAccessor {\r\n @Output() selectedValuesChange = new EventEmitter<FacetValue.Fragment[]>();\r\n @Input() facets: FacetWithValues.Fragment[];\r\n @Input() readonly = false;\r\n @Input() transformControlValueAccessorValue: (value: FacetValueSeletorItem[]) => any[] = value => value;\r\n\r\n @ViewChild(NgSelectComponent) private ngSelect: NgSelectComponent;\r\n\r\n facetValues: FacetValueSeletorItem[] = [];\r\n onChangeFn: (val: any) => void;\r\n onTouchFn: () => void;\r\n disabled = false;\r\n value: Array<string | FacetValue.Fragment>;\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit() {\r\n this.facetValues = flattenFacetValues(this.facets).map(this.toSelectorItem);\r\n }\r\n\r\n onChange(selected: FacetValueSeletorItem[]) {\r\n if (this.readonly) {\r\n return;\r\n }\r\n this.selectedValuesChange.emit(selected.map(s => s.value));\r\n if (this.onChangeFn) {\r\n const transformedValue = this.transformControlValueAccessorValue(selected);\r\n this.onChangeFn(transformedValue);\r\n }\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChangeFn = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouchFn = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n focus() {\r\n this.ngSelect.focus();\r\n }\r\n\r\n writeValue(obj: string | FacetValue.Fragment[] | Array<string | number> | null): void {\r\n if (typeof obj === 'string') {\r\n try {\r\n const facetIds = JSON.parse(obj) as string[];\r\n this.value = facetIds;\r\n } catch (err) {\r\n // TODO: log error\r\n throw err;\r\n }\r\n } else if (Array.isArray(obj)) {\r\n const isIdArray = (input: unknown[]): input is Array<string | number> =>\r\n input.every(i => typeof i === 'number' || typeof i === 'string');\r\n if (isIdArray(obj)) {\r\n this.value = obj.map(fv => fv.toString());\r\n } else {\r\n this.value = obj.map(fv => fv.id);\r\n }\r\n }\r\n }\r\n\r\n private toSelectorItem = (facetValue: FacetValue.Fragment): FacetValueSeletorItem => {\r\n return {\r\n name: facetValue.name,\r\n facetName: facetValue.facet.name,\r\n id: facetValue.id,\r\n value: facetValue,\r\n };\r\n };\r\n}\r\n","import { CdkDragEnd } from '@angular/cdk/drag-drop';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nexport type Point = { x: number; y: number };\r\n\r\n@Component({\r\n selector: 'vdr-focal-point-control',\r\n templateUrl: './focal-point-control.component.html',\r\n styleUrls: ['./focal-point-control.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FocalPointControlComponent {\r\n @Input() visible = false;\r\n @Input() editable = false;\r\n @HostBinding('style.width.px')\r\n @Input()\r\n width: number;\r\n @HostBinding('style.height.px')\r\n @Input()\r\n height: number;\r\n @Input() fpx = 0.5;\r\n @Input() fpy = 0.5;\r\n @Output() focalPointChange = new EventEmitter<Point>();\r\n\r\n @ViewChild('frame', { static: true }) frame: ElementRef<HTMLDivElement>;\r\n @ViewChild('dot', { static: true }) dot: ElementRef<HTMLDivElement>;\r\n\r\n get initialPosition(): Point {\r\n return this.focalPointToOffset(this.fpx == null ? 0.5 : this.fpx, this.fpy == null ? 0.5 : this.fpy);\r\n }\r\n\r\n onDragEnded(event: CdkDragEnd) {\r\n const { x, y } = this.getCurrentFocalPoint();\r\n this.fpx = x;\r\n this.fpy = y;\r\n this.focalPointChange.emit({ x, y });\r\n }\r\n\r\n private getCurrentFocalPoint(): Point {\r\n const { left: dotLeft, top: dotTop, width, height } = this.dot.nativeElement.getBoundingClientRect();\r\n const { left: frameLeft, top: frameTop } = this.frame.nativeElement.getBoundingClientRect();\r\n const xInPx = dotLeft - frameLeft + width / 2;\r\n const yInPx = dotTop - frameTop + height / 2;\r\n return {\r\n x: xInPx / this.width,\r\n y: yInPx / this.height,\r\n };\r\n }\r\n\r\n private focalPointToOffset(x: number, y: number): Point {\r\n const { width, height } = this.dot.nativeElement.getBoundingClientRect();\r\n return {\r\n x: x * this.width - width / 2,\r\n y: y * this.height - height / 2,\r\n };\r\n }\r\n}\r\n","import { Directive, ElementRef, Optional } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\ntype InputElement = HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;\r\n\r\n// tslint:disable:directive-selector\r\n@Directive({ selector: 'input, textarea, select' })\r\nexport class FormFieldControlDirective {\r\n constructor(\r\n private elementRef: ElementRef<InputElement>,\r\n @Optional() public formControlName: NgControl,\r\n ) {}\r\n\r\n get valid(): boolean {\r\n return !!this.formControlName && !!this.formControlName.valid;\r\n }\r\n\r\n get touched(): boolean {\r\n return !!this.formControlName && !!this.formControlName.touched;\r\n }\r\n\r\n setReadOnly(value: boolean) {\r\n const input = this.elementRef.nativeElement;\r\n if (isSelectElement(input)) {\r\n input.disabled = value;\r\n } else {\r\n input.readOnly = value;\r\n }\r\n }\r\n}\r\n\r\nfunction isSelectElement(value: InputElement): value is HTMLSelectElement {\r\n return value.hasOwnProperty('selectedIndex');\r\n}\r\n","import {\r\n AfterContentInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\n\r\nimport { FormFieldControlDirective } from './form-field-control.directive';\r\n\r\n/**\r\n * A form field wrapper which handles the correct layout and validation error display for\r\n * a form control.\r\n */\r\n@Component({\r\n selector: 'vdr-form-field',\r\n templateUrl: './form-field.component.html',\r\n styleUrls: ['./form-field.component.scss'],\r\n})\r\nexport class FormFieldComponent implements OnInit {\r\n @Input() label: string;\r\n @Input() for: string;\r\n @Input() tooltip: string;\r\n /**\r\n * A map of error message codes (required, pattern etc.) to messages to display\r\n * when those errors are present.\r\n */\r\n @Input() errors: { [key: string]: string } = {};\r\n /**\r\n * If set to true, the input will be initially set to \"readOnly\", and an \"edit\" button\r\n * will be displayed which allows the field to be edited.\r\n */\r\n @Input() readOnlyToggle = false;\r\n @ContentChild(FormFieldControlDirective, { static: true }) formFieldControl: FormFieldControlDirective;\r\n isReadOnly = false;\r\n\r\n ngOnInit() {\r\n if (this.readOnlyToggle) {\r\n this.isReadOnly = true;\r\n this.setReadOnly(true);\r\n }\r\n this.isReadOnly = this.readOnlyToggle;\r\n }\r\n\r\n setReadOnly(value: boolean) {\r\n this.formFieldControl.setReadOnly(value);\r\n this.isReadOnly = value;\r\n }\r\n\r\n getErrorMessage(): string | undefined {\r\n if (!this.formFieldControl || !this.formFieldControl.formControlName) {\r\n return;\r\n }\r\n const errors = this.formFieldControl.formControlName.errors;\r\n if (errors) {\r\n for (const errorKey of Object.keys(errors)) {\r\n if (this.errors[errorKey]) {\r\n return this.errors[errorKey];\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n/**\r\n * Like the {@link FormFieldComponent} but for content which is not a form control. Used\r\n * to keep a consistent layout with other form fields in the form.\r\n */\r\n@Component({\r\n selector: 'vdr-form-item',\r\n templateUrl: './form-item.component.html',\r\n styleUrls: ['./form-item.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FormItemComponent {\r\n @Input() label: string;\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { AddressFragment, OrderAddress } from '../../../common/generated-types';\r\n\r\n@Component({\r\n selector: 'vdr-formatted-address',\r\n templateUrl: './formatted-address.component.html',\r\n styleUrls: ['./formatted-address.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FormattedAddressComponent {\r\n @Input() address: AddressFragment | OrderAddress;\r\n\r\n getCountryName(): string {\r\n if (this.isAddressFragment(this.address)) {\r\n return this.address.country.name;\r\n } else {\r\n return this.address.country || '';\r\n }\r\n }\r\n\r\n getCustomFields(): Array<{ key: string; value: any }> {\r\n const customFields = (this.address as any).customFields;\r\n if (customFields) {\r\n return Object.entries(customFields)\r\n .filter(([key]) => key !== '__typename')\r\n .map(([key, value]) => ({ key, value: (value as any)?.toString() ?? '-' }));\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n private isAddressFragment(input: AddressFragment | OrderAddress): input is AddressFragment {\r\n return typeof input.country !== 'string';\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'vdr-help-tooltip',\n templateUrl: './help-tooltip.component.html',\n styleUrls: ['./help-tooltip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HelpTooltipComponent {\n @Input() content: string;\n @Input() position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'right' | 'left';\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vdr-history-entry-detail',\r\n templateUrl: './history-entry-detail.component.html',\r\n styleUrls: ['./history-entry-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class HistoryEntryDetailComponent {}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n/**\r\n * A control for setting the number of items per page in a paginated list.\r\n */\r\n@Component({\r\n selector: 'vdr-items-per-page-controls',\r\n templateUrl: './items-per-page-controls.component.html',\r\n styleUrls: ['./items-per-page-controls.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ItemsPerPageControlsComponent {\r\n @Input() itemsPerPage = 10;\r\n @Output() itemsPerPageChange = new EventEmitter<number>();\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vdr-labeled-data',\r\n templateUrl: './labeled-data.component.html',\r\n styleUrls: ['./labeled-data.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LabeledDataComponent {\r\n @Input() label: string;\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { LanguageCode } from '../../../common/generated-types';\r\n\r\n@Component({\r\n selector: 'vdr-language-selector',\r\n templateUrl: './language-selector.component.html',\r\n styleUrls: ['./language-selector.component.scss'],\r\n})\r\nexport class LanguageSelectorComponent {\r\n @Input() currentLanguageCode: LanguageCode;\r\n @Input() availableLanguageCodes: LanguageCode[];\r\n @Input() disabled = false;\r\n @Output() languageCodeChange = new EventEmitter<LanguageCode>();\r\n}\r\n","import { Directive, OnInit, TemplateRef } from '@angular/core';\r\n\r\nimport { ModalDialogComponent } from './modal-dialog.component';\r\n\r\n/**\r\n * A helper directive used to correctly embed the modal buttons in the {@link ModalDialogComponent}.\r\n */\r\n@Directive({ selector: '[vdrDialogButtons]' })\r\nexport class DialogButtonsDirective implements OnInit {\r\n constructor(private modal: ModalDialogComponent<any>, private templateRef: TemplateRef<any>) {}\r\n\r\n ngOnInit() {\r\n // setTimeout due to https://github.com/angular/angular/issues/15634\r\n setTimeout(() => this.modal.registerButtonsTemplate(this.templateRef));\r\n }\r\n}\r\n","import {\r\n Component,\r\n ComponentFactoryResolver,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n Type,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\n\r\n/**\r\n * A helper component used to embed a component instance into the {@link ModalDialogComponent}\r\n */\r\n@Component({\r\n selector: 'vdr-dialog-component-outlet',\r\n template: ``,\r\n})\r\nexport class DialogComponentOutletComponent implements OnInit {\r\n @Input() component: Type<any>;\r\n @Output() create = new EventEmitter<any>();\r\n\r\n constructor(\r\n private viewContainerRef: ViewContainerRef,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n ) {}\r\n\r\n ngOnInit() {\r\n const factory = this.componentFactoryResolver.resolveComponentFactory(this.component);\r\n const componentRef = this.viewContainerRef.createComponent(factory);\r\n this.create.emit(componentRef.instance);\r\n }\r\n}\r\n","import { Directive, OnInit, TemplateRef } from '@angular/core';\r\n\r\nimport { ModalDialogComponent } from './modal-dialog.component';\r\n\r\n/**\r\n * A helper directive used to correctly embed the modal title in the {@link ModalDialogComponent}.\r\n */\r\n@Directive({ selector: '[vdrDialogTitle]' })\r\nexport class DialogTitleDirective implements OnInit {\r\n constructor(private modal: ModalDialogComponent<any>, private templateRef: TemplateRef<any>) {}\r\n\r\n ngOnInit() {\r\n // setTimeout due to https://github.com/angular/angular/issues/15634\r\n setTimeout(() => this.modal.registerTitleTemplate(this.templateRef));\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Optional,\r\n SkipSelf,\r\n} from '@angular/core';\r\n\r\n/**\r\n * @description\r\n * This component displays a plain JavaScript object as an expandable tree.\r\n *\r\n * @example\r\n * ```HTML\r\n * <vdr-object-tree [value]=\"payment.metadata\"></vdr-object-tree>\r\n * ```\r\n *\r\n * @docsCategory components\r\n */\r\n@Component({\r\n selector: 'vdr-object-tree',\r\n templateUrl: './object-tree.component.html',\r\n styleUrls: ['./object-tree.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ObjectTreeComponent implements OnChanges {\r\n @Input() value: { [key: string]: any } | string;\r\n @Input() isArrayItem = false;\r\n depth: number;\r\n expanded: boolean;\r\n valueIsArray: boolean;\r\n entries: Array<{ key: string; value: any }>;\r\n constructor(@Optional() @SkipSelf() parent: ObjectTreeComponent) {\r\n if (parent) {\r\n this.depth = parent.depth + 1;\r\n } else {\r\n this.depth = 0;\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n this.entries = this.getEntries(this.value);\r\n this.expanded = this.depth === 0 || this.isArrayItem;\r\n this.valueIsArray = Object.keys(this.value).every(v => Number.isInteger(+v));\r\n }\r\n\r\n isObject(value: any): boolean {\r\n return typeof value === 'object' && value !== null;\r\n }\r\n\r\n private getEntries(inputValue: { [key: string]: any } | string): Array<{ key: string; value: any }> {\r\n if (!this.isObject(inputValue)) {\r\n return [{ key: '', value: inputValue }];\r\n }\r\n return Object.entries(inputValue).map(([key, value]) => ({ key, value }));\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n/**\r\n * @description\r\n * Displays the state of an order in a colored chip.\r\n *\r\n * @example\r\n * ```HTML\r\n * <vdr-order-state-label [state]=\"order.state\"></vdr-order-state-label>\r\n * ```\r\n * @docsCategory components\r\n */\r\n@Component({\r\n selector: 'vdr-order-state-label',\r\n templateUrl: './order-state-label.component.html',\r\n styleUrls: ['./order-state-label.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderStateLabelComponent {\r\n @Input() state: string;\r\n\r\n get chipColorType() {\r\n switch (this.state) {\r\n case 'AddingItems':\r\n case 'ArrangingPayment':\r\n return '';\r\n case 'Delivered':\r\n return 'success';\r\n case 'Cancelled':\r\n case 'Draft':\r\n return 'error';\r\n case 'PaymentAuthorized':\r\n case 'PaymentSettled':\r\n case 'PartiallyDelivered':\r\n case 'PartiallyShipped':\r\n case 'Shipped':\r\n default:\r\n return 'warning';\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vdr-pagination-controls',\r\n templateUrl: './pagination-controls.component.html',\r\n styleUrls: ['./pagination-controls.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PaginationControlsComponent {\r\n @Input() id?: number;\r\n @Input() currentPage: number;\r\n @Input() itemsPerPage: number;\r\n @Input() totalItems: number;\r\n @Output() pageChange = new EventEmitter<number>();\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { NgSelectComponent, SELECTION_MODEL_FACTORY } from '@ng-select/ng-select';\r\nimport { notNullOrUndefined } from '@vendure/common/lib/shared-utils';\r\n\r\nimport { SearchProducts } from '../../../common/generated-types';\r\nimport { SingleSearchSelectionModelFactory } from '../../../common/single-search-selection-model';\r\n\r\n@Component({\r\n selector: 'vdr-product-search-input',\r\n templateUrl: './product-search-input.component.html',\r\n styleUrls: ['./product-search-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [{ provide: SELECTION_MODEL_FACTORY, useValue: SingleSearchSelectionModelFactory }],\r\n})\r\nexport class ProductSearchInputComponent {\r\n @Input() facetValueResults: SearchProducts.FacetValues[];\r\n @Output() searchTermChange = new EventEmitter<string>();\r\n @Output() facetValueChange = new EventEmitter<string[]>();\r\n @ViewChild('selectComponent', { static: true }) private selectComponent: NgSelectComponent;\r\n private lastTerm = '';\r\n private lastFacetValueIds: string[] = [];\r\n\r\n setSearchTerm(term: string | null) {\r\n if (term) {\r\n this.selectComponent.select({ label: term, value: { label: term } });\r\n } else {\r\n const currentTerm = this.selectComponent.selectedItems.find(i => !this.isFacetValueItem(i.value));\r\n if (currentTerm) {\r\n this.selectComponent.unselect(currentTerm);\r\n }\r\n }\r\n }\r\n\r\n setFacetValues(ids: string[]) {\r\n const items = this.selectComponent.items;\r\n\r\n this.selectComponent.selectedItems.forEach(item => {\r\n if (this.isFacetValueItem(item.value) && !ids.includes(item.value.facetValue.id)) {\r\n this.selectComponent.unselect(item);\r\n }\r\n });\r\n\r\n ids.map(id => {\r\n return items?.find(item => this.isFacetValueItem(item) && item.facetValue.id === id);\r\n })\r\n .filter(notNullOrUndefined)\r\n .forEach(item => {\r\n const isSelected = this.selectComponent.selectedItems.find(i => {\r\n const val = i.value;\r\n if (this.isFacetValueItem(val)) {\r\n return val.facetValue.id === item.facetValue.id;\r\n }\r\n return false;\r\n });\r\n if (!isSelected) {\r\n this.selectComponent.select({ label: '', value: item });\r\n }\r\n });\r\n }\r\n\r\n filterFacetResults = (term: string, item: SearchProducts.FacetValues | { label: string }) => {\r\n if (!this.isFacetValueItem(item)) {\r\n return false;\r\n }\r\n\r\n const cix = term.indexOf(':');\r\n const facetName = cix > -1 ? term.toLowerCase().slice(0, cix) : null;\r\n const facetVal = cix > -1 ? term.toLowerCase().slice(cix + 1) : term.toLowerCase();\r\n\r\n if (facetName) {\r\n return (\r\n item.facetValue.facet.name.toLowerCase().includes(facetName) &&\r\n item.facetValue.name.toLocaleLowerCase().includes(facetVal)\r\n );\r\n }\r\n\r\n return (\r\n item.facetValue.name.toLowerCase().includes(term.toLowerCase()) ||\r\n item.facetValue.facet.name.toLowerCase().includes(term.toLowerCase())\r\n );\r\n };\r\n\r\n onSelectChange(selectedItems: Array<SearchProducts.FacetValues | { label: string }>) {\r\n if (!Array.isArray(selectedItems)) {\r\n selectedItems = [selectedItems];\r\n }\r\n const searchTermItem = selectedItems.find(item => !this.isFacetValueItem(item)) as\r\n | { label: string }\r\n | undefined;\r\n const searchTerm = searchTermItem ? searchTermItem.label : '';\r\n\r\n const facetValueIds = selectedItems.filter(this.isFacetValueItem).map(i => i.facetValue.id);\r\n\r\n if (searchTerm !== this.lastTerm) {\r\n this.searchTermChange.emit(searchTerm);\r\n this.lastTerm = searchTerm;\r\n }\r\n if (this.lastFacetValueIds.join(',') !== facetValueIds.join(',')) {\r\n this.facetValueChange.emit(facetValueIds);\r\n this.lastFacetValueIds = facetValueIds;\r\n }\r\n }\r\n\r\n addTagFn(item: any) {\r\n return { label: item };\r\n }\r\n\r\n isSearchHeaderSelected(): boolean {\r\n return this.selectComponent.itemsList.markedIndex === -1;\r\n }\r\n\r\n private isFacetValueItem = (input: unknown): input is SearchProducts.FacetValues => {\r\n return typeof input === 'object' && !!input && input.hasOwnProperty('facetValue');\r\n };\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { NgSelectComponent } from '@ng-select/ng-select';\r\nimport { concat, merge, Observable, of, Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, mapTo, switchMap, tap, throttleTime } from 'rxjs/operators';\r\n\r\nimport { ProductSelectorSearch } from '../../../common/generated-types';\r\nimport { DataService } from '../../../data/providers/data.service';\r\n\r\n/**\r\n * @description\r\n * A component for selecting product variants via an autocomplete-style select input.\r\n *\r\n * @example\r\n * ```HTML\r\n * <vdr-product-selector\r\n * (productSelected)=\"selectResult($event)\"></vdr-product-selector>\r\n * ```\r\n *\r\n * @docsCategory components\r\n */\r\n@Component({\r\n selector: 'vdr-product-selector',\r\n templateUrl: './product-selector.component.html',\r\n styleUrls: ['./product-selector.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ProductSelectorComponent implements OnInit {\r\n searchInput$ = new Subject<string>();\r\n searchLoading = false;\r\n searchResults$: Observable<ProductSelectorSearch.Items[]>;\r\n @Output() productSelected = new EventEmitter<ProductSelectorSearch.Items>();\r\n\r\n @ViewChild('autoComplete', { static: true })\r\n private ngSelect: NgSelectComponent;\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit(): void {\r\n this.initSearchResults();\r\n }\r\n\r\n private initSearchResults() {\r\n const searchItems$ = this.searchInput$.pipe(\r\n debounceTime(200),\r\n distinctUntilChanged(),\r\n tap(() => (this.searchLoading = true)),\r\n switchMap(term => {\r\n if (!term) {\r\n return of([]);\r\n }\r\n return this.dataService.product\r\n .productSelectorSearch(term, 10)\r\n .mapSingle(result => result.search.items);\r\n }),\r\n tap(() => (this.searchLoading = false)),\r\n );\r\n\r\n const clear$ = this.productSelected.pipe(mapTo([]));\r\n this.searchResults$ = concat(of([]), merge(searchItems$, clear$));\r\n }\r\n\r\n selectResult(product?: ProductSelectorSearch.Items) {\r\n if (product) {\r\n this.productSelected.emit(product);\r\n this.ngSelect.clearModel();\r\n }\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { debounceTime, throttleTime } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'vdr-radio-card-fieldset',\r\n template: `<fieldset><ng-content></ng-content></fieldset> `,\r\n styleUrls: ['radio-card-fieldset.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RadioCardFieldsetComponent<T = any> implements OnInit, OnChanges, OnDestroy {\r\n @Input() selectedItemId: string;\r\n @Input() idFn: (item: T) => string;\r\n @Output() selectItem = new EventEmitter<T>();\r\n groupName = 'radio-group-' + Math.random().toString(36);\r\n selectedIdChange$ = new Subject<string>();\r\n focussedId: string | undefined = undefined;\r\n private idChange$ = new Subject<T>();\r\n private subscription: Subscription;\r\n\r\n constructor(private changeDetector: ChangeDetectorRef) {}\r\n\r\n ngOnInit() {\r\n this.subscription = this.idChange$\r\n .pipe(throttleTime(200))\r\n .subscribe(item => this.selectItem.emit(item));\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if ('selectedItemId' in changes) {\r\n this.selectedIdChange$.next(this.selectedItemId);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n isSelected(item: T): boolean {\r\n return this.selectedItemId === this.idFn(item);\r\n }\r\n\r\n isFocussed(item: T): boolean {\r\n return this.focussedId === this.idFn(item);\r\n }\r\n\r\n selectChanged(item: T) {\r\n this.idChange$.next(item);\r\n }\r\n\r\n setFocussedId(item: T | undefined) {\r\n this.focussedId = item && this.idFn(item);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { Subject, Subscription } from 'rxjs';\r\n\r\nimport { RadioCardFieldsetComponent } from './radio-card-fieldset.component';\r\n\r\n@Component({\r\n selector: 'vdr-radio-card',\r\n templateUrl: './radio-card.component.html',\r\n styleUrls: ['./radio-card.component.scss'],\r\n exportAs: 'VdrRadioCard',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RadioCardComponent<T = any> implements OnInit, OnDestroy {\r\n @Input() item: T;\r\n @ContentChild(TemplateRef) itemTemplate: TemplateRef<T>;\r\n\r\n constructor(private fieldset: RadioCardFieldsetComponent, private changeDetector: ChangeDetectorRef) {}\r\n\r\n private idChange$ = new Subject<T>();\r\n private subscription: Subscription;\r\n name = this.fieldset.groupName;\r\n\r\n ngOnInit() {\r\n this.subscription = this.fieldset.selectedIdChange$.subscribe(id => {\r\n this.changeDetector.markForCheck();\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n isSelected(item: T): boolean {\r\n return this.fieldset.isSelected(item);\r\n }\r\n\r\n isFocussed(item: T): boolean {\r\n return this.fieldset.isFocussed(item);\r\n }\r\n\r\n selectChanged(item: T) {\r\n this.fieldset.selectChanged(item);\r\n }\r\n\r\n setFocussedId(item: T | undefined) {\r\n this.fieldset.setFocussedId(item);\r\n }\r\n\r\n getItemId(item: T): string {\r\n return this.fieldset.idFn(item);\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\n\r\nimport { Dialog } from '../../../../providers/modal/modal.service';\r\n\r\nexport interface ExternalImageAttrs {\r\n src: string;\r\n title: string;\r\n alt: string;\r\n}\r\n\r\n@Component({\r\n selector: 'vdr-external-image-dialog',\r\n templateUrl: './external-image-dialog.component.html',\r\n styleUrls: ['./external-image-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ExternalImageDialogComponent implements OnInit, Dialog<ExternalImageAttrs> {\r\n form: FormGroup;\r\n\r\n resolveWith: (result?: ExternalImageAttrs) => void;\r\n previewLoaded = false;\r\n existing?: ExternalImageAttrs;\r\n\r\n ngOnInit(): void {\r\n this.form = new FormGroup({\r\n src: new FormControl(this.existing ? this.existing.src : '', Validators.required),\r\n title: new FormControl(this.existing ? this.existing.title : ''),\r\n alt: new FormControl(this.existing ? this.existing.alt : ''),\r\n });\r\n }\r\n\r\n select() {\r\n this.resolveWith(this.form.value);\r\n }\r\n\r\n onImageLoad(event: Event) {\r\n this.previewLoaded = true;\r\n }\r\n\r\n onImageError(event: Event) {\r\n this.previewLoaded = false;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\n\r\nimport { Dialog } from '../../../../providers/modal/modal.service';\r\n\r\nexport interface LinkAttrs {\r\n href: string;\r\n title: string;\r\n}\r\n\r\n@Component({\r\n selector: 'vdr-link-dialog',\r\n templateUrl: './link-dialog.component.html',\r\n styleUrls: ['./link-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LinkDialogComponent implements OnInit, Dialog<LinkAttrs> {\r\n form: FormGroup;\r\n\r\n resolveWith: (result?: LinkAttrs) => void;\r\n existing?: LinkAttrs;\r\n\r\n ngOnInit(): void {\r\n this.form = new FormGroup({\r\n href: new FormControl(this.existing ? this.existing.href : '', Validators.required),\r\n title: new FormControl(this.existing ? this.existing.title : ''),\r\n });\r\n }\r\n\r\n remove() {\r\n this.resolveWith({\r\n title: '',\r\n href: '',\r\n });\r\n }\r\n\r\n select() {\r\n this.resolveWith(this.form.value);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, combineLatest, interval, Observable, of, Subject } from 'rxjs';\r\nimport {\r\n bufferWhen,\r\n debounceTime,\r\n delayWhen,\r\n distinctUntilChanged,\r\n filter,\r\n map,\r\n skip,\r\n takeUntil,\r\n tap,\r\n} from 'rxjs/operators';\r\n\r\nexport interface ContextMenuConfig {\r\n ref: any;\r\n iconShape?: string;\r\n title: string;\r\n element: Element;\r\n coords: { left: number; right: number; top: number; bottom: number };\r\n items: ContextMenuItem[];\r\n}\r\n\r\nexport interface ContextMenuItem {\r\n separator?: boolean;\r\n iconClass?: string;\r\n iconShape?: string;\r\n label: string;\r\n enabled: boolean;\r\n onClick: () => void;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ContextMenuService {\r\n contextMenu$: Observable<ContextMenuConfig | undefined>;\r\n private menuIsVisible$ = new BehaviorSubject<boolean>(false);\r\n private setContextMenuConfig$ = new Subject<ContextMenuConfig | undefined>();\r\n constructor() {\r\n const source$ = this.setContextMenuConfig$.asObservable();\r\n const groupedConfig$ = source$.pipe(\r\n bufferWhen(() => source$.pipe(debounceTime(50))),\r\n map(group => {\r\n return group.reduce((acc, cur) => {\r\n if (!acc) {\r\n return cur;\r\n } else {\r\n if (cur?.ref === acc.ref) {\r\n acc.items.push(\r\n // de-duplicate items\r\n ...(cur?.items.filter(i => !acc.items.find(ai => ai.label === i.label)) ??\r\n []),\r\n );\r\n }\r\n }\r\n return acc;\r\n }, undefined as ContextMenuConfig | undefined);\r\n }),\r\n );\r\n\r\n const visible$ = this.menuIsVisible$.pipe(filter(val => val === true));\r\n\r\n const isVisible$ = this.menuIsVisible$.pipe(\r\n delayWhen(value => (value ? of(value) : interval(250).pipe(takeUntil(visible$)))),\r\n distinctUntilChanged(),\r\n );\r\n this.contextMenu$ = combineLatest(groupedConfig$, isVisible$).pipe(\r\n map(([config, isVisible]) => (isVisible ? config : undefined)),\r\n );\r\n }\r\n\r\n setVisibility(isVisible: boolean) {\r\n this.menuIsVisible$.next(isVisible);\r\n }\r\n\r\n setContextMenu(config: ContextMenuConfig) {\r\n this.setContextMenuConfig$.next(config);\r\n }\r\n\r\n clearContextMenu() {\r\n this.setContextMenuConfig$.next(undefined);\r\n }\r\n}\r\n","import { ConnectedPosition, Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n OnDestroy,\r\n TemplateRef,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\r\nimport { distinctUntilChanged } from 'rxjs/operators';\r\n\r\nimport { ContextMenuConfig, ContextMenuItem, ContextMenuService } from './context-menu.service';\r\n\r\ntype DropdownPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';\r\n\r\n@Component({\r\n selector: 'vdr-context-menu',\r\n templateUrl: './context-menu.component.html',\r\n styleUrls: ['./context-menu.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ContextMenuComponent implements AfterViewInit, OnDestroy {\r\n @Input() editorMenuElement: HTMLElement | null | undefined;\r\n @ViewChild('contextMenu', { static: true }) private menuTemplate: TemplateRef<any>;\r\n\r\n menuConfig: ContextMenuConfig | undefined;\r\n hideTrigger$: Observable<boolean>;\r\n private triggerIsHidden = new BehaviorSubject<boolean>(false);\r\n private menuPortal: TemplatePortal<any>;\r\n private overlayRef: OverlayRef;\r\n private contextMenuSub: Subscription;\r\n private contentArea: HTMLDivElement | null;\r\n private hideTriggerHandler: (() => void) | undefined;\r\n\r\n constructor(\r\n private overlay: Overlay,\r\n private viewContainerRef: ViewContainerRef,\r\n public contextMenuService: ContextMenuService,\r\n ) {}\r\n\r\n onScroll = () => {\r\n if (this.overlayRef?.hasAttached()) {\r\n this.overlayRef.updatePosition();\r\n }\r\n };\r\n\r\n ngAfterViewInit() {\r\n this.contentArea = document.querySelector('.content-area');\r\n this.menuPortal = new TemplatePortal(this.menuTemplate, this.viewContainerRef);\r\n\r\n this.hideTrigger$ = this.triggerIsHidden.asObservable().pipe(distinctUntilChanged());\r\n this.contentArea?.addEventListener('scroll', this.onScroll, { passive: true });\r\n\r\n this.contextMenuSub = this.contextMenuService.contextMenu$.subscribe(contextMenuConfig => {\r\n this.overlayRef?.dispose();\r\n this.menuConfig = contextMenuConfig;\r\n if (contextMenuConfig) {\r\n this.overlayRef = this.overlay.create({\r\n hasBackdrop: false,\r\n positionStrategy: this.getPositionStrategy(contextMenuConfig.element),\r\n maxHeight: '70vh',\r\n });\r\n this.overlayRef.attach(this.menuPortal);\r\n this.triggerIsHidden.next(false);\r\n\r\n const triggerButton = this.overlayRef.hostElement.querySelector('.context-menu-trigger');\r\n const editorMenu = this.editorMenuElement;\r\n if (triggerButton) {\r\n const overlapMarginPx = 5;\r\n this.hideTriggerHandler = () => {\r\n if (editorMenu && triggerButton) {\r\n if (\r\n triggerButton.getBoundingClientRect().top + overlapMarginPx <\r\n editorMenu.getBoundingClientRect().bottom\r\n ) {\r\n this.triggerIsHidden.next(true);\r\n } else {\r\n this.triggerIsHidden.next(false);\r\n }\r\n }\r\n };\r\n this.contentArea?.addEventListener('scroll', this.hideTriggerHandler, { passive: true });\r\n requestAnimationFrame(() => this.hideTriggerHandler?.());\r\n }\r\n } else {\r\n if (this.hideTriggerHandler) {\r\n this.contentArea?.removeEventListener('scroll', this.hideTriggerHandler);\r\n }\r\n }\r\n });\r\n }\r\n\r\n triggerClick() {\r\n this.contextMenuService.setVisibility(true);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.overlayRef?.dispose();\r\n this.contextMenuSub?.unsubscribe();\r\n this.contentArea?.removeEventListener('scroll', this.onScroll);\r\n if (this.hideTriggerHandler) {\r\n this.contentArea?.removeEventListener('scroll', this.hideTriggerHandler);\r\n }\r\n }\r\n\r\n clickItem(item: ContextMenuItem) {\r\n item.onClick();\r\n }\r\n\r\n private getPositionStrategy(element: Element): PositionStrategy {\r\n const position: { [K in DropdownPosition]: ConnectedPosition } = {\r\n ['top-left']: {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom',\r\n },\r\n ['top-right']: {\r\n originX: 'end',\r\n originY: 'top',\r\n overlayX: 'end',\r\n overlayY: 'bottom',\r\n },\r\n ['bottom-left']: {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n },\r\n ['bottom-right']: {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'top',\r\n },\r\n };\r\n\r\n const pos = position['top-left'];\r\n\r\n return this.overlay\r\n .position()\r\n .flexibleConnectedTo(element)\r\n .withPositions([pos, this.invertPosition(pos)])\r\n .withViewportMargin(0)\r\n .withLockedPosition(false)\r\n .withPush(false);\r\n }\r\n\r\n /** Inverts an overlay position. */\r\n private invertPosition(pos: ConnectedPosition): ConnectedPosition {\r\n const inverted = { ...pos };\r\n inverted.originY = pos.originY === 'top' ? 'bottom' : 'top';\r\n inverted.overlayY = pos.overlayY === 'top' ? 'bottom' : 'top';\r\n\r\n return inverted;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\n\r\nimport { ConfigArgDefinition } from '../../../../common/generated-types';\r\nimport { Dialog } from '../../../../providers/modal/modal.service';\r\nimport { HtmlEditorFormInputComponent } from '../../../dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component';\r\n\r\n@Component({\r\n selector: 'vdr-raw-html-dialog',\r\n templateUrl: './raw-html-dialog.component.html',\r\n styleUrls: ['./raw-html-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RawHtmlDialogComponent implements OnInit, Dialog<string> {\r\n html: string;\r\n formControl = new FormControl();\r\n config: ConfigArgDefinition = {\r\n name: '',\r\n type: '',\r\n list: false,\r\n required: true,\r\n ui: { component: HtmlEditorFormInputComponent.id },\r\n };\r\n\r\n resolveWith: (html: string | undefined) => void;\r\n\r\n ngOnInit(): void {\r\n this.formControl.setValue(this.process(this.html));\r\n }\r\n\r\n process(str: string) {\r\n const div = document.createElement('div');\r\n div.innerHTML = str.trim();\r\n return this.format(div, 0).innerHTML.trim();\r\n }\r\n\r\n /**\r\n * Taken from https://stackoverflow.com/a/26361620/772859\r\n */\r\n format(node: Element, level = 0) {\r\n const indentBefore = new Array(level++ + 1).join('\\t');\r\n const indentAfter = new Array(level - 1).join('\\t');\r\n let textNode: Text;\r\n\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < node.children.length; i++) {\r\n textNode = document.createTextNode('\\n' + indentBefore);\r\n node.insertBefore(textNode, node.children[i]);\r\n\r\n this.format(node.children[i], level);\r\n\r\n if (node.lastElementChild === node.children[i]) {\r\n textNode = document.createTextNode('\\n' + indentAfter);\r\n node.appendChild(textNode);\r\n }\r\n }\r\n\r\n return node;\r\n }\r\n\r\n cancel() {\r\n this.resolveWith(undefined);\r\n }\r\n\r\n select() {\r\n this.resolveWith(this.formControl.value);\r\n }\r\n}\r\n","import { Attrs, DOMParser, DOMSerializer, Node, NodeSpec } from 'prosemirror-model';\r\nimport { NodeViewConstructor } from 'prosemirror-view';\r\n\r\nexport const iframeNode: NodeSpec = {\r\n group: 'block',\r\n attrs: {\r\n allow: {},\r\n allowfullscreeen: {},\r\n frameborder: {},\r\n height: { default: undefined },\r\n name: { default: '' },\r\n referrerpolicy: {},\r\n sandbox: { default: undefined },\r\n src: {},\r\n srcdoc: { default: undefined },\r\n title: { default: undefined },\r\n width: { default: undefined },\r\n },\r\n parseDOM: [\r\n {\r\n tag: 'iframe',\r\n getAttrs: node => {\r\n if (node instanceof HTMLIFrameElement) {\r\n const attrs: Record<string, any> = {\r\n allow: node.allow,\r\n allowfullscreeen: node.allowFullscreen ?? true,\r\n frameborder: node.getAttribute('frameborder'),\r\n height: node.height,\r\n name: node.name,\r\n referrerpolicy: node.referrerPolicy,\r\n src: node.src,\r\n srcdoc: node.srcdoc || undefined,\r\n title: node.title ?? '',\r\n width: node.width,\r\n };\r\n if (node.sandbox.length) {\r\n attrs.sandbox = node.sandbox;\r\n }\r\n return attrs;\r\n }\r\n return null;\r\n },\r\n },\r\n ],\r\n toDOM(node) {\r\n return ['iframe', { ...node.attrs }];\r\n },\r\n};\r\n\r\nexport const iframeNodeView: NodeViewConstructor = (node, view, getPos, decorations) => {\r\n const domSerializer = DOMSerializer.fromSchema(view.state.schema);\r\n const wrapper = document.createElement('div');\r\n wrapper.classList.add('iframe-wrapper');\r\n const iframe = domSerializer.serializeNode(node);\r\n wrapper.appendChild(iframe);\r\n return {\r\n dom: wrapper,\r\n };\r\n};\r\n","import {\r\n ellipsis,\r\n emDash,\r\n inputRules,\r\n smartQuotes,\r\n textblockTypeInputRule,\r\n wrappingInputRule,\r\n} from 'prosemirror-inputrules';\r\nimport { NodeType, Schema } from 'prosemirror-model';\r\nimport { Plugin } from 'prosemirror-state';\r\n\r\n// : (NodeType) → InputRule\r\n// Given a blockquote node type, returns an input rule that turns `\"> \"`\r\n// at the start of a textblock into a blockquote.\r\nexport function blockQuoteRule(nodeType) {\r\n return wrappingInputRule(/^\\s*>\\s$/, nodeType);\r\n}\r\n\r\n// : (NodeType) → InputRule\r\n// Given a list node type, returns an input rule that turns a number\r\n// followed by a dot at the start of a textblock into an ordered list.\r\nexport function orderedListRule(nodeType) {\r\n return wrappingInputRule(\r\n /^(\\d+)\\.\\s$/,\r\n nodeType,\r\n match => ({ order: +match[1] }),\r\n (match, node) => node.childCount + node.attrs.order === +match[1],\r\n );\r\n}\r\n\r\n// : (NodeType) → InputRule\r\n// Given a list node type, returns an input rule that turns a bullet\r\n// (dash, plush, or asterisk) at the start of a textblock into a\r\n// bullet list.\r\nexport function bulletListRule(nodeType) {\r\n return wrappingInputRule(/^\\s*([-+*])\\s$/, nodeType);\r\n}\r\n\r\n// : (NodeType) → InputRule\r\n// Given a code block node type, returns an input rule that turns a\r\n// textblock starting with three backticks into a code block.\r\nexport function codeBlockRule(nodeType) {\r\n return textblockTypeInputRule(/^```$/, nodeType);\r\n}\r\n\r\n// : (NodeType, number) → InputRule\r\n// Given a node type and a maximum level, creates an input rule that\r\n// turns up to that number of `#` characters followed by a space at\r\n// the start of a textblock into a heading whose level corresponds to\r\n// the number of `#` signs.\r\nexport function headingRule(nodeType, maxLevel) {\r\n return textblockTypeInputRule(new RegExp('^(#{1,' + maxLevel + '})\\\\s$'), nodeType, match => ({\r\n level: match[1].length,\r\n }));\r\n}\r\n\r\n// : (Schema) → Plugin\r\n// A set of input rules for creating the basic block quotes, lists,\r\n// code blocks, and heading.\r\nexport function buildInputRules(schema: Schema): Plugin {\r\n const rules = smartQuotes.concat(ellipsis, emDash);\r\n let type: NodeType;\r\n // tslint:disable:no-conditional-assignment\r\n if ((type = schema.nodes.blockquote)) {\r\n rules.push(blockQuoteRule(type));\r\n }\r\n if ((type = schema.nodes.ordered_list)) {\r\n rules.push(orderedListRule(type));\r\n }\r\n if ((type = schema.nodes.bullet_list)) {\r\n rules.push(bulletListRule(type));\r\n }\r\n if ((type = schema.nodes.code_block)) {\r\n rules.push(codeBlockRule(type));\r\n }\r\n if ((type = schema.nodes.heading)) {\r\n rules.push(headingRule(type, 6));\r\n }\r\n return inputRules({ rules });\r\n}\r\n","import {\r\n chainCommands,\r\n exitCode,\r\n joinDown,\r\n joinUp,\r\n lift,\r\n selectParentNode,\r\n setBlockType,\r\n toggleMark,\r\n wrapIn,\r\n} from 'prosemirror-commands';\r\nimport { redo, undo } from 'prosemirror-history';\r\nimport { undoInputRule } from 'prosemirror-inputrules';\r\nimport { MarkType, NodeType, Schema } from 'prosemirror-model';\r\nimport { liftListItem, sinkListItem, splitListItem, wrapInList } from 'prosemirror-schema-list';\r\n\r\nimport { Keymap } from './types';\r\n\r\nconst mac = typeof navigator !== 'undefined' ? /Mac/.test(navigator.platform) : false;\r\n\r\n// :: (Schema, ?Object) → Object\r\n// Inspect the given schema looking for marks and nodes from the\r\n// basic schema, and if found, add key bindings related to them.\r\n// This will add:\r\n//\r\n// * **Mod-b** for toggling [strong](#schema-basic.StrongMark)\r\n// * **Mod-i** for toggling [emphasis](#schema-basic.EmMark)\r\n// * **Mod-`** for toggling [code font](#schema-basic.CodeMark)\r\n// * **Ctrl-Shift-0** for making the current textblock a paragraph\r\n// * **Ctrl-Shift-1** to **Ctrl-Shift-Digit6** for making the current\r\n// textblock a heading of the corresponding level\r\n// * **Ctrl-Shift-Backslash** to make the current textblock a code block\r\n// * **Ctrl-Shift-8** to wrap the selection in an ordered list\r\n// * **Ctrl-Shift-9** to wrap the selection in a bullet list\r\n// * **Ctrl->** to wrap the selection in a block quote\r\n// * **Enter** to split a non-empty textblock in a list item while at\r\n// the same time splitting the list item\r\n// * **Mod-Enter** to insert a hard break\r\n// * **Mod-_** to insert a horizontal rule\r\n// * **Backspace** to undo an input rule\r\n// * **Alt-ArrowUp** to `joinUp`\r\n// * **Alt-ArrowDown** to `joinDown`\r\n// * **Mod-BracketLeft** to `lift`\r\n// * **Escape** to `selectParentNode`\r\n//\r\n// You can suppress or map these bindings by passing a `mapKeys`\r\n// argument, which maps key names (say `\"Mod-B\"` to either `false`, to\r\n// remove the binding, or a new key name string.\r\nexport function buildKeymap(schema: Schema, mapKeys?: Keymap) {\r\n const keys = {};\r\n let type: MarkType | NodeType;\r\n function bind(key: string, cmd: (...args: any[]) => boolean) {\r\n if (mapKeys) {\r\n const mapped = mapKeys[key];\r\n if (mapped === false) {\r\n return;\r\n }\r\n if (mapped) {\r\n key = mapped;\r\n }\r\n }\r\n keys[key] = cmd;\r\n }\r\n\r\n bind('Mod-z', undo);\r\n bind('Shift-Mod-z', redo);\r\n bind('Backspace', undoInputRule);\r\n if (!mac) {\r\n bind('Mod-y', redo);\r\n }\r\n\r\n bind('Alt-ArrowUp', joinUp);\r\n bind('Alt-ArrowDown', joinDown);\r\n bind('Mod-BracketLeft', lift);\r\n bind('Escape', selectParentNode);\r\n\r\n // tslint:disable:no-conditional-assignment\r\n if ((type = schema.marks.strong)) {\r\n bind('Mod-b', toggleMark(type));\r\n bind('Mod-B', toggleMark(type));\r\n }\r\n if ((type = schema.marks.em)) {\r\n bind('Mod-i', toggleMark(type));\r\n bind('Mod-I', toggleMark(type));\r\n }\r\n if ((type = schema.marks.code)) {\r\n bind('Mod-`', toggleMark(type));\r\n }\r\n\r\n if ((type = schema.nodes.bullet_list)) {\r\n bind('Shift-Ctrl-8', wrapInList(type));\r\n }\r\n if ((type = schema.nodes.ordered_list)) {\r\n bind('Shift-Ctrl-9', wrapInList(type));\r\n }\r\n if ((type = schema.nodes.blockquote)) {\r\n bind('Ctrl->', wrapIn(type));\r\n }\r\n if ((type = schema.nodes.hard_break)) {\r\n const br = type;\r\n const cmd = chainCommands(exitCode, (state, dispatch) => {\r\n // tslint:disable-next-line:no-non-null-assertion\r\n dispatch!(state.tr.replaceSelectionWith(br.create()).scrollIntoView());\r\n return true;\r\n });\r\n bind('Mod-Enter', cmd);\r\n bind('Shift-Enter', cmd);\r\n if (mac) {\r\n bind('Ctrl-Enter', cmd);\r\n }\r\n }\r\n if ((type = schema.nodes.list_item)) {\r\n bind('Enter', splitListItem(type));\r\n bind('Mod-[', liftListItem(type));\r\n bind('Mod-]', sinkListItem(type));\r\n }\r\n if ((type = schema.nodes.paragraph)) {\r\n bind('Shift-Ctrl-0', setBlockType(type));\r\n }\r\n if ((type = schema.nodes.code_block)) {\r\n bind('Shift-Ctrl-\\\\', setBlockType(type));\r\n }\r\n if ((type = schema.nodes.heading)) {\r\n for (let i = 1; i <= 6; i++) {\r\n bind('Shift-Ctrl-' + i, setBlockType(type, { level: i }));\r\n }\r\n }\r\n if ((type = schema.nodes.horizontal_rule)) {\r\n const hr = type;\r\n bind('Mod-_', (state, dispatch) => {\r\n dispatch(state.tr.replaceSelectionWith(hr.create()).scrollIntoView());\r\n return true;\r\n });\r\n }\r\n\r\n return keys;\r\n}\r\n","import { notNullOrUndefined } from '@vendure/common/lib/shared-utils';\r\nimport { NodeType } from 'prosemirror-model';\r\nimport { EditorState } from 'prosemirror-state';\r\nimport { EditorView } from 'prosemirror-view';\r\n\r\nexport function markActive(state, type) {\r\n const { from, $from, to, empty } = state.selection;\r\n if (empty) {\r\n return type.isInSet(state.storedMarks || $from.marks());\r\n } else {\r\n return state.doc.rangeHasMark(from, to, type);\r\n }\r\n}\r\n\r\nexport function canInsert(state: EditorState, nodeType: NodeType): boolean {\r\n const $from = state.selection.$from;\r\n for (let d = $from.depth; d >= 0; d--) {\r\n const index = $from.index(d);\r\n if ($from.node(d).canReplaceWith(index, index, nodeType)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nexport interface ClarityIconOptions {\r\n shape: string;\r\n size?: number;\r\n label?: string;\r\n}\r\n\r\nexport function renderClarityIcon(options: ClarityIconOptions): (view: EditorView) => HTMLElement {\r\n return (view: EditorView) => {\r\n const icon = document.createElement('clr-icon');\r\n icon.setAttribute('shape', options.shape);\r\n icon.setAttribute('size', (options.size ?? IconSize.Small).toString());\r\n const labelEl = document.createElement('span');\r\n labelEl.textContent = options.label ?? '';\r\n return wrapInMenuItemWithIcon(icon, options.label ? labelEl : undefined);\r\n };\r\n}\r\n\r\nexport function wrapInMenuItemWithIcon(...elements: Array<HTMLElement | undefined | null>) {\r\n const wrapperEl = document.createElement('span');\r\n wrapperEl.classList.add('menu-item-with-icon');\r\n wrapperEl.append(...elements.filter(notNullOrUndefined));\r\n return wrapperEl;\r\n}\r\n\r\nexport const IconSize = {\r\n Large: 22,\r\n Small: 16,\r\n};\r\n","import { MenuItem } from 'prosemirror-menu';\r\nimport { Node, NodeType } from 'prosemirror-model';\r\nimport { EditorState, NodeSelection, Plugin, Transaction } from 'prosemirror-state';\r\nimport {\r\n addColumnAfter,\r\n addColumnBefore,\r\n addRowAfter,\r\n addRowBefore,\r\n deleteColumn,\r\n deleteRow,\r\n deleteTable,\r\n mergeCells,\r\n splitCell,\r\n toggleHeaderColumn,\r\n toggleHeaderRow,\r\n} from 'prosemirror-tables';\r\nimport { EditorView } from 'prosemirror-view';\r\n\r\nimport { ModalService } from '../../../../../providers/modal/modal.service';\r\nimport {\r\n ExternalImageAttrs,\r\n ExternalImageDialogComponent,\r\n} from '../../external-image-dialog/external-image-dialog.component';\r\nimport { RawHtmlDialogComponent } from '../../raw-html-dialog/raw-html-dialog.component';\r\nimport { ContextMenuItem, ContextMenuService } from '../context-menu/context-menu.service';\r\nimport { canInsert, renderClarityIcon } from '../menu/menu-common';\r\n\r\nexport function insertImageItem(nodeType: NodeType, modalService: ModalService) {\r\n return new MenuItem({\r\n title: 'Insert image',\r\n label: 'Image',\r\n render: renderClarityIcon({ shape: 'image', label: 'Image' }),\r\n class: '',\r\n css: '',\r\n enable(state: EditorState) {\r\n return canInsert(state, nodeType);\r\n },\r\n run(state: EditorState, _, view: EditorView) {\r\n let attrs: ExternalImageAttrs | undefined;\r\n if (state.selection instanceof NodeSelection && state.selection.node.type === nodeType) {\r\n attrs = state.selection.node.attrs as ExternalImageAttrs;\r\n }\r\n modalService\r\n .fromComponent(ExternalImageDialogComponent, {\r\n closable: true,\r\n locals: {\r\n existing: attrs,\r\n },\r\n })\r\n .subscribe(result => {\r\n if (result) {\r\n // tslint:disable-next-line:no-non-null-assertion\r\n view.dispatch(view.state.tr.replaceSelectionWith(nodeType.createAndFill(result)!));\r\n }\r\n view.focus();\r\n });\r\n },\r\n });\r\n}\r\n\r\nexport const imageContextMenuPlugin = (contextMenuService: ContextMenuService, modalService: ModalService) =>\r\n new Plugin({\r\n view: () => {\r\n return {\r\n update: view => {\r\n if (!view.hasFocus()) {\r\n return;\r\n }\r\n const { doc, selection } = view.state;\r\n let imageNode: Node | undefined;\r\n let imageNodePos = 0;\r\n doc.nodesBetween(selection.from, selection.to, (n, pos, parent) => {\r\n if (n.type.name === 'image') {\r\n imageNode = n;\r\n imageNodePos = pos;\r\n return false;\r\n }\r\n });\r\n if (imageNode) {\r\n const node = view.nodeDOM(imageNodePos);\r\n if (node instanceof HTMLImageElement) {\r\n contextMenuService.setContextMenu({\r\n ref: selection,\r\n title: 'Image',\r\n iconShape: 'image',\r\n element: node,\r\n coords: view.coordsAtPos(imageNodePos),\r\n items: [\r\n {\r\n enabled: true,\r\n iconShape: 'image',\r\n label: 'Image properties',\r\n onClick: () => {\r\n contextMenuService.clearContextMenu();\r\n modalService\r\n .fromComponent(ExternalImageDialogComponent, {\r\n closable: true,\r\n locals: {\r\n // tslint:disable-next-line:no-non-null-assertion\r\n existing: imageNode!.attrs as ExternalImageAttrs,\r\n },\r\n })\r\n .subscribe(result => {\r\n if (result) {\r\n // tslint:disable-next-line:no-non-null-assertion\r\n view.dispatch(\r\n view.state.tr.replaceSelectionWith(\r\n // tslint:disable-next-line:no-non-null-assertion\r\n imageNode!.type.createAndFill(result)!,\r\n ),\r\n );\r\n }\r\n view.focus();\r\n });\r\n },\r\n },\r\n ],\r\n });\r\n }\r\n } else {\r\n contextMenuService.clearContextMenu();\r\n }\r\n },\r\n };\r\n },\r\n });\r\n","import { MenuElement, MenuItem } from 'prosemirror-menu';\r\nimport { Node, Schema } from 'prosemirror-model';\r\nimport { EditorState, Plugin, TextSelection, Transaction } from 'prosemirror-state';\r\nimport {\r\n addColumnAfter,\r\n addColumnBefore,\r\n addRowAfter,\r\n addRowBefore,\r\n deleteColumn,\r\n deleteRow,\r\n deleteTable,\r\n isInTable,\r\n mergeCells,\r\n splitCell,\r\n tableNodes,\r\n tableNodeTypes,\r\n toggleHeaderCell,\r\n toggleHeaderColumn,\r\n toggleHeaderRow,\r\n} from 'prosemirror-tables';\r\nimport { Decoration, DecorationSet } from 'prosemirror-view';\r\n\r\nimport { ContextMenuItem, ContextMenuService } from '../context-menu/context-menu.service';\r\nimport { buildMenuItems } from '../menu/menu';\r\nimport { renderClarityIcon } from '../menu/menu-common';\r\n\r\nexport const tableContextMenuPlugin = (contextMenuService: ContextMenuService) =>\r\n new Plugin({\r\n view: () => {\r\n return {\r\n update: view => {\r\n if (!view.hasFocus()) {\r\n return;\r\n }\r\n const { doc, selection } = view.state;\r\n let tableNode: Node | undefined;\r\n let tableNodePos = 0;\r\n doc.nodesBetween(selection.from, selection.to, (n, pos, parent) => {\r\n if (n.type.name === 'table') {\r\n tableNode = n;\r\n tableNodePos = pos;\r\n return false;\r\n }\r\n });\r\n if (tableNode) {\r\n const node = view.nodeDOM(tableNodePos);\r\n if (node instanceof Element) {\r\n function createMenuItem(\r\n label: string,\r\n commandFn: (\r\n state: EditorState,\r\n dispatch?: (tr: Transaction) => void,\r\n ) => boolean,\r\n iconClass?: string,\r\n ): ContextMenuItem {\r\n const enabled = commandFn(view.state);\r\n return {\r\n label,\r\n enabled,\r\n iconClass,\r\n onClick: () => {\r\n contextMenuService.clearContextMenu();\r\n view.focus();\r\n commandFn(view.state, view.dispatch);\r\n },\r\n };\r\n }\r\n const separator: ContextMenuItem = {\r\n label: '',\r\n separator: true,\r\n enabled: true,\r\n onClick: () => {\r\n /**/\r\n },\r\n };\r\n contextMenuService.setContextMenu({\r\n ref: selection,\r\n title: 'Table',\r\n iconShape: 'table',\r\n element: node,\r\n coords: view.coordsAtPos(tableNodePos),\r\n items: [\r\n createMenuItem('Insert column before', addColumnBefore, 'add-column'),\r\n createMenuItem('Insert column after', addColumnAfter, 'add-column'),\r\n createMenuItem('Insert row before', addRowBefore, 'add-row'),\r\n createMenuItem('Insert row after', addRowAfter, 'add-row'),\r\n createMenuItem('Merge cells', mergeCells),\r\n createMenuItem('Split cell', splitCell),\r\n separator,\r\n createMenuItem('Toggle header column', toggleHeaderColumn),\r\n createMenuItem('Toggle header row', toggleHeaderRow),\r\n separator,\r\n createMenuItem('Delete column', deleteColumn),\r\n createMenuItem('Delete row', deleteRow),\r\n createMenuItem('Delete table', deleteTable),\r\n ],\r\n });\r\n }\r\n } else {\r\n contextMenuService.clearContextMenu();\r\n }\r\n },\r\n };\r\n },\r\n });\r\n\r\nexport function getTableNodes() {\r\n return tableNodes({\r\n tableGroup: 'block',\r\n cellContent: 'block+',\r\n cellAttributes: {\r\n background: {\r\n default: null,\r\n getFromDOM(dom) {\r\n return (dom as HTMLElement).style.backgroundColor || null;\r\n },\r\n setDOMAttr(value, attrs) {\r\n if (value) {\r\n attrs.style = (attrs.style || '') + `background-color: ${value};`;\r\n }\r\n },\r\n },\r\n },\r\n });\r\n}\r\n\r\nexport function getTableMenu(schema: Schema) {\r\n function item(\r\n label: string,\r\n cmd: (state: EditorState, dispatch?: (tr: Transaction) => void) => boolean,\r\n iconShape?: string,\r\n ) {\r\n return new MenuItem({\r\n label,\r\n select: cmd,\r\n run: cmd,\r\n render: iconShape ? renderClarityIcon({ shape: iconShape, label }) : undefined,\r\n });\r\n }\r\n\r\n function separator(): MenuElement {\r\n return new MenuItem({\r\n select: state => isInTable(state),\r\n run: state => {\r\n /**/\r\n },\r\n render: view => {\r\n const el = document.createElement('div');\r\n el.classList.add('menu-separator');\r\n return el;\r\n },\r\n });\r\n }\r\n\r\n return [\r\n item('Insert column before', addColumnBefore),\r\n item('Insert column after', addColumnAfter),\r\n item('Insert row before', addRowBefore),\r\n item('Insert row after', addRowAfter),\r\n item('Merge cells', mergeCells),\r\n item('Split cell', splitCell),\r\n separator(),\r\n item('Toggle header column', toggleHeaderColumn),\r\n item('Toggle header row', toggleHeaderRow),\r\n item('Toggle header cells', toggleHeaderCell),\r\n separator(),\r\n item('Delete column', deleteColumn),\r\n item('Delete row', deleteRow),\r\n item('Delete table', deleteTable),\r\n ];\r\n}\r\n\r\nexport function addTable(state, dispatch, { rowsCount, colsCount, withHeaderRow, cellContent }) {\r\n const offset = state.tr.selection.anchor + 1;\r\n\r\n const nodes = createTable(state, rowsCount, colsCount, withHeaderRow, cellContent);\r\n const tr = state.tr.replaceSelectionWith(nodes).scrollIntoView();\r\n const resolvedPos = tr.doc.resolve(offset);\r\n\r\n tr.setSelection(TextSelection.near(resolvedPos));\r\n\r\n dispatch(tr);\r\n}\r\n\r\nfunction createTable(state, rowsCount, colsCount, withHeaderRow, cellContent) {\r\n const types = tableNodeTypes(state.schema);\r\n const headerCells: Node[] = [];\r\n const cells: Node[] = [];\r\n const createCell = (cellType, _cellContent) =>\r\n _cellContent ? cellType.createChecked(null, _cellContent) : cellType.createAndFill();\r\n\r\n for (let index = 0; index < colsCount; index += 1) {\r\n const cell = createCell(types.cell, cellContent);\r\n\r\n if (cell) {\r\n cells.push(cell);\r\n }\r\n\r\n if (withHeaderRow) {\r\n const headerCell = createCell(types.header_cell, cellContent);\r\n\r\n if (headerCell) {\r\n headerCells.push(headerCell);\r\n }\r\n }\r\n }\r\n\r\n const rows: Node[] = [];\r\n\r\n for (let index = 0; index < rowsCount; index += 1) {\r\n rows.push(types.row.createChecked(null, withHeaderRow && index === 0 ? headerCells : cells));\r\n }\r\n\r\n return types.table.createChecked(null, rows);\r\n}\r\n","import { toggleMark } from 'prosemirror-commands';\r\nimport { icons, MenuItem } from 'prosemirror-menu';\r\nimport { MarkType } from 'prosemirror-model';\r\nimport { EditorState, TextSelection } from 'prosemirror-state';\r\n\r\nimport { ModalService } from '../../../../../providers/modal/modal.service';\r\nimport { LinkAttrs, LinkDialogComponent } from '../../link-dialog/link-dialog.component';\r\n\r\nimport { markActive, renderClarityIcon } from './menu-common';\r\n\r\nfunction selectionIsWithinLink(state: EditorState, anchor: number, head: number): boolean {\r\n const { doc } = state;\r\n const headLink = doc\r\n .resolve(head)\r\n .marks()\r\n .find(m => m.type.name === 'link');\r\n const anchorLink = doc\r\n .resolve(anchor)\r\n .marks()\r\n .find(m => m.type.name === 'link');\r\n if (headLink && anchorLink && headLink.eq(anchorLink)) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\nexport function linkItem(linkMark: MarkType, modalService: ModalService) {\r\n return new MenuItem({\r\n title: 'Add or remove link',\r\n render: renderClarityIcon({ shape: 'link', size: 22 }),\r\n class: '',\r\n css: '',\r\n active(state) {\r\n return markActive(state, linkMark);\r\n },\r\n enable(state) {\r\n const { selection } = state;\r\n return !selection.empty || selectionIsWithinLink(state, selection.anchor, selection.head);\r\n },\r\n run(state: EditorState, dispatch, view) {\r\n let attrs: LinkAttrs | undefined;\r\n const { selection, doc } = state;\r\n if (\r\n selection instanceof TextSelection &&\r\n selectionIsWithinLink(state, selection.anchor + 1, selection.head - 1)\r\n ) {\r\n const mark = doc\r\n .resolve(selection.anchor + 1)\r\n .marks()\r\n .find(m => m.type.name === 'link');\r\n if (mark) {\r\n attrs = mark.attrs as LinkAttrs;\r\n }\r\n }\r\n modalService\r\n .fromComponent(LinkDialogComponent, {\r\n closable: true,\r\n locals: {\r\n existing: attrs,\r\n },\r\n })\r\n .subscribe(result => {\r\n let tr = state.tr;\r\n if (result) {\r\n const { $from, $to } = selection.ranges[0];\r\n tr = tr.removeMark($from.pos, $to.pos, linkMark);\r\n if (result.href !== '') {\r\n tr = tr.addMark($from.pos, $to.pos, linkMark.create(result));\r\n }\r\n }\r\n dispatch(tr.scrollIntoView());\r\n view.focus();\r\n });\r\n return true;\r\n },\r\n });\r\n}\r\n","import { DropdownSubmenu, MenuElement } from 'prosemirror-menu';\r\nimport { EditorState } from 'prosemirror-state';\r\nimport { EditorView } from 'prosemirror-view';\r\n\r\nimport { wrapInMenuItemWithIcon } from './menu-common';\r\n\r\nexport class SubMenuWithIcon extends DropdownSubmenu {\r\n private icon: HTMLElement;\r\n constructor(\r\n content: readonly MenuElement[] | MenuElement,\r\n options: {\r\n label?: string;\r\n icon: () => HTMLElement;\r\n },\r\n ) {\r\n super(content, options);\r\n this.icon = options.icon();\r\n }\r\n render(view: EditorView): {\r\n dom: HTMLElement;\r\n update: (state: EditorState) => boolean;\r\n } {\r\n const { dom, update } = super.render(view);\r\n return {\r\n dom: wrapInMenuItemWithIcon(this.icon, dom),\r\n update,\r\n };\r\n }\r\n}\r\n","import { toggleMark } from 'prosemirror-commands';\r\nimport { redo, undo } from 'prosemirror-history';\r\nimport {\r\n blockTypeItem,\r\n Dropdown,\r\n icons,\r\n joinUpItem,\r\n liftItem,\r\n MenuItem,\r\n selectParentNodeItem,\r\n wrapItem,\r\n} from 'prosemirror-menu';\r\nimport { MarkType, NodeType, Schema } from 'prosemirror-model';\r\nimport { wrapInList } from 'prosemirror-schema-list';\r\nimport { EditorState } from 'prosemirror-state';\r\n\r\nimport { ModalService } from '../../../../../providers/modal/modal.service';\r\nimport { insertImageItem } from '../plugins/image-plugin';\r\nimport { addTable } from '../plugins/tables-plugin';\r\n\r\nimport { linkItem } from './links';\r\nimport { canInsert, IconSize, markActive, renderClarityIcon, wrapInMenuItemWithIcon } from './menu-common';\r\nimport { SubMenuWithIcon } from './sub-menu-with-icon';\r\n\r\n// Helpers to create specific types of items\r\n\r\ntype CmdItemOptions = Record<string, any> & { iconShape?: string };\r\n\r\nfunction cmdItem(cmd: (...args: any[]) => void, options: CmdItemOptions) {\r\n const passedOptions = {\r\n label: options.title,\r\n run: cmd,\r\n render: options.iconShape\r\n ? renderClarityIcon({ shape: options.iconShape, size: IconSize.Large })\r\n : undefined,\r\n };\r\n // tslint:disable-next-line:forin\r\n for (const prop in options) {\r\n passedOptions[prop] = options[prop];\r\n }\r\n if ((!options.enable || options.enable === true) && !options.select) {\r\n passedOptions[options.enable ? 'enable' : 'select'] = state => cmd(state);\r\n }\r\n\r\n return new MenuItem(passedOptions as any);\r\n}\r\n\r\nfunction markItem(markType, options: CmdItemOptions) {\r\n const passedOptions = {\r\n active(state) {\r\n return markActive(state, markType);\r\n },\r\n enable: true,\r\n };\r\n // tslint:disable-next-line:forin\r\n for (const prop in options) {\r\n passedOptions[prop] = options[prop];\r\n }\r\n return cmdItem(toggleMark(markType), passedOptions);\r\n}\r\n\r\nfunction wrapListItem(nodeType, options: CmdItemOptions) {\r\n return cmdItem(wrapInList(nodeType, options.attrs), options);\r\n}\r\n\r\n// :: (Schema) → Object\r\n// Given a schema, look for default mark and node types in it and\r\n// return an object with relevant menu items relating to those marks:\r\n//\r\n// **`toggleStrong`**`: MenuItem`\r\n// : A menu item to toggle the [strong mark](#schema-basic.StrongMark).\r\n//\r\n// **`toggleEm`**`: MenuItem`\r\n// : A menu item to toggle the [emphasis mark](#schema-basic.EmMark).\r\n//\r\n// **`toggleCode`**`: MenuItem`\r\n// : A menu item to toggle the [code font mark](#schema-basic.CodeMark).\r\n//\r\n// **`toggleLink`**`: MenuItem`\r\n// : A menu item to toggle the [link mark](#schema-basic.LinkMark).\r\n//\r\n// **`insertImage`**`: MenuItem`\r\n// : A menu item to insert an [image](#schema-basic.Image).\r\n//\r\n// **`wrapBulletList`**`: MenuItem`\r\n// : A menu item to wrap the selection in a [bullet list](#schema-list.BulletList).\r\n//\r\n// **`wrapOrderedList`**`: MenuItem`\r\n// : A menu item to wrap the selection in an [ordered list](#schema-list.OrderedList).\r\n//\r\n// **`wrapBlockQuote`**`: MenuItem`\r\n// : A menu item to wrap the selection in a [block quote](#schema-basic.BlockQuote).\r\n//\r\n// **`makeParagraph`**`: MenuItem`\r\n// : A menu item to set the current textblock to be a normal\r\n// [paragraph](#schema-basic.Paragraph).\r\n//\r\n// **`makeCodeBlock`**`: MenuItem`\r\n// : A menu item to set the current textblock to be a\r\n// [code block](#schema-basic.CodeBlock).\r\n//\r\n// **`makeHead[N]`**`: MenuItem`\r\n// : Where _N_ is 1 to 6. Menu items to set the current textblock to\r\n// be a [heading](#schema-basic.Heading) of level _N_.\r\n//\r\n// **`insertHorizontalRule`**`: MenuItem`\r\n// : A menu item to insert a horizontal rule.\r\n//\r\n// The return value also contains some prefabricated menu elements and\r\n// menus, that you can use instead of composing your own menu from\r\n// scratch:\r\n//\r\n// **`insertMenu`**`: Dropdown`\r\n// : A dropdown containing the `insertImage` and\r\n// `insertHorizontalRule` items.\r\n//\r\n// **`typeMenu`**`: Dropdown`\r\n// : A dropdown containing the items for making the current\r\n// textblock a paragraph, code block, or heading.\r\n//\r\n// **`fullMenu`**`: [[MenuElement]]`\r\n// : An array of arrays of menu elements for use as the full menu\r\n// for, for example the [menu bar](https://github.com/prosemirror/prosemirror-menu#user-content-menubar).\r\nexport function buildMenuItems(schema: Schema, modalService: ModalService) {\r\n const r: Record<string, any> = {};\r\n let type: MarkType | NodeType;\r\n // tslint:disable:no-conditional-assignment\r\n if ((type = schema.marks.strong)) {\r\n r.toggleStrong = markItem(type, {\r\n title: 'Toggle strong style',\r\n iconShape: 'bold',\r\n });\r\n }\r\n if ((type = schema.marks.em)) {\r\n r.toggleEm = markItem(type, {\r\n title: 'Toggle emphasis',\r\n iconShape: 'italic',\r\n });\r\n }\r\n if ((type = schema.marks.code)) {\r\n r.toggleCode = markItem(type, { title: 'Toggle code font', icon: icons.code });\r\n }\r\n if ((type = schema.marks.link)) {\r\n r.toggleLink = linkItem(type, modalService);\r\n }\r\n\r\n if ((type = schema.nodes.image)) {\r\n r.insertImage = insertImageItem(type, modalService);\r\n }\r\n if ((type = schema.nodes.bullet_list)) {\r\n r.wrapBulletList = wrapListItem(type, {\r\n title: 'Wrap in bullet list',\r\n iconShape: 'bullet-list',\r\n });\r\n }\r\n if ((type = schema.nodes.ordered_list)) {\r\n r.wrapOrderedList = wrapListItem(type, {\r\n title: 'Wrap in ordered list',\r\n iconShape: 'number-list',\r\n });\r\n }\r\n if ((type = schema.nodes.blockquote)) {\r\n r.wrapBlockQuote = wrapItem(type, {\r\n title: 'Wrap in block quote',\r\n render: renderClarityIcon({ shape: 'block-quote', size: IconSize.Large }),\r\n });\r\n }\r\n if ((type = schema.nodes.paragraph)) {\r\n r.makeParagraph = blockTypeItem(type, {\r\n title: 'Change to paragraph',\r\n render: renderClarityIcon({ shape: 'text', label: 'Plain' }),\r\n });\r\n }\r\n if ((type = schema.nodes.code_block)) {\r\n r.makeCodeBlock = blockTypeItem(type, {\r\n title: 'Change to code block',\r\n render: renderClarityIcon({ shape: 'code', label: 'Code' }),\r\n });\r\n }\r\n if ((type = schema.nodes.heading)) {\r\n for (let i = 1; i <= 10; i++) {\r\n r['makeHead' + i] = blockTypeItem(type, {\r\n title: 'Change to heading ' + i,\r\n label: 'Level ' + i,\r\n attrs: { level: i },\r\n });\r\n }\r\n }\r\n if ((type = schema.nodes.horizontal_rule)) {\r\n const hr = type;\r\n r.insertHorizontalRule = new MenuItem({\r\n title: 'Insert horizontal rule',\r\n render: view => {\r\n const icon = document.createElement('div');\r\n icon.classList.add('custom-icon', 'hr-icon');\r\n const labelEl = document.createElement('span');\r\n labelEl.textContent = 'Horizontal rule';\r\n return wrapInMenuItemWithIcon(icon, labelEl);\r\n },\r\n enable(state) {\r\n return canInsert(state, hr);\r\n },\r\n run(state: EditorState, dispatch) {\r\n dispatch(state.tr.replaceSelectionWith(hr.create()));\r\n },\r\n });\r\n }\r\n\r\n const cut = <T>(arr: T[]): T[] => arr.filter(x => x);\r\n r.insertMenu = new Dropdown(\r\n cut([\r\n r.insertImage,\r\n r.insertHorizontalRule,\r\n new MenuItem({\r\n run: (state, dispatch) => {\r\n addTable(state, dispatch, {\r\n rowsCount: 2,\r\n colsCount: 2,\r\n withHeaderRow: true,\r\n cellContent: '',\r\n });\r\n },\r\n render: renderClarityIcon({ shape: 'table', label: 'Table' }),\r\n }),\r\n ]),\r\n { label: 'Insert' },\r\n );\r\n r.typeMenu = new Dropdown(\r\n cut([\r\n r.makeParagraph,\r\n r.makeCodeBlock,\r\n r.makeHead1 &&\r\n new SubMenuWithIcon(\r\n cut([r.makeHead1, r.makeHead2, r.makeHead3, r.makeHead4, r.makeHead5, r.makeHead6]),\r\n {\r\n label: 'Heading',\r\n icon: () => {\r\n const icon = document.createElement('div');\r\n icon.textContent = 'H';\r\n icon.classList.add('custom-icon', 'h-icon');\r\n return icon;\r\n },\r\n },\r\n ),\r\n ]),\r\n { label: 'Type...' },\r\n );\r\n\r\n const inlineMenu = cut([r.toggleStrong, r.toggleEm, r.toggleLink]);\r\n r.inlineMenu = [inlineMenu];\r\n r.blockMenu = [\r\n cut([\r\n r.wrapBulletList,\r\n r.wrapOrderedList,\r\n r.wrapBlockQuote,\r\n joinUpItem,\r\n liftItem,\r\n selectParentNodeItem,\r\n ]),\r\n ];\r\n const undoRedo = [\r\n new MenuItem({\r\n title: 'Undo last change',\r\n run: undo,\r\n enable(state) {\r\n return undo(state);\r\n },\r\n render: renderClarityIcon({ shape: 'undo', size: IconSize.Large }),\r\n }),\r\n new MenuItem({\r\n title: 'Redo last undone change',\r\n run: redo,\r\n enable(state) {\r\n return redo(state);\r\n },\r\n render: renderClarityIcon({ shape: 'redo', size: IconSize.Large }),\r\n }),\r\n ];\r\n r.fullMenu = [inlineMenu].concat([[r.insertMenu, r.typeMenu]], [undoRedo], r.blockMenu);\r\n\r\n return r;\r\n}\r\n","import { Injector } from '@angular/core';\r\nimport { menuBar } from 'prosemirror-menu';\r\nimport { Schema } from 'prosemirror-model';\r\nimport { EditorState, Plugin } from 'prosemirror-state';\r\n\r\nimport { ModalService } from '../../../../../providers/modal/modal.service';\r\n\r\nimport { buildMenuItems } from './menu';\r\n\r\nexport interface CustomMenuPluginOptions {\r\n floatingMenu?: boolean;\r\n schema: Schema;\r\n injector: Injector;\r\n}\r\n\r\nexport function customMenuPlugin(options: CustomMenuPluginOptions) {\r\n const modalService = options.injector.get(ModalService);\r\n const pmMenuBarPlugin = menuBar({\r\n floating: options.floatingMenu !== false,\r\n content: buildMenuItems(options.schema, modalService).fullMenu,\r\n });\r\n return pmMenuBarPlugin;\r\n}\r\n","import { MarkType, ResolvedPos } from 'prosemirror-model';\r\n\r\n/**\r\n * Retrieve the start and end position of a mark\r\n * \"Borrowed\" from [tiptap](https://github.com/scrumpy/tiptap)\r\n */\r\nexport const getMarkRange = (\r\n pmPosition: ResolvedPos | null = null,\r\n type: MarkType | null | undefined = null,\r\n): { from: number; to: number } | false => {\r\n if (!pmPosition || !type) {\r\n return false;\r\n }\r\n\r\n const start = pmPosition.parent.childAfter(pmPosition.parentOffset);\r\n\r\n if (!start.node) {\r\n return false;\r\n }\r\n\r\n const mark = start.node.marks.find(({ type: markType }) => markType === type);\r\n if (!mark) {\r\n return false;\r\n }\r\n\r\n let startIndex = pmPosition.index();\r\n let startPos = pmPosition.start() + start.offset;\r\n while (startIndex > 0 && mark.isInSet(pmPosition.parent.child(startIndex - 1).marks)) {\r\n startIndex -= 1;\r\n startPos -= pmPosition.parent.child(startIndex).nodeSize;\r\n }\r\n\r\n const endPos = startPos + start.node.nodeSize;\r\n\r\n return { from: startPos, to: endPos };\r\n};\r\n","import { Plugin, TextSelection } from 'prosemirror-state';\r\n\r\nimport { getMarkRange } from '../utils';\r\n\r\n/**\r\n * Causes the entire link to be selected when clicked.\r\n */\r\nexport const linkSelectPlugin = new Plugin({\r\n props: {\r\n handleClick(view, pos) {\r\n const { doc, tr, schema } = view.state;\r\n const range = getMarkRange(doc.resolve(pos), schema.marks.link);\r\n if (!range) {\r\n return false;\r\n }\r\n\r\n const $start = doc.resolve(range.from);\r\n const $end = doc.resolve(range.to);\r\n const transaction = tr.setSelection(new TextSelection($start, $end));\r\n\r\n view.dispatch(transaction);\r\n return true;\r\n },\r\n },\r\n});\r\n","import { DOMParser, DOMSerializer, Node } from 'prosemirror-model';\r\nimport { Plugin } from 'prosemirror-state';\r\nimport { Protocol } from 'puppeteer';\r\n\r\nimport { ModalService } from '../../../../../providers/modal/modal.service';\r\nimport { RawHtmlDialogComponent } from '../../raw-html-dialog/raw-html-dialog.component';\r\nimport { ContextMenuService } from '../context-menu/context-menu.service';\r\n\r\n/**\r\n * Implements editing of raw HTML for the selected node in the editor.\r\n */\r\nexport const rawEditorPlugin = (contextMenuService: ContextMenuService, modalService: ModalService) =>\r\n new Plugin({\r\n view: _view => {\r\n const domParser = DOMParser.fromSchema(_view.state.schema);\r\n const domSerializer = DOMSerializer.fromSchema(_view.state.schema);\r\n return {\r\n update: view => {\r\n if (!view.hasFocus()) {\r\n return;\r\n }\r\n let topLevelNode: Node | undefined;\r\n const { doc, selection } = view.state;\r\n let topLevelNodePos = 0;\r\n doc.nodesBetween(selection.from, selection.to, (n, pos, parent) => {\r\n if (parent === doc) {\r\n topLevelNode = n;\r\n topLevelNodePos = pos;\r\n return false;\r\n }\r\n });\r\n if (topLevelNode) {\r\n const node = view.nodeDOM(topLevelNodePos);\r\n if (node instanceof HTMLElement) {\r\n contextMenuService.setContextMenu({\r\n ref: selection,\r\n title: '',\r\n // iconShape: 'ellipsis-vertical',\r\n element: node,\r\n coords: view.coordsAtPos(topLevelNodePos),\r\n items: [\r\n {\r\n enabled: true,\r\n iconShape: 'code',\r\n label: 'Edit HTML',\r\n onClick: () => {\r\n contextMenuService.clearContextMenu();\r\n const element = domSerializer.serializeNode(\r\n // tslint:disable-next-line:no-non-null-assertion\r\n topLevelNode!,\r\n ) as HTMLElement;\r\n modalService\r\n .fromComponent(RawHtmlDialogComponent, {\r\n size: 'xl',\r\n locals: {\r\n html: element.outerHTML,\r\n },\r\n })\r\n .subscribe(result => {\r\n if (result) {\r\n const domNode = htmlToDomNode(\r\n result,\r\n topLevelNode?.isLeaf ? undefined : node,\r\n );\r\n if (domNode) {\r\n let tr = view.state.tr;\r\n const parsedNodeSlice = domParser.parse(domNode);\r\n try {\r\n tr = tr.replaceRangeWith(\r\n topLevelNodePos,\r\n topLevelNodePos +\r\n (topLevelNode?.nodeSize ?? 0),\r\n parsedNodeSlice,\r\n );\r\n } catch (err: any) {\r\n // tslint:disable-next-line:no-console\r\n console.error(err);\r\n }\r\n view.dispatch(tr);\r\n view.focus();\r\n }\r\n }\r\n });\r\n },\r\n },\r\n ],\r\n });\r\n }\r\n }\r\n },\r\n };\r\n },\r\n });\r\n\r\nfunction htmlToDomNode(html: string, wrapInParent?: HTMLElement) {\r\n html = `${html.trim()}`;\r\n const template = document.createElement('template');\r\n if (wrapInParent) {\r\n const parentClone = wrapInParent.cloneNode(false) as HTMLElement;\r\n parentClone.innerHTML = html;\r\n template.content.appendChild(parentClone);\r\n } else {\r\n const parent = document.createElement('p');\r\n parent.innerHTML = html;\r\n template.content.appendChild(parent);\r\n }\r\n return template.content.firstChild;\r\n}\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { baseKeymap } from 'prosemirror-commands';\r\nimport { dropCursor } from 'prosemirror-dropcursor';\r\nimport { gapCursor } from 'prosemirror-gapcursor';\r\nimport { history } from 'prosemirror-history';\r\nimport { keymap } from 'prosemirror-keymap';\r\nimport { DOMParser, DOMSerializer, Schema } from 'prosemirror-model';\r\nimport { schema } from 'prosemirror-schema-basic';\r\nimport { addListNodes } from 'prosemirror-schema-list';\r\nimport { EditorState, Plugin } from 'prosemirror-state';\r\nimport { columnResizing, fixTables, tableEditing } from 'prosemirror-tables';\r\nimport { EditorView } from 'prosemirror-view';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { ModalService } from '../../../../providers/modal/modal.service';\r\n\r\nimport { ContextMenuService } from './context-menu/context-menu.service';\r\nimport { iframeNode, iframeNodeView } from './custom-nodes';\r\nimport { buildInputRules } from './inputrules';\r\nimport { buildKeymap } from './keymap';\r\nimport { customMenuPlugin } from './menu/menu-plugin';\r\nimport { imageContextMenuPlugin } from './plugins/image-plugin';\r\nimport { linkSelectPlugin } from './plugins/link-select-plugin';\r\nimport { rawEditorPlugin } from './plugins/raw-editor-plugin';\r\nimport { getTableNodes, tableContextMenuPlugin } from './plugins/tables-plugin';\r\nimport { SetupOptions } from './types';\r\n\r\nexport interface CreateEditorViewOptions {\r\n onTextInput: (content: string) => void;\r\n element: HTMLElement;\r\n isReadOnly: () => boolean;\r\n}\r\n\r\n@Injectable()\r\nexport class ProsemirrorService {\r\n editorView: EditorView;\r\n\r\n // Mix the nodes from prosemirror-schema-list into the basic schema to\r\n // create a schema with list support.\r\n private mySchema = new Schema({\r\n nodes: addListNodes(schema.spec.nodes, 'paragraph block*', 'block')\r\n .append(getTableNodes() as any)\r\n .addToEnd('iframe', iframeNode),\r\n marks: schema.spec.marks,\r\n });\r\n private enabled = true;\r\n\r\n constructor(private injector: Injector, private contextMenuService: ContextMenuService) {}\r\n\r\n contextMenuItems$: Observable<string>;\r\n\r\n createEditorView(options: CreateEditorViewOptions) {\r\n this.editorView = new EditorView(options.element, {\r\n state: this.getStateFromText(''),\r\n dispatchTransaction: tr => {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n this.editorView.updateState(this.editorView.state.apply(tr));\r\n if (tr.docChanged) {\r\n const content = this.getTextFromState(this.editorView.state);\r\n options.onTextInput(content);\r\n }\r\n },\r\n editable: () => options.isReadOnly(),\r\n handleDOMEvents: {\r\n focus: view => {\r\n this.contextMenuService.setVisibility(true);\r\n },\r\n blur: view => {\r\n this.contextMenuService.setVisibility(false);\r\n },\r\n },\r\n nodeViews: {\r\n iframe: iframeNodeView,\r\n },\r\n });\r\n }\r\n\r\n update(text: string) {\r\n if (this.editorView) {\r\n const currentText = this.getTextFromState(this.editorView.state);\r\n if (text !== currentText) {\r\n let state = this.getStateFromText(text);\r\n if (document.body.contains(this.editorView.dom)) {\r\n const fix = fixTables(state);\r\n if (fix) state = state.apply(fix.setMeta('addToHistory', false));\r\n this.editorView.updateState(state);\r\n }\r\n }\r\n }\r\n }\r\n\r\n destroy() {\r\n if (this.editorView) {\r\n this.editorView.destroy();\r\n }\r\n }\r\n\r\n setEnabled(enabled: boolean) {\r\n if (this.editorView) {\r\n this.enabled = enabled;\r\n // Updating the state causes ProseMirror to check the\r\n // `editable()` function from the contructor config object\r\n // newly.\r\n this.editorView.updateState(this.editorView.state);\r\n }\r\n }\r\n\r\n private getStateFromText(text: string | null | undefined): EditorState {\r\n const div = document.createElement('div');\r\n div.innerHTML = text ?? '';\r\n return EditorState.create({\r\n doc: DOMParser.fromSchema(this.mySchema).parse(div),\r\n plugins: this.configurePlugins({ schema: this.mySchema, floatingMenu: false }),\r\n });\r\n }\r\n\r\n private getTextFromState(state: EditorState): string {\r\n const div = document.createElement('div');\r\n const fragment = DOMSerializer.fromSchema(this.mySchema).serializeFragment(state.doc.content);\r\n\r\n div.appendChild(fragment);\r\n\r\n return div.innerHTML;\r\n }\r\n\r\n private configurePlugins(options: SetupOptions) {\r\n const plugins = [\r\n buildInputRules(options.schema),\r\n keymap(buildKeymap(options.schema, options.mapKeys)),\r\n keymap(baseKeymap),\r\n dropCursor(),\r\n gapCursor(),\r\n linkSelectPlugin,\r\n columnResizing({}),\r\n tableEditing({ allowTableNodeSelection: true }),\r\n tableContextMenuPlugin(this.contextMenuService),\r\n imageContextMenuPlugin(this.contextMenuService, this.injector.get(ModalService)),\r\n rawEditorPlugin(this.contextMenuService, this.injector.get(ModalService)),\r\n customMenuPlugin({\r\n floatingMenu: options.floatingMenu,\r\n injector: this.injector,\r\n schema: options.schema,\r\n }),\r\n ];\r\n if (options.history !== false) {\r\n plugins.push(history());\r\n }\r\n\r\n return plugins.concat(\r\n new Plugin({\r\n props: {\r\n attributes: { class: 'vdr-prosemirror' },\r\n },\r\n }),\r\n );\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostBinding,\r\n Input,\r\n OnDestroy,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nimport { ContextMenuService } from './prosemirror/context-menu/context-menu.service';\r\nimport { ProsemirrorService } from './prosemirror/prosemirror.service';\r\n\r\n/**\r\n * @description\r\n * A rich text (HTML) editor based on Prosemirror (https://prosemirror.net/)\r\n *\r\n * @example\r\n * ```HTML\r\n * <vdr-rich-text-editor\r\n * [(ngModel)]=\"description\"\r\n * label=\"Description\"\r\n * ></vdr-rich-text-editor>\r\n * ```\r\n *\r\n * @docsCategory components\r\n */\r\n@Component({\r\n selector: 'vdr-rich-text-editor',\r\n templateUrl: './rich-text-editor.component.html',\r\n styleUrls: ['./rich-text-editor.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: RichTextEditorComponent,\r\n multi: true,\r\n },\r\n ProsemirrorService,\r\n ContextMenuService,\r\n ],\r\n})\r\nexport class RichTextEditorComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\r\n @Input() label: string;\r\n @Input() set readonly(value: any) {\r\n this._readonly = !!value;\r\n this.prosemirrorService.setEnabled(!this._readonly);\r\n }\r\n @HostBinding('class.readonly')\r\n _readonly = false;\r\n\r\n onChange: (val: any) => void;\r\n onTouch: () => void;\r\n private value: string;\r\n\r\n @ViewChild('editor', { static: true }) private editorEl: ElementRef<HTMLDivElement>;\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n private prosemirrorService: ProsemirrorService,\r\n private viewContainerRef: ViewContainerRef,\r\n public contextMenuService: ContextMenuService,\r\n ) {}\r\n\r\n get menuElement(): HTMLDivElement | null {\r\n return this.viewContainerRef.element.nativeElement.querySelector('.ProseMirror-menubar');\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.prosemirrorService.createEditorView({\r\n element: this.editorEl.nativeElement,\r\n onTextInput: content => {\r\n this.onChange(content);\r\n this.changeDetector.markForCheck();\r\n },\r\n isReadOnly: () => !this._readonly,\r\n });\r\n if (this.value) {\r\n this.prosemirrorService.update(this.value);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.prosemirrorService.destroy();\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.prosemirrorService.setEnabled(!isDisabled);\r\n }\r\n\r\n writeValue(value: any) {\r\n if (value !== this.value) {\r\n this.value = value;\r\n if (this.prosemirrorService) {\r\n this.prosemirrorService.update(value);\r\n }\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n/**\r\n * A simple, stateless toggle button for indicating selection.\r\n */\r\n@Component({\r\n selector: 'vdr-select-toggle',\r\n templateUrl: './select-toggle.component.html',\r\n styleUrls: ['./select-toggle.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SelectToggleComponent {\r\n @Input() size: 'small' | 'large' = 'large';\r\n @Input() selected = false;\r\n @Input() hiddenWhenOff = false;\r\n @Input() disabled = false;\r\n @Input() label: string | undefined;\r\n @Output() selectedChange = new EventEmitter<boolean>();\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vdr-status-badge',\r\n templateUrl: './status-badge.component.html',\r\n styleUrls: ['./status-badge.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class StatusBadgeComponent {\r\n @Input() type: 'info' | 'success' | 'warning' | 'error' = 'info';\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\nimport { AbstractControl, FormGroup } from '@angular/forms';\r\n\r\nimport { CustomFieldConfig } from '../../../common/generated-types';\r\nimport { CustomFieldEntityName } from '../../../providers/custom-field-component/custom-field-component.service';\r\n\r\nexport type GroupedCustomFields = Array<{ tabName: string; customFields: CustomFieldConfig[] }>;\r\n\r\n@Component({\r\n selector: 'vdr-tabbed-custom-fields',\r\n templateUrl: './tabbed-custom-fields.component.html',\r\n styleUrls: ['./tabbed-custom-fields.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TabbedCustomFieldsComponent implements OnInit {\r\n @Input() entityName: CustomFieldEntityName;\r\n @Input() customFields: CustomFieldConfig[];\r\n @Input() customFieldsFormGroup: AbstractControl;\r\n @Input() readonly = false;\r\n @Input() compact = false;\r\n @Input() showLabel = true;\r\n readonly defaultTabName = '__default_tab__';\r\n tabbedCustomFields: GroupedCustomFields;\r\n\r\n ngOnInit(): void {\r\n this.tabbedCustomFields = this.groupByTabs(this.customFields);\r\n }\r\n\r\n customFieldIsSet(name: string): boolean {\r\n return !!this.customFieldsFormGroup?.get(name);\r\n }\r\n\r\n private groupByTabs(customFieldConfigs: CustomFieldConfig[]): GroupedCustomFields {\r\n const tabMap = new Map<string, CustomFieldConfig[]>();\r\n for (const field of customFieldConfigs) {\r\n const tabName = field.ui?.tab ?? this.defaultTabName;\r\n if (tabMap.has(tabName)) {\r\n tabMap.get(tabName)?.push(field);\r\n } else {\r\n tabMap.set(tabName, [field]);\r\n }\r\n }\r\n return Array.from(tabMap.entries())\r\n .sort((a, b) => (a[0] === this.defaultTabName ? -1 : 1))\r\n .map(([tabName, customFields]) => ({ tabName, customFields }));\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n/**\r\n * A button link to be used as actions in rows of a table.\r\n */\r\n@Component({\r\n selector: 'vdr-table-row-action',\r\n templateUrl: './table-row-action.component.html',\r\n styleUrls: ['./table-row-action.component.scss'],\r\n})\r\nexport class TableRowActionComponent {\r\n @Input() linkTo: any[];\r\n @Input() label: string;\r\n @Input() iconShape: string;\r\n @Input() disabled = false;\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { DataService } from '../../../data/providers/data.service';\r\n\r\n@Component({\r\n selector: 'vdr-tag-selector',\r\n templateUrl: './tag-selector.component.html',\r\n styleUrls: ['./tag-selector.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: TagSelectorComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class TagSelectorComponent implements OnInit, ControlValueAccessor {\r\n @Input() placeholder: string | undefined;\r\n allTags$: Observable<string[]>;\r\n onChange: (val: any) => void;\r\n onTouch: () => void;\r\n _value: string[];\r\n disabled: boolean;\r\n\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit(): void {\r\n this.allTags$ = this.dataService.product\r\n .getTagList()\r\n .mapStream(data => data.tags.items.map(i => i.value));\r\n }\r\n\r\n addTagFn(val: string) {\r\n return val;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n writeValue(obj: unknown): void {\r\n if (Array.isArray(obj)) {\r\n this._value = obj;\r\n }\r\n }\r\n\r\n valueChanged(event: string[]) {\r\n this.onChange(event);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\n\r\nexport type TimelineDisplayType = 'success' | 'error' | 'warning' | 'default' | 'muted';\r\n\r\n@Component({\r\n selector: 'vdr-timeline-entry',\r\n templateUrl: './timeline-entry.component.html',\r\n styleUrls: ['./timeline-entry.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TimelineEntryComponent {\r\n @Input() displayType: TimelineDisplayType;\r\n @Input() createdAt: string;\r\n @Input() name: string;\r\n @Input() featured: boolean;\r\n @Input() iconShape?: string | [string, string];\r\n @Input() isLast?: boolean;\r\n @HostBinding('class.collapsed')\r\n @Input()\r\n collapsed = false;\r\n @Output() expandClick = new EventEmitter();\r\n\r\n get timelineTitle(): string {\r\n return this.collapsed ? _('common.expand-entries') : _('common.collapse-entries');\r\n }\r\n\r\n getIconShape() {\r\n if (this.iconShape) {\r\n return typeof this.iconShape === 'string' ? this.iconShape : this.iconShape[0];\r\n }\r\n }\r\n\r\n getIconClass() {\r\n if (this.iconShape) {\r\n return typeof this.iconShape === 'string' ? '' : this.iconShape[1];\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vdr-title-input',\r\n templateUrl: './title-input.component.html',\r\n styleUrls: ['./title-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TitleInputComponent {\r\n @HostBinding('class.readonly')\r\n @Input()\r\n readonly = false;\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, isDevMode, OnInit } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { UIExtensionLocationId } from '../../../common/component-registry-types';\r\nimport { DataService } from '../../../data/providers/data.service';\r\n\r\n@Component({\r\n selector: 'vdr-ui-extension-point',\r\n templateUrl: './ui-extension-point.component.html',\r\n styleUrls: ['./ui-extension-point.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UiExtensionPointComponent implements OnInit {\r\n @Input() locationId: UIExtensionLocationId;\r\n @Input() topPx: number;\r\n @Input() leftPx: number;\r\n @Input() api: 'actionBar' | 'navMenu' | 'detailComponent';\r\n display$: Observable<boolean>;\r\n readonly isDevMode = isDevMode();\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit(): void {\r\n this.display$ = this.dataService.client\r\n .uiState()\r\n .mapStream(({ uiState }) => uiState.displayUiExtensionPoints);\r\n }\r\n}\r\n","import { Directive, Input, Optional } from '@angular/core';\nimport { FormControl, FormControlDirective, FormControlName } from '@angular/forms';\n\n/**\n * Allows declarative binding to the \"disabled\" property of a reactive form\n * control.\n */\n@Directive({\n selector: '[vdrDisabled]',\n})\nexport class DisabledDirective {\n @Input('vdrDisabled') set disabled(val: boolean) {\n const formControl = this.formControlName?.control ?? this.formControl?.form;\n if (!formControl) {\n return;\n }\n if (!!val === false) {\n formControl.enable({ emitEvent: false });\n } else {\n formControl.disable({ emitEvent: false });\n }\n }\n\n constructor(\n @Optional() private formControlName: FormControlName,\n @Optional() private formControl: FormControlDirective,\n ) {}\n}\n","import { Directive, EmbeddedViewRef, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\n\r\n/**\r\n * A base class for implementing custom *ngIf-style structural directives based on custom conditions.\r\n *\r\n * @dynamic\r\n */\r\n@Directive()\r\nexport class IfDirectiveBase<Args extends any[]> implements OnInit, OnDestroy {\r\n protected updateArgs$ = new BehaviorSubject<Args>([] as any);\r\n private readonly _thenTemplateRef: TemplateRef<any> | null = null;\r\n private _elseTemplateRef: TemplateRef<any> | null = null;\r\n private _thenViewRef: EmbeddedViewRef<any> | null = null;\r\n private _elseViewRef: EmbeddedViewRef<any> | null = null;\r\n private subscription: Subscription;\r\n\r\n constructor(\r\n private _viewContainer: ViewContainerRef,\r\n templateRef: TemplateRef<any>,\r\n private updateViewFn: (...args: Args) => Observable<boolean>,\r\n ) {\r\n this._thenTemplateRef = templateRef;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subscription = this.updateArgs$\r\n .pipe(switchMap(args => this.updateViewFn(...args)))\r\n .subscribe(result => {\r\n if (result) {\r\n this.showThen();\r\n } else {\r\n this.showElse();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n protected setElseTemplate(templateRef: TemplateRef<any> | null) {\r\n this.assertTemplate('vdrIfPermissionsElse', templateRef);\r\n this._elseTemplateRef = templateRef;\r\n this._elseViewRef = null; // clear previous view if any.\r\n }\r\n\r\n private showThen() {\r\n if (!this._thenViewRef) {\r\n this._viewContainer.clear();\r\n this._elseViewRef = null;\r\n if (this._thenTemplateRef) {\r\n this._thenViewRef = this._viewContainer.createEmbeddedView(this._thenTemplateRef);\r\n }\r\n }\r\n }\r\n\r\n private showElse() {\r\n if (!this._elseViewRef) {\r\n this._viewContainer.clear();\r\n this._thenViewRef = null;\r\n if (this._elseTemplateRef) {\r\n this._elseViewRef = this._viewContainer.createEmbeddedView(this._elseTemplateRef);\r\n }\r\n }\r\n }\r\n\r\n private assertTemplate(property: string, templateRef: TemplateRef<any> | null): void {\r\n const isTemplateRefOrNull = !!(!templateRef || templateRef.createEmbeddedView);\r\n if (!isTemplateRefOrNull) {\r\n throw new Error(`${property} must be a TemplateRef, but received '${templateRef}'.`);\r\n }\r\n }\r\n}\r\n","import { ChangeDetectorRef, Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';\r\nimport { tap } from 'rxjs/operators';\r\n\r\nimport { UserStatus } from '../../common/generated-types';\r\nimport { DataService } from '../../data/providers/data.service';\r\n\r\nimport { IfDirectiveBase } from './if-directive-base';\r\n\r\n@Directive({\r\n selector: '[vdrIfDefaultChannelActive]',\r\n})\r\nexport class IfDefaultChannelActiveDirective extends IfDirectiveBase<[]> {\r\n constructor(\r\n _viewContainer: ViewContainerRef,\r\n templateRef: TemplateRef<any>,\r\n private dataService: DataService,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n ) {\r\n super(_viewContainer, templateRef, () => {\r\n return this.dataService.client\r\n .userStatus()\r\n .mapStream(({ userStatus }) => this.defaultChannelIsActive(userStatus))\r\n .pipe(tap(() => this.changeDetectorRef.markForCheck()));\r\n });\r\n }\r\n\r\n /**\r\n * A template to show if the current user does not have the specified permission.\r\n */\r\n @Input()\r\n set vdrIfMultichannelElse(templateRef: TemplateRef<any> | null) {\r\n this.setElseTemplate(templateRef);\r\n }\r\n\r\n private defaultChannelIsActive(userStatus: UserStatus): boolean {\r\n const defaultChannel = userStatus.channels.find(c => c.code === DEFAULT_CHANNEL_CODE);\r\n\r\n return !!(defaultChannel && userStatus.activeChannelId === defaultChannel.id);\r\n }\r\n}\r\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\r\n\r\nimport { DataService } from '../../data/providers/data.service';\r\n\r\nimport { IfDirectiveBase } from './if-directive-base';\r\n\r\n/**\r\n * @description\r\n * Structural directive that displays the given element if the Vendure instance has multiple channels\r\n * configured.\r\n *\r\n * @example\r\n * ```html\r\n * <div *vdrIfMultichannel class=\"channel-selector\">\r\n * <!-- ... -->\r\n * </ng-container>\r\n * ```\r\n *\r\n * @docsCategory directives\r\n */\r\n@Directive({\r\n selector: '[vdrIfMultichannel]',\r\n})\r\nexport class IfMultichannelDirective extends IfDirectiveBase<[]> {\r\n constructor(\r\n _viewContainer: ViewContainerRef,\r\n templateRef: TemplateRef<any>,\r\n private dataService: DataService,\r\n ) {\r\n super(_viewContainer, templateRef, () => {\r\n return this.dataService.client\r\n .userStatus()\r\n .mapStream(({ userStatus }) => 1 < userStatus.channels.length);\r\n });\r\n }\r\n\r\n /**\r\n * A template to show if the current user does not have the specified permission.\r\n */\r\n @Input()\r\n set vdrIfMultichannelElse(templateRef: TemplateRef<any> | null) {\r\n this.setElseTemplate(templateRef);\r\n }\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Directive,\r\n EmbeddedViewRef,\r\n Input,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { of } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\n\r\nimport { Permission } from '../../common/generated-types';\r\nimport { DataService } from '../../data/providers/data.service';\r\n\r\nimport { IfDirectiveBase } from './if-directive-base';\r\n\r\n/**\r\n * @description\r\n * Conditionally shows/hides templates based on the current active user having the specified permission.\r\n * Based on the ngIf source. Also support \"else\" templates:\r\n *\r\n * @example\r\n * ```html\r\n * <button *vdrIfPermissions=\"'DeleteCatalog'; else unauthorized\">Delete Product</button>\r\n * <ng-template #unauthorized>Not allowed!</ng-template>\r\n * ```\r\n *\r\n * The permission can be a single string, or an array. If an array is passed, then _all_ of the permissions\r\n * must match (logical AND)\r\n *\r\n * @docsCategory directives\r\n */\r\n@Directive({\r\n selector: '[vdrIfPermissions]',\r\n})\r\nexport class IfPermissionsDirective extends IfDirectiveBase<Array<Permission[] | null>> {\r\n private permissionToCheck: string[] | null = ['__initial_value__'];\r\n\r\n constructor(\r\n _viewContainer: ViewContainerRef,\r\n templateRef: TemplateRef<any>,\r\n private dataService: DataService,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n ) {\r\n super(_viewContainer, templateRef, permissions => {\r\n if (permissions == null) {\r\n return of(true);\r\n } else if (!permissions) {\r\n return of(false);\r\n }\r\n return this.dataService.client\r\n .userStatus()\r\n .mapStream(({ userStatus }) => {\r\n for (const permission of permissions) {\r\n if (userStatus.permissions.includes(permission)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n })\r\n .pipe(tap(() => this.changeDetectorRef.markForCheck()));\r\n });\r\n }\r\n\r\n /**\r\n * The permission to check to determine whether to show the template.\r\n */\r\n @Input()\r\n set vdrIfPermissions(permission: string | string[] | null) {\r\n this.permissionToCheck =\r\n (permission && (Array.isArray(permission) ? permission : [permission])) || null;\r\n this.updateArgs$.next([this.permissionToCheck as Permission[]]);\r\n }\r\n\r\n /**\r\n * A template to show if the current user does not have the specified permission.\r\n */\r\n @Input()\r\n set vdrIfPermissionsElse(templateRef: TemplateRef<any> | null) {\r\n this.setElseTemplate(templateRef);\r\n this.updateArgs$.next([this.permissionToCheck as Permission[]]);\r\n }\r\n}\r\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactory,\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n Injector,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n QueryList,\r\n SimpleChanges,\r\n Type,\r\n ViewChild,\r\n ViewChildren,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormArray, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { StringCustomFieldConfig } from '@vendure/common/lib/generated-types';\r\nimport { ConfigArgType, CustomFieldType, DefaultFormComponentId } from '@vendure/common/lib/shared-types';\r\nimport { assertNever } from '@vendure/common/lib/shared-utils';\r\nimport { simpleDeepClone } from '@vendure/common/lib/simple-deep-clone';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { switchMap, take, takeUntil } from 'rxjs/operators';\r\n\r\nimport { FormInputComponent } from '../../../common/component-registry-types';\r\nimport { ConfigArgDefinition, CustomFieldConfig } from '../../../common/generated-types';\r\nimport { getConfigArgValue } from '../../../common/utilities/configurable-operation-utils';\r\nimport { ComponentRegistryService } from '../../../providers/component-registry/component-registry.service';\r\n\r\ntype InputListItem = {\r\n id: number;\r\n componentRef?: ComponentRef<FormInputComponent>;\r\n control: FormControl;\r\n};\r\n\r\n/**\r\n * A host component which delegates to an instance or list of FormInputComponent components.\r\n */\r\n@Component({\r\n selector: 'vdr-dynamic-form-input',\r\n templateUrl: './dynamic-form-input.component.html',\r\n styleUrls: ['./dynamic-form-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: DynamicFormInputComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class DynamicFormInputComponent\r\n implements OnInit, OnChanges, AfterViewInit, OnDestroy, ControlValueAccessor\r\n{\r\n @Input() def: ConfigArgDefinition | CustomFieldConfig;\r\n @Input() readonly: boolean;\r\n @Input() control: FormControl;\r\n @ViewChild('single', { read: ViewContainerRef }) singleViewContainer: ViewContainerRef;\r\n @ViewChildren('listItem', { read: ViewContainerRef }) listItemContainers: QueryList<ViewContainerRef>;\r\n renderAsList = false;\r\n listItems: InputListItem[] = [];\r\n private singleComponentRef: ComponentRef<FormInputComponent>;\r\n private listId = 1;\r\n private listFormArray = new FormArray([]);\r\n private componentType: Type<FormInputComponent>;\r\n private onChange: (val: any) => void;\r\n private onTouch: () => void;\r\n private renderList$ = new Subject();\r\n private destroy$ = new Subject();\r\n\r\n constructor(\r\n private componentRegistryService: ComponentRegistryService,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private injector: Injector,\r\n ) {}\r\n\r\n ngOnInit() {\r\n const componentId = this.getInputComponentConfig(this.def).component;\r\n const componentType = this.componentRegistryService.getInputComponent(componentId);\r\n if (componentType) {\r\n this.componentType = componentType;\r\n } else {\r\n // tslint:disable-next-line:no-console\r\n console.error(\r\n `No form input component registered with the id \"${componentId}\". Using the default input instead.`,\r\n );\r\n const defaultComponentType = this.componentRegistryService.getInputComponent(\r\n this.getInputComponentConfig({ ...this.def, ui: undefined } as any).component,\r\n );\r\n if (defaultComponentType) {\r\n this.componentType = defaultComponentType;\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.componentType) {\r\n const factory = this.componentFactoryResolver.resolveComponentFactory(this.componentType);\r\n\r\n // create a temp instance to check the value of `isListInput`\r\n const cmpRef = factory.create(this.injector);\r\n const isListInputComponent = cmpRef.instance.isListInput ?? false;\r\n cmpRef.destroy();\r\n\r\n if (this.def.list === false && isListInputComponent) {\r\n throw new Error(\r\n `The ${this.componentType.name} component is a list input, but the definition for ${this.def.name} does not expect a list`,\r\n );\r\n }\r\n this.renderAsList = this.def.list && !isListInputComponent;\r\n if (!this.renderAsList) {\r\n this.singleComponentRef = this.renderInputComponent(\r\n factory,\r\n this.singleViewContainer,\r\n this.control,\r\n );\r\n } else {\r\n let formArraySub: Subscription | undefined;\r\n const renderListInputs = (viewContainerRefs: QueryList<ViewContainerRef>) => {\r\n if (viewContainerRefs.length) {\r\n if (formArraySub) {\r\n formArraySub.unsubscribe();\r\n }\r\n this.listFormArray = new FormArray([]);\r\n this.listItems.forEach(i => i.componentRef?.destroy());\r\n viewContainerRefs.forEach((ref, i) => {\r\n const listItem = this.listItems?.[i];\r\n if (listItem) {\r\n this.listFormArray.push(listItem.control);\r\n listItem.componentRef = this.renderInputComponent(\r\n factory,\r\n ref,\r\n listItem.control,\r\n );\r\n }\r\n });\r\n\r\n formArraySub = this.listFormArray.valueChanges\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(val => {\r\n this.control.markAsTouched();\r\n this.control.markAsDirty();\r\n this.onChange(val);\r\n this.control.patchValue(val, { emitEvent: false });\r\n });\r\n setTimeout(() => this.changeDetectorRef.markForCheck());\r\n }\r\n };\r\n\r\n // initial render\r\n this.listItemContainers.changes\r\n .pipe(take(1))\r\n .subscribe(val => renderListInputs(this.listItemContainers));\r\n\r\n // render on changes to the list\r\n this.renderList$\r\n .pipe(\r\n switchMap(() => this.listItemContainers.changes.pipe(take(1))),\r\n takeUntil(this.destroy$),\r\n )\r\n .subscribe(() => {\r\n renderListInputs(this.listItemContainers);\r\n });\r\n }\r\n }\r\n setTimeout(() => this.changeDetectorRef.markForCheck());\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (this.listItems) {\r\n for (const item of this.listItems) {\r\n if (item.componentRef) {\r\n this.updateBindings(changes, item.componentRef);\r\n }\r\n }\r\n }\r\n if (this.singleComponentRef) {\r\n this.updateBindings(changes, this.singleComponentRef);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n private updateBindings(changes: SimpleChanges, componentRef: ComponentRef<FormInputComponent>) {\r\n if ('def' in changes) {\r\n componentRef.instance.config = simpleDeepClone(this.def);\r\n }\r\n if ('readonly' in changes) {\r\n componentRef.instance.readonly = this.readonly;\r\n }\r\n componentRef.injector.get(ChangeDetectorRef).markForCheck();\r\n }\r\n\r\n trackById(index: number, item: { id: number }) {\r\n return item.id;\r\n }\r\n\r\n addListItem() {\r\n if (!this.listItems) {\r\n this.listItems = [];\r\n }\r\n this.listItems.push({\r\n id: this.listId++,\r\n control: new FormControl((this.def as ConfigArgDefinition).defaultValue ?? null),\r\n });\r\n this.renderList$.next();\r\n }\r\n\r\n moveListItem(event: CdkDragDrop<InputListItem>) {\r\n if (this.listItems) {\r\n moveItemInArray(this.listItems, event.previousIndex, event.currentIndex);\r\n this.listFormArray.removeAt(event.previousIndex);\r\n this.listFormArray.insert(event.currentIndex, event.item.data.control);\r\n this.renderList$.next();\r\n }\r\n }\r\n\r\n removeListItem(item: InputListItem) {\r\n if (this.listItems) {\r\n const index = this.listItems.findIndex(i => i === item);\r\n item.componentRef?.destroy();\r\n this.listFormArray.removeAt(index);\r\n this.listItems = this.listItems.filter(i => i !== item);\r\n this.renderList$.next();\r\n }\r\n }\r\n\r\n private renderInputComponent(\r\n factory: ComponentFactory<FormInputComponent>,\r\n viewContainerRef: ViewContainerRef,\r\n formControl: FormControl,\r\n ) {\r\n const componentRef = viewContainerRef.createComponent(factory);\r\n const { instance } = componentRef;\r\n instance.config = simpleDeepClone(this.def);\r\n instance.formControl = formControl;\r\n instance.readonly = this.readonly;\r\n componentRef.injector.get(ChangeDetectorRef).markForCheck();\r\n return componentRef;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n writeValue(obj: any): void {\r\n if (Array.isArray(obj)) {\r\n if (obj.length === this.listItems.length) {\r\n obj.forEach((value, index) => {\r\n const control = this.listItems[index]?.control;\r\n control.patchValue(getConfigArgValue(value), { emitEvent: false });\r\n });\r\n } else {\r\n this.listItems = obj.map(\r\n value =>\r\n ({\r\n id: this.listId++,\r\n control: new FormControl(getConfigArgValue(value)),\r\n } as InputListItem),\r\n );\r\n this.renderList$.next();\r\n }\r\n } else {\r\n this.listItems = [];\r\n this.renderList$.next();\r\n }\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n private getInputComponentConfig(argDef: ConfigArgDefinition | CustomFieldConfig): {\r\n component: DefaultFormComponentId;\r\n } {\r\n if (this.hasUiConfig(argDef) && argDef.ui.component) {\r\n return argDef.ui;\r\n }\r\n const type = argDef?.type as ConfigArgType | CustomFieldType;\r\n switch (type) {\r\n case 'string':\r\n case 'localeString': {\r\n const hasOptions =\r\n !!(this.isConfigArgDef(argDef) && argDef.ui?.options) ||\r\n !!(argDef as StringCustomFieldConfig).options;\r\n if (hasOptions) {\r\n return { component: 'select-form-input' };\r\n } else {\r\n return { component: 'text-form-input' };\r\n }\r\n }\r\n case 'text': {\r\n return { component: 'textarea-form-input' };\r\n }\r\n case 'int':\r\n case 'float':\r\n return { component: 'number-form-input' };\r\n case 'boolean':\r\n return { component: 'boolean-form-input' };\r\n case 'datetime':\r\n return { component: 'date-form-input' };\r\n case 'ID':\r\n return { component: 'text-form-input' };\r\n case 'relation':\r\n return { component: 'relation-form-input' };\r\n default:\r\n assertNever(type);\r\n }\r\n }\r\n\r\n private isConfigArgDef(def: ConfigArgDefinition | CustomFieldConfig): def is ConfigArgDefinition {\r\n return (def as ConfigArgDefinition)?.__typename === 'ConfigArgDefinition';\r\n }\r\n\r\n private hasUiConfig(def: unknown): def is { ui: { component: string } } {\r\n return typeof def === 'object' && typeof (def as any)?.ui?.component === 'string';\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DefaultFormComponentId } from '@vendure/common/lib/shared-types';\r\nimport { Observable, of } from 'rxjs';\r\nimport { distinctUntilChanged, map, startWith, switchMap } from 'rxjs/operators';\r\n\r\nimport { FormInputComponent } from '../../../../common/component-registry-types';\r\nimport { GetAsset, RelationCustomFieldConfig } from '../../../../common/generated-types';\r\nimport { DataService } from '../../../../data/providers/data.service';\r\nimport { ModalService } from '../../../../providers/modal/modal.service';\r\nimport { AssetPickerDialogComponent } from '../../../components/asset-picker-dialog/asset-picker-dialog.component';\r\nimport { AssetPreviewDialogComponent } from '../../../components/asset-preview-dialog/asset-preview-dialog.component';\r\n\r\n@Component({\r\n selector: 'vdr-relation-asset-input',\r\n templateUrl: './relation-asset-input.component.html',\r\n styleUrls: ['./relation-asset-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RelationAssetInputComponent implements FormInputComponent, OnInit {\r\n static readonly id: DefaultFormComponentId = 'asset-form-input';\r\n @Input() readonly: boolean;\r\n @Input('parentFormControl') formControl: FormControl;\r\n @Input() config: RelationCustomFieldConfig;\r\n asset$: Observable<GetAsset.Asset | undefined>;\r\n\r\n constructor(private modalService: ModalService, private dataService: DataService) {}\r\n\r\n ngOnInit() {\r\n this.asset$ = this.formControl.valueChanges.pipe(\r\n startWith(this.formControl.value),\r\n map(asset => asset?.id),\r\n distinctUntilChanged(),\r\n switchMap(id => {\r\n if (id) {\r\n return this.dataService.product.getAsset(id).mapStream(data => data.asset || undefined);\r\n } else {\r\n return of(undefined);\r\n }\r\n }),\r\n );\r\n }\r\n\r\n selectAsset() {\r\n this.modalService\r\n .fromComponent(AssetPickerDialogComponent, {\r\n size: 'xl',\r\n locals: {\r\n multiSelect: false,\r\n },\r\n })\r\n .subscribe(result => {\r\n if (result && result.length) {\r\n this.formControl.setValue(result[0]);\r\n this.formControl.markAsDirty();\r\n }\r\n });\r\n }\r\n\r\n remove() {\r\n this.formControl.setValue(null);\r\n this.formControl.markAsDirty();\r\n }\r\n\r\n previewAsset(asset: GetAsset.Asset) {\r\n this.modalService\r\n .fromComponent(AssetPreviewDialogComponent, {\r\n size: 'xl',\r\n closable: true,\r\n locals: { asset },\r\n })\r\n .subscribe();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, TemplateRef } from '@angular/core';\r\n\r\nimport { Dialog } from '../../../../providers/modal/modal.service';\r\n\r\n@Component({\r\n selector: 'vdr-relation-selector-dialog',\r\n templateUrl: './relation-selector-dialog.component.html',\r\n styleUrls: ['./relation-selector-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RelationSelectorDialogComponent implements Dialog<string[]> {\r\n resolveWith: (result?: string[]) => void;\r\n title: string;\r\n selectorTemplate: TemplateRef<any>;\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { Observable, of, Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, map, startWith, switchMap } from 'rxjs/operators';\r\n\r\nimport {\r\n CustomerFragment,\r\n GetCustomerList,\r\n GetProductList,\r\n GetProductSimple,\r\n RelationCustomFieldConfig,\r\n} from '../../../../common/generated-types';\r\nimport { DataService } from '../../../../data/providers/data.service';\r\nimport { ModalService } from '../../../../providers/modal/modal.service';\r\nimport { RelationSelectorDialogComponent } from '../relation-selector-dialog/relation-selector-dialog.component';\r\n\r\n@Component({\r\n selector: 'vdr-relation-customer-input',\r\n templateUrl: './relation-customer-input.component.html',\r\n styleUrls: ['./relation-customer-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RelationCustomerInputComponent implements OnInit {\r\n @Input() readonly: boolean;\r\n @Input() parentFormControl: FormControl;\r\n @Input() config: RelationCustomFieldConfig;\r\n\r\n @ViewChild('selector') template: TemplateRef<any>;\r\n\r\n searchControl = new FormControl('');\r\n searchTerm$ = new Subject<string>();\r\n results$: Observable<GetCustomerList.Items[]>;\r\n\r\n get customer(): CustomerFragment | undefined {\r\n return this.parentFormControl.value;\r\n }\r\n\r\n constructor(private modalService: ModalService, private dataService: DataService) {}\r\n\r\n ngOnInit() {\r\n this.results$ = this.searchTerm$.pipe(\r\n debounceTime(200),\r\n switchMap(term => {\r\n return this.dataService.customer\r\n .getCustomerList(10, 0, term)\r\n .mapSingle(data => data.customers.items);\r\n }),\r\n );\r\n }\r\n\r\n selectCustomer() {\r\n this.modalService\r\n .fromComponent(RelationSelectorDialogComponent, {\r\n size: 'md',\r\n closable: true,\r\n locals: {\r\n title: _('customer.select-customer'),\r\n selectorTemplate: this.template,\r\n },\r\n })\r\n .subscribe(result => {\r\n if (result) {\r\n this.parentFormControl.setValue(result);\r\n this.parentFormControl.markAsDirty();\r\n }\r\n });\r\n }\r\n\r\n remove() {\r\n this.parentFormControl.setValue(null);\r\n this.parentFormControl.markAsDirty();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, TemplateRef, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\n\r\nimport { RelationCustomFieldConfig } from '../../../../common/generated-types';\r\nimport { ModalService } from '../../../../providers/modal/modal.service';\r\nimport { RelationSelectorDialogComponent } from '../relation-selector-dialog/relation-selector-dialog.component';\r\n\r\n@Component({\r\n selector: 'vdr-relation-generic-input',\r\n templateUrl: './relation-generic-input.component.html',\r\n styleUrls: ['./relation-generic-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RelationGenericInputComponent {\r\n @Input() readonly: boolean;\r\n @Input() parentFormControl: FormControl;\r\n @Input() config: RelationCustomFieldConfig;\r\n relationId: string;\r\n\r\n @ViewChild('selector') template: TemplateRef<any>;\r\n\r\n constructor(private modalService: ModalService) {}\r\n\r\n selectRelationId() {\r\n this.modalService\r\n .fromComponent(RelationSelectorDialogComponent, {\r\n size: 'md',\r\n closable: true,\r\n locals: {\r\n title: _('common.select-relation-id'),\r\n selectorTemplate: this.template,\r\n },\r\n })\r\n .subscribe(result => {\r\n if (result) {\r\n this.parentFormControl.setValue({ id: result });\r\n this.parentFormControl.markAsDirty();\r\n }\r\n });\r\n }\r\n\r\n remove() {\r\n this.parentFormControl.setValue(null);\r\n this.parentFormControl.markAsDirty();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { Observable, of, Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, map, startWith, switchMap } from 'rxjs/operators';\r\n\r\nimport {\r\n GetProductVariant,\r\n GetProductVariantList,\r\n GetProductVariantListSimple,\r\n RelationCustomFieldConfig,\r\n} from '../../../../common/generated-types';\r\nimport { DataService } from '../../../../data/providers/data.service';\r\nimport { ModalService } from '../../../../providers/modal/modal.service';\r\nimport { RelationSelectorDialogComponent } from '../relation-selector-dialog/relation-selector-dialog.component';\r\n\r\n@Component({\r\n selector: 'vdr-relation-product-variant-input',\r\n templateUrl: './relation-product-variant-input.component.html',\r\n styleUrls: ['./relation-product-variant-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RelationProductVariantInputComponent implements OnInit {\r\n @Input() readonly: boolean;\r\n @Input() parentFormControl: FormControl;\r\n @Input() config: RelationCustomFieldConfig;\r\n\r\n @ViewChild('selector') template: TemplateRef<any>;\r\n\r\n searchControl = new FormControl('');\r\n searchTerm$ = new Subject<string>();\r\n results$: Observable<GetProductVariantListSimple.Items[]>;\r\n productVariant$: Observable<GetProductVariant.ProductVariant | undefined>;\r\n\r\n constructor(private modalService: ModalService, private dataService: DataService) {}\r\n\r\n ngOnInit() {\r\n this.productVariant$ = this.parentFormControl.valueChanges.pipe(\r\n startWith(this.parentFormControl.value),\r\n map(variant => variant?.id),\r\n distinctUntilChanged(),\r\n switchMap(id => {\r\n if (id) {\r\n return this.dataService.product\r\n .getProductVariant(id)\r\n .mapStream(data => data.productVariant || undefined);\r\n } else {\r\n return of(undefined);\r\n }\r\n }),\r\n );\r\n\r\n this.results$ = this.searchTerm$.pipe(\r\n debounceTime(200),\r\n switchMap(term => {\r\n return this.dataService.product\r\n .getProductVariantsSimple({\r\n ...(term\r\n ? {\r\n filter: {\r\n name: {\r\n contains: term,\r\n },\r\n },\r\n }\r\n : {}),\r\n take: 10,\r\n })\r\n .mapSingle(data => data.productVariants.items);\r\n }),\r\n );\r\n }\r\n\r\n selectProductVariant() {\r\n this.modalService\r\n .fromComponent(RelationSelectorDialogComponent, {\r\n size: 'md',\r\n closable: true,\r\n locals: {\r\n title: _('catalog.select-product-variant'),\r\n selectorTemplate: this.template,\r\n },\r\n })\r\n .subscribe(result => {\r\n if (result) {\r\n this.parentFormControl.setValue(result);\r\n this.parentFormControl.markAsDirty();\r\n }\r\n });\r\n }\r\n\r\n remove() {\r\n this.parentFormControl.setValue(null);\r\n this.parentFormControl.markAsDirty();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { Observable, of, Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, map, startWith, switchMap } from 'rxjs/operators';\r\n\r\nimport {\r\n GetProductList,\r\n GetProductSimple,\r\n RelationCustomFieldConfig,\r\n} from '../../../../common/generated-types';\r\nimport { DataService } from '../../../../data/providers/data.service';\r\nimport { ModalService } from '../../../../providers/modal/modal.service';\r\nimport { RelationSelectorDialogComponent } from '../relation-selector-dialog/relation-selector-dialog.component';\r\n\r\n@Component({\r\n selector: 'vdr-relation-product-input',\r\n templateUrl: './relation-product-input.component.html',\r\n styleUrls: ['./relation-product-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RelationProductInputComponent implements OnInit {\r\n @Input() readonly: boolean;\r\n @Input() parentFormControl: FormControl;\r\n @Input() config: RelationCustomFieldConfig;\r\n\r\n @ViewChild('selector') template: TemplateRef<any>;\r\n\r\n searchControl = new FormControl('');\r\n searchTerm$ = new Subject<string>();\r\n results$: Observable<GetProductList.Items[]>;\r\n product$: Observable<GetProductSimple.Product | undefined>;\r\n\r\n constructor(private modalService: ModalService, private dataService: DataService) {}\r\n\r\n ngOnInit() {\r\n this.product$ = this.parentFormControl.valueChanges.pipe(\r\n startWith(this.parentFormControl.value),\r\n map(product => product?.id),\r\n distinctUntilChanged(),\r\n switchMap(id => {\r\n if (id) {\r\n return this.dataService.product\r\n .getProductSimple(id)\r\n .mapStream(data => data.product || undefined);\r\n } else {\r\n return of(undefined);\r\n }\r\n }),\r\n );\r\n\r\n this.results$ = this.searchTerm$.pipe(\r\n debounceTime(200),\r\n switchMap(term => {\r\n return this.dataService.product\r\n .getProducts({\r\n ...(term\r\n ? {\r\n filter: {\r\n name: {\r\n contains: term,\r\n },\r\n },\r\n }\r\n : {}),\r\n take: 10,\r\n })\r\n .mapSingle(data => data.products.items);\r\n }),\r\n );\r\n }\r\n\r\n selectProduct() {\r\n this.modalService\r\n .fromComponent(RelationSelectorDialogComponent, {\r\n size: 'md',\r\n closable: true,\r\n locals: {\r\n title: _('catalog.select-product'),\r\n selectorTemplate: this.template,\r\n },\r\n })\r\n .subscribe(result => {\r\n if (result) {\r\n this.parentFormControl.setValue(result);\r\n this.parentFormControl.markAsDirty();\r\n }\r\n });\r\n }\r\n\r\n remove() {\r\n this.parentFormControl.setValue(null);\r\n this.parentFormControl.markAsDirty();\r\n }\r\n}\r\n","import { EventEmitter } from '@angular/core';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n Directive,\r\n Input,\r\n Output,\r\n TemplateRef,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[vdrRelationCardPreview]',\r\n})\r\nexport class RelationCardPreviewDirective {}\r\n@Directive({\r\n selector: '[vdrRelationCardDetail]',\r\n})\r\nexport class RelationCardDetailDirective {}\r\n\r\n@Component({\r\n selector: 'vdr-relation-card',\r\n templateUrl: './relation-card.component.html',\r\n styleUrls: ['./relation-card.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RelationCardComponent {\r\n @Input() entity: any;\r\n @Input() placeholderIcon: string;\r\n @Input() selectLabel: string;\r\n @Input() readonly: boolean;\r\n @Input() removable = true;\r\n @Output() select = new EventEmitter();\r\n @Output() remove = new EventEmitter();\r\n @ContentChild(RelationCardPreviewDirective, { read: TemplateRef })\r\n previewTemplate: TemplateRef<any>;\r\n @ContentChild(RelationCardDetailDirective, { read: TemplateRef })\r\n detailTemplate: TemplateRef<any>;\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { AssetFragment } from '../../common/generated-types';\r\n\r\n/**\r\n * @description\r\n * Given an Asset object (an object with `preview` and optionally `focalPoint` properties), this pipe\r\n * returns a string with query parameters designed to work with the image resize capabilities of the\r\n * AssetServerPlugin.\r\n *\r\n * @example\r\n * ```HTML\r\n * <img [src]=\"asset | assetPreview:'tiny'\" />\r\n * <img [src]=\"asset | assetPreview:150\" />\r\n * ```\r\n *\r\n * @docsCategory pipes\r\n */\r\n@Pipe({\r\n name: 'assetPreview',\r\n})\r\nexport class AssetPreviewPipe implements PipeTransform {\r\n transform(asset?: AssetFragment, preset: string | number = 'thumb'): string {\r\n if (!asset) {\r\n return '';\r\n }\r\n if (asset.preview == null || typeof asset.preview !== 'string') {\r\n throw new Error(`Expected an Asset, got ${JSON.stringify(asset)}`);\r\n }\r\n const fp = asset.focalPoint ? `&fpx=${asset.focalPoint.x}&fpy=${asset.focalPoint.y}` : '';\r\n if (Number.isNaN(Number(preset))) {\r\n return `${asset.preview}?preset=${preset}${fp}`;\r\n } else {\r\n return `${asset.preview}?w=${preset}&h=${preset}${fp}`;\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';\r\n\r\n@Pipe({\r\n name: 'channelCodeToLabel',\r\n})\r\nexport class ChannelLabelPipe implements PipeTransform {\r\n transform(value: any, ...args: any[]): any {\r\n if (value === DEFAULT_CHANNEL_CODE) {\r\n return _('common.default-channel');\r\n } else {\r\n return value;\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { CustomFieldConfig, LanguageCode, StringFieldOption } from '../../common/generated-types';\n\n/**\n * Displays a localized description for a CustomField\n */\n@Pipe({\n name: 'customFieldDescription',\n pure: true,\n})\nexport class CustomFieldDescriptionPipe implements PipeTransform {\n transform(value: CustomFieldConfig, uiLanguageCode: LanguageCode | null): string {\n if (!value) {\n return value;\n }\n const { description } = value;\n if (description) {\n const match = description.find(l => l.languageCode === uiLanguageCode);\n return match ? match.value : description[0].value;\n } else {\n return '';\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { CustomFieldConfig, LanguageCode, StringFieldOption } from '../../common/generated-types';\r\n\r\n/**\r\n * Displays a localized label for a CustomField or StringFieldOption, falling back to the\r\n * name/value if none are defined.\r\n */\r\n@Pipe({\r\n name: 'customFieldLabel',\r\n pure: true,\r\n})\r\nexport class CustomFieldLabelPipe implements PipeTransform {\r\n transform(value: CustomFieldConfig | StringFieldOption, uiLanguageCode: LanguageCode | null): string {\r\n if (!value) {\r\n return value;\r\n }\r\n const { label } = value;\r\n const name = this.isCustomFieldConfig(value) ? value.name : value.value;\r\n if (label) {\r\n const match = label.find(l => l.languageCode === uiLanguageCode);\r\n return match ? match.value : label[0].value;\r\n } else {\r\n return name;\r\n }\r\n }\r\n\r\n private isCustomFieldConfig(input: any): input is CustomFieldConfig {\r\n return input.hasOwnProperty('name');\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\n\r\nimport { I18nService } from '../../providers/i18n/i18n.service';\r\n\r\n/**\r\n * @description\r\n * Displays a number of milliseconds in a more human-readable format,\r\n * e.g. \"12ms\", \"33s\", \"2:03m\"\r\n *\r\n * @example\r\n * ```TypeScript\r\n * {{ timeInMs | duration }}\r\n * ```\r\n *\r\n * @docsCategory pipes\r\n */\r\n@Pipe({\r\n name: 'duration',\r\n})\r\nexport class DurationPipe implements PipeTransform {\r\n constructor(private i18nService: I18nService) {}\r\n\r\n transform(value: number): string {\r\n if (value < 1000) {\r\n return this.i18nService.translate(_('datetime.duration-milliseconds'), { ms: value });\r\n } else if (value < 1000 * 60) {\r\n const seconds1dp = +(value / 1000).toFixed(1);\r\n return this.i18nService.translate(_('datetime.duration-seconds'), { s: seconds1dp });\r\n } else {\r\n const minutes = Math.floor(value / (1000 * 60));\r\n const seconds = Math.round((value % (1000 * 60)) / 1000)\r\n .toString()\r\n .padStart(2, '0');\r\n return this.i18nService.translate(_('datetime.duration-minutes:seconds'), {\r\n m: minutes,\r\n s: seconds,\r\n });\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/**\r\n * @description\r\n * Formats a number into a human-readable file size string.\r\n *\r\n * @example\r\n * ```TypeScript\r\n * {{ fileSizeInBytes | filesize }}\r\n * ```\r\n *\r\n * @docsCategory pipes\r\n */\r\n@Pipe({ name: 'filesize' })\r\nexport class FileSizePipe implements PipeTransform {\r\n transform(value: number, useSiUnits: boolean = true): any {\r\n if (typeof value !== 'number' && typeof value !== 'string') {\r\n return value;\r\n }\r\n return humanFileSize(value, useSiUnits === true);\r\n }\r\n}\r\n\r\n/**\r\n * Convert a number into a human-readable file size string.\r\n * Adapted from http://stackoverflow.com/a/14919494/772859\r\n */\r\nfunction humanFileSize(bytes: number, si: boolean): string {\r\n const thresh = si ? 1000 : 1024;\r\n if (Math.abs(bytes) < thresh) {\r\n return bytes + ' B';\r\n }\r\n const units = si\r\n ? ['kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\r\n : ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];\r\n let u = -1;\r\n do {\r\n bytes /= thresh;\r\n ++u;\r\n } while (Math.abs(bytes) >= thresh && u < units.length - 1);\r\n\r\n return bytes.toFixed(1) + ' ' + units[u];\r\n}\r\n","import { ChangeDetectorRef, OnDestroy, Pipe, PipeTransform } from '@angular/core';\r\nimport { Observable, Subscription } from 'rxjs';\r\n\r\nimport { DataService } from '../../data/providers/data.service';\r\n\r\n/**\r\n * @description\r\n * A pipe which checks the provided permission against all the permissions of the current user.\r\n * Returns `true` if the current user has that permission.\r\n *\r\n * @example\r\n * ```HTML\r\n * <button [disabled]=\"!('UpdateCatalog' | hasPermission)\">Save Changes</button>\r\n * ```\r\n * @docsCategory pipes\r\n */\r\n@Pipe({\r\n name: 'hasPermission',\r\n pure: false,\r\n})\r\nexport class HasPermissionPipe implements PipeTransform, OnDestroy {\r\n private hasPermission = false;\r\n private currentPermissions$: Observable<string[]>;\r\n private lastPermissions: string | null = null;\r\n private subscription: Subscription;\r\n\r\n constructor(private dataService: DataService, private changeDetectorRef: ChangeDetectorRef) {\r\n this.currentPermissions$ = this.dataService.client\r\n .userStatus()\r\n .mapStream(data => data.userStatus.permissions);\r\n }\r\n\r\n transform(input: string | string[]): any {\r\n const requiredPermissions = Array.isArray(input) ? input : [input];\r\n const requiredPermissionsString = requiredPermissions.join(',');\r\n if (this.lastPermissions !== requiredPermissionsString) {\r\n this.lastPermissions = requiredPermissionsString;\r\n this.hasPermission = false;\r\n this.dispose();\r\n this.subscription = this.currentPermissions$.subscribe(permissions => {\r\n this.hasPermission = this.checkPermissions(permissions, requiredPermissions);\r\n this.changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n return this.hasPermission;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.dispose();\r\n }\r\n\r\n private checkPermissions(userPermissions: string[], requiredPermissions: string[]): boolean {\r\n for (const perm of requiredPermissions) {\r\n if (userPermissions.includes(perm)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private dispose() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { ChangeDetectorRef, Injectable, OnDestroy, PipeTransform } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { DataService } from '../../data/providers/data.service';\r\n\r\n/**\r\n * Used by locale-aware pipes to handle the task of getting the active languageCode\r\n * of the UI and cleaning up.\r\n */\r\n@Injectable()\r\nexport abstract class LocaleBasePipe implements OnDestroy, PipeTransform {\r\n protected locale: string;\r\n private readonly subscription: Subscription;\r\n\r\n protected constructor(dataService?: DataService, changeDetectorRef?: ChangeDetectorRef) {\r\n if (dataService && changeDetectorRef) {\r\n this.subscription = dataService.client\r\n .uiState()\r\n .mapStream(data => data.uiState)\r\n .subscribe(({ language, locale }) => {\r\n this.locale = language.replace(/_/g, '-');\r\n if (locale) {\r\n this.locale += `-${locale}`;\r\n }\r\n changeDetectorRef.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n /**\r\n * Returns the active locale after attempting to ensure that the locale string\r\n * is valid for the Intl API.\r\n */\r\n protected getActiveLocale(localeOverride?: unknown): string {\r\n const locale = typeof localeOverride === 'string' ? localeOverride : this.locale ?? 'en';\r\n const hyphenated = locale?.replace(/_/g, '-');\r\n\r\n // Check for a double-region string, containing 2 region codes like\r\n // pt-BR-BR, which is invalid. In this case, the second region is used\r\n // and the first region discarded. This would only ever be an issue for\r\n // those languages where the translation file itself encodes the region,\r\n // as in pt_BR & pt_PT.\r\n const matches = hyphenated?.match(/^([a-zA-Z_-]+)(-[A-Z][A-Z])(-[A-Z][A-z])$/);\r\n if (matches?.length) {\r\n const overriddenLocale = matches[1] + matches[3];\r\n return overriddenLocale;\r\n } else {\r\n return hyphenated;\r\n }\r\n }\r\n\r\n abstract transform(value: any, ...args): any;\r\n}\r\n","import { ChangeDetectorRef, Optional, Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { DataService } from '../../data/providers/data.service';\r\n\r\nimport { LocaleBasePipe } from './locale-base.pipe';\r\n\r\n/**\r\n * @description\r\n * Displays a human-readable name for a given ISO 4217 currency code.\r\n *\r\n * @example\r\n * ```HTML\r\n * {{ order.currencyCode | localeCurrencyName }}\r\n * ```\r\n *\r\n * @docsCategory pipes\r\n */\r\n@Pipe({\r\n name: 'localeCurrencyName',\r\n pure: false,\r\n})\r\nexport class LocaleCurrencyNamePipe extends LocaleBasePipe implements PipeTransform {\r\n constructor(@Optional() dataService?: DataService, @Optional() changeDetectorRef?: ChangeDetectorRef) {\r\n super(dataService, changeDetectorRef);\r\n }\r\n transform(value: any, display: 'full' | 'symbol' | 'name' = 'full', locale?: unknown): any {\r\n if (value == null || value === '') {\r\n return '';\r\n }\r\n if (typeof value !== 'string') {\r\n return `Invalid currencyCode \"${value as any}\"`;\r\n }\r\n let name = '';\r\n let symbol = '';\r\n const activeLocale = this.getActiveLocale(locale);\r\n\r\n // Awaiting TS types for this API: https://github.com/microsoft/TypeScript/pull/44022/files\r\n const DisplayNames = (Intl as any).DisplayNames;\r\n\r\n if (display === 'full' || display === 'name') {\r\n name = new DisplayNames([activeLocale], {\r\n type: 'currency',\r\n }).of(value);\r\n }\r\n if (display === 'full' || display === 'symbol') {\r\n const parts = (\r\n new Intl.NumberFormat(activeLocale, {\r\n style: 'currency',\r\n currency: value,\r\n currencyDisplay: 'symbol',\r\n }) as any\r\n ).formatToParts();\r\n\r\n symbol = parts.find(p => p.type === 'currency')?.value || value;\r\n }\r\n return display === 'full' ? `${name} (${symbol})` : display === 'name' ? name : symbol;\r\n }\r\n}\r\n","import { ChangeDetectorRef, Optional, Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { DataService } from '../../data/providers/data.service';\r\n\r\nimport { LocaleBasePipe } from './locale-base.pipe';\r\n\r\n/**\r\n * @description\r\n * Formats a Vendure monetary value (in cents) into the correct format for the configured currency and display\r\n * locale.\r\n *\r\n * @example\r\n * ```HTML\r\n * {{ variant.priceWithTax | localeCurrency }}\r\n * ```\r\n *\r\n * @docsCategory pipes\r\n */\r\n@Pipe({\r\n name: 'localeCurrency',\r\n pure: false,\r\n})\r\nexport class LocaleCurrencyPipe extends LocaleBasePipe implements PipeTransform {\r\n constructor(@Optional() dataService?: DataService, @Optional() changeDetectorRef?: ChangeDetectorRef) {\r\n super(dataService, changeDetectorRef);\r\n }\r\n\r\n transform(value: unknown, ...args: unknown[]): string | unknown {\r\n const [currencyCode, locale] = args;\r\n if (typeof value === 'number' && typeof currencyCode === 'string') {\r\n const activeLocale = this.getActiveLocale(locale);\r\n const majorUnits = value / 100;\r\n try {\r\n return new Intl.NumberFormat(activeLocale, {\r\n style: 'currency',\r\n currency: currencyCode,\r\n }).format(majorUnits);\r\n } catch (e: any) {\r\n return majorUnits.toFixed(2);\r\n }\r\n }\r\n return value;\r\n }\r\n}\r\n","import { ChangeDetectorRef, Optional, Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { DataService } from '../../data/providers/data.service';\r\n\r\nimport { LocaleBasePipe } from './locale-base.pipe';\r\n\r\n/**\r\n * @description\r\n * A replacement of the Angular DatePipe which makes use of the Intl API\r\n * to format dates according to the selected UI language.\r\n *\r\n * @example\r\n * ```HTML\r\n * {{ order.orderPlacedAt | localeDate }}\r\n * ```\r\n *\r\n * @docsCategory pipes\r\n */\r\n@Pipe({\r\n name: 'localeDate',\r\n pure: false,\r\n})\r\nexport class LocaleDatePipe extends LocaleBasePipe implements PipeTransform {\r\n constructor(@Optional() dataService?: DataService, @Optional() changeDetectorRef?: ChangeDetectorRef) {\r\n super(dataService, changeDetectorRef);\r\n }\r\n transform(value: unknown, ...args: unknown[]): unknown {\r\n const [format, locale] = args;\r\n if (this.locale || typeof locale === 'string') {\r\n const activeLocale = this.getActiveLocale(locale);\r\n const date =\r\n value instanceof Date ? value : typeof value === 'string' ? new Date(value) : undefined;\r\n if (date) {\r\n const options = this.getOptionsForFormat(typeof format === 'string' ? format : 'medium');\r\n return new Intl.DateTimeFormat(activeLocale, options).format(date);\r\n }\r\n }\r\n }\r\n\r\n private getOptionsForFormat(dateFormat: string): Intl.DateTimeFormatOptions | undefined {\r\n switch (dateFormat) {\r\n case 'medium':\r\n return {\r\n month: 'short',\r\n year: 'numeric',\r\n day: 'numeric',\r\n hour: 'numeric',\r\n minute: 'numeric',\r\n second: 'numeric',\r\n hour12: true,\r\n };\r\n case 'mediumTime':\r\n return {\r\n hour: 'numeric',\r\n minute: 'numeric',\r\n second: 'numeric',\r\n hour12: true,\r\n };\r\n case 'longDate':\r\n return {\r\n year: 'numeric',\r\n month: 'long',\r\n day: 'numeric',\r\n };\r\n case 'short':\r\n return {\r\n day: 'numeric',\r\n month: 'numeric',\r\n year: '2-digit',\r\n hour: 'numeric',\r\n minute: 'numeric',\r\n hour12: true,\r\n };\r\n default:\r\n return;\r\n }\r\n }\r\n}\r\n","import { ChangeDetectorRef, Optional, Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { DataService } from '../../data/providers/data.service';\r\n\r\nimport { LocaleBasePipe } from './locale-base.pipe';\r\n\r\n/**\r\n * @description\r\n * Displays a human-readable name for a given ISO 639-1 language code.\r\n *\r\n * @example\r\n * ```HTML\r\n * {{ 'zh_Hant' | localeLanguageName }}\r\n * ```\r\n *\r\n * @docsCategory pipes\r\n */\r\n@Pipe({\r\n name: 'localeLanguageName',\r\n pure: false,\r\n})\r\nexport class LocaleLanguageNamePipe extends LocaleBasePipe implements PipeTransform {\r\n constructor(@Optional() dataService?: DataService, @Optional() changeDetectorRef?: ChangeDetectorRef) {\r\n super(dataService, changeDetectorRef);\r\n }\r\n transform(value: any, locale?: unknown): string {\r\n if (value == null || value === '') {\r\n return '';\r\n }\r\n if (typeof value !== 'string') {\r\n return `Invalid language code \"${value as any}\"`;\r\n }\r\n const activeLocale = this.getActiveLocale(locale);\r\n\r\n // Awaiting TS types for this API: https://github.com/microsoft/TypeScript/pull/44022/files\r\n const DisplayNames = (Intl as any).DisplayNames;\r\n\r\n try {\r\n return new DisplayNames([activeLocale.replace('_', '-')], { type: 'language' }).of(\r\n value.replace('_', '-'),\r\n );\r\n } catch (e) {\r\n return value;\r\n }\r\n }\r\n}\r\n","import { ChangeDetectorRef, Optional, Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { DataService } from '../../data/providers/data.service';\r\n\r\nimport { LocaleBasePipe } from './locale-base.pipe';\r\n\r\n/**\r\n * @description\r\n * Displays a human-readable name for a given region.\r\n *\r\n * @example\r\n * ```HTML\r\n * {{ 'GB' | localeRegionName }}\r\n * ```\r\n *\r\n * @docsCategory pipes\r\n */\r\n@Pipe({\r\n name: 'localeRegionName',\r\n pure: false,\r\n})\r\nexport class LocaleRegionNamePipe extends LocaleBasePipe implements PipeTransform {\r\n constructor(@Optional() dataService?: DataService, @Optional() changeDetectorRef?: ChangeDetectorRef) {\r\n super(dataService, changeDetectorRef);\r\n }\r\n transform(value: any, locale?: unknown): string {\r\n if (value == null || value === '') {\r\n return '';\r\n }\r\n if (typeof value !== 'string') {\r\n return `Invalid region code \"${value as any}\"`;\r\n }\r\n const activeLocale = this.getActiveLocale(locale);\r\n\r\n // Awaiting TS types for this API: https://github.com/microsoft/TypeScript/pull/44022/files\r\n const DisplayNames = (Intl as any).DisplayNames;\r\n\r\n try {\r\n return new DisplayNames([activeLocale.replace('_', '-')], { type: 'region' }).of(\r\n value.replace('_', '-'),\r\n );\r\n } catch (e) {\r\n return value;\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/**\r\n * Formats a string into sentence case (first letter of first word uppercase).\r\n */\r\n@Pipe({ name: 'sentenceCase' })\r\nexport class SentenceCasePipe implements PipeTransform {\r\n transform(value: any): any {\r\n if (typeof value === 'string') {\r\n let lower: string;\r\n if (isCamelCase(value)) {\r\n lower = value.replace(/([a-z])([A-Z])/g, '$1 $2').toLowerCase();\r\n } else {\r\n lower = value.toLowerCase();\r\n }\r\n return lower.charAt(0).toUpperCase() + lower.slice(1);\r\n }\r\n return value;\r\n }\r\n}\r\n\r\nfunction isCamelCase(value: string): boolean {\r\n return /^[a-zA-Z]+[A-Z][a-zA-Z]+$/.test(value);\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/**\r\n * A pipe for sorting elements of an array. Should be used with caution due to the\r\n * potential for perf degredation. Ideally should only be used on small arrays (< 10s of items)\r\n * and in components using OnPush change detection.\r\n */\r\n@Pipe({\r\n name: 'sort',\r\n})\r\nexport class SortPipe implements PipeTransform {\r\n transform<T>(value: T[] | readonly T[], orderByProp?: keyof T) {\r\n return value.slice().sort((a, b) => {\r\n const aProp = orderByProp ? a[orderByProp] : a;\r\n const bProp = orderByProp ? b[orderByProp] : b;\r\n if (aProp === bProp) {\r\n return 0;\r\n }\r\n if (aProp == null) {\r\n return 1;\r\n }\r\n if (bProp == null) {\r\n return -1;\r\n }\r\n return aProp > bProp ? 1 : -1;\r\n });\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\n\r\n@Pipe({\r\n name: 'stateI18nToken',\r\n})\r\nexport class StateI18nTokenPipe implements PipeTransform {\r\n private readonly stateI18nTokens = {\r\n Created: _('state.created'),\r\n Draft: _('state.draft'),\r\n AddingItems: _('state.adding-items'),\r\n ArrangingPayment: _('state.arranging-payment'),\r\n PaymentAuthorized: _('state.payment-authorized'),\r\n PaymentSettled: _('state.payment-settled'),\r\n PartiallyShipped: _('state.partially-shipped'),\r\n Shipped: _('state.shipped'),\r\n PartiallyDelivered: _('state.partially-delivered'),\r\n Authorized: _('state.authorized'),\r\n Delivered: _('state.delivered'),\r\n Cancelled: _('state.cancelled'),\r\n Pending: _('state.pending'),\r\n Settled: _('state.settled'),\r\n Failed: _('state.failed'),\r\n Error: _('state.error'),\r\n Declined: _('state.declined'),\r\n Modifying: _('state.modifying'),\r\n ArrangingAdditionalPayment: _('state.arranging-additional-payment'),\r\n };\r\n transform<T extends unknown>(value: T): T {\r\n if (typeof value === 'string' && value.length) {\r\n const defaultStateToken = this.stateI18nTokens[value as any];\r\n if (defaultStateToken) {\r\n return defaultStateToken;\r\n }\r\n return ('state.' +\r\n value\r\n .replace(/([a-z])([A-Z])/g, '$1-$2')\r\n .replace(/ +/g, '-')\r\n .toLowerCase()) as any;\r\n }\r\n return value;\r\n }\r\n}\r\n","/**\r\n * For a given string, returns one of a pre-defined selection of colours.\r\n */\r\nexport function stringToColor(input: string): string {\r\n if (!input || input === '') {\r\n return 'var(--color-component-bg-100)';\r\n }\r\n const safeColors = [\r\n '#10893E',\r\n '#107C10',\r\n '#7E735F',\r\n '#2F5646',\r\n '#498205',\r\n '#847545',\r\n '#744DA9',\r\n '#018574',\r\n '#486860',\r\n '#525E54',\r\n '#647C64',\r\n '#567C73',\r\n '#8764B8',\r\n '#515C6B',\r\n '#4A5459',\r\n '#69797E',\r\n '#0063B1',\r\n '#0078D7',\r\n '#2D7D9A',\r\n '#7A7574',\r\n '#767676',\r\n ];\r\n const value = input.split('').reduce((prev, curr, index) => {\r\n return prev + Math.round(curr.charCodeAt(0) * Math.log(index + 2));\r\n }, 0);\r\n return safeColors[value % safeColors.length];\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { stringToColor } from '../../common/utilities/string-to-color';\r\n\r\n@Pipe({\r\n name: 'stringToColor',\r\n pure: true,\r\n})\r\nexport class StringToColorPipe implements PipeTransform {\r\n transform(value: any): string {\r\n return stringToColor(value);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport dayjs from 'dayjs';\r\n\r\nimport { I18nService } from '../../providers/i18n/i18n.service';\r\n\r\n/**\r\n * @description\r\n * Converts a date into the format \"3 minutes ago\", \"5 hours ago\" etc.\r\n *\r\n * @example\r\n * ```HTML\r\n * {{ order.orderPlacedAt | timeAgo }}\r\n * ```\r\n *\r\n * @docsCategory pipes\r\n */\r\n@Pipe({\r\n name: 'timeAgo',\r\n pure: false,\r\n})\r\nexport class TimeAgoPipe implements PipeTransform {\r\n constructor(private i18nService: I18nService) {}\r\n\r\n transform(value: string | Date, nowVal?: string | Date): string {\r\n const then = dayjs(value);\r\n const now = dayjs(nowVal || new Date());\r\n const secondsDiff = now.diff(then, 'second');\r\n const durations: Array<[number, string]> = [\r\n [60, _('datetime.ago-seconds')],\r\n [3600, _('datetime.ago-minutes')],\r\n [86400, _('datetime.ago-hours')],\r\n [31536000, _('datetime.ago-days')],\r\n [Number.MAX_SAFE_INTEGER, _('datetime.ago-years')],\r\n ];\r\n\r\n let lastUpperBound = 1;\r\n for (const [upperBound, translationToken] of durations) {\r\n if (secondsDiff < upperBound) {\r\n const count = Math.max(0, Math.floor(secondsDiff / lastUpperBound));\r\n return this.i18nService.translate(translationToken, { count });\r\n }\r\n lastUpperBound = upperBound;\r\n }\r\n return then.format();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanDeactivate, Router, RouterStateSnapshot } from '@angular/router';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { DeactivateAware } from '../../../common/deactivate-aware';\r\nimport { ModalService } from '../../../providers/modal/modal.service';\r\n\r\n@Injectable()\r\nexport class CanDeactivateDetailGuard implements CanDeactivate<DeactivateAware> {\r\n constructor(private modalService: ModalService, private router: Router) {}\r\n\r\n canDeactivate(\r\n component: DeactivateAware,\r\n currentRoute: ActivatedRouteSnapshot,\r\n currentState: RouterStateSnapshot,\r\n nextState?: RouterStateSnapshot,\r\n ): boolean | Observable<boolean> {\r\n if (!component.canDeactivate()) {\r\n return this.modalService\r\n .dialog({\r\n title: _('common.confirm-navigation'),\r\n body: _('common.there-are-unsaved-changes'),\r\n buttons: [\r\n { type: 'danger', label: _('common.discard-changes'), returnValue: true },\r\n { type: 'primary', label: _('common.cancel-navigation'), returnValue: false },\r\n ],\r\n })\r\n .pipe(map(result => !!result));\r\n } else {\r\n return true;\r\n }\r\n }\r\n}\r\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { ClarityModule } from '@clr/angular';\nimport '@clr/icons';\nimport '@clr/icons/shapes/all-shapes';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport '@webcomponents/custom-elements/custom-elements.min.js';\nimport { NgxPaginationModule } from 'ngx-pagination';\n\nimport { ModalService } from '../providers/modal/modal.service';\n\nimport { ActionBarItemsComponent } from './components/action-bar-items/action-bar-items.component';\nimport {\n ActionBarComponent,\n ActionBarLeftComponent,\n ActionBarRightComponent,\n} from './components/action-bar/action-bar.component';\nimport { AddressFormComponent } from './components/address-form/address-form.component';\nimport { AffixedInputComponent } from './components/affixed-input/affixed-input.component';\nimport { PercentageSuffixInputComponent } from './components/affixed-input/percentage-suffix-input.component';\nimport { AssetFileInputComponent } from './components/asset-file-input/asset-file-input.component';\nimport { AssetGalleryComponent } from './components/asset-gallery/asset-gallery.component';\nimport { AssetPickerDialogComponent } from './components/asset-picker-dialog/asset-picker-dialog.component';\nimport { AssetPreviewDialogComponent } from './components/asset-preview-dialog/asset-preview-dialog.component';\nimport { AssetPreviewLinksComponent } from './components/asset-preview-links/asset-preview-links.component';\nimport { AssetPreviewComponent } from './components/asset-preview/asset-preview.component';\nimport { AssetSearchInputComponent } from './components/asset-search-input/asset-search-input.component';\nimport { BulkActionMenuComponent } from './components/bulk-action-menu/bulk-action-menu.component';\nimport { ChannelAssignmentControlComponent } from './components/channel-assignment-control/channel-assignment-control.component';\nimport { ChannelBadgeComponent } from './components/channel-badge/channel-badge.component';\nimport { ChipComponent } from './components/chip/chip.component';\nimport { ConfigurableInputComponent } from './components/configurable-input/configurable-input.component';\nimport { CurrencyInputComponent } from './components/currency-input/currency-input.component';\nimport { CustomDetailComponentHostComponent } from './components/custom-detail-component-host/custom-detail-component-host.component';\nimport { CustomFieldControlComponent } from './components/custom-field-control/custom-field-control.component';\nimport { CustomerLabelComponent } from './components/customer-label/customer-label.component';\nimport { DataTableColumnComponent } from './components/data-table/data-table-column.component';\nimport { DataTableComponent } from './components/data-table/data-table.component';\nimport { DatetimePickerComponent } from './components/datetime-picker/datetime-picker.component';\nimport { DropdownItemDirective } from './components/dropdown/dropdown-item.directive';\nimport { DropdownMenuComponent } from './components/dropdown/dropdown-menu.component';\nimport { DropdownTriggerDirective } from './components/dropdown/dropdown-trigger.directive';\nimport { DropdownComponent } from './components/dropdown/dropdown.component';\nimport { EditNoteDialogComponent } from './components/edit-note-dialog/edit-note-dialog.component';\nimport { EmptyPlaceholderComponent } from './components/empty-placeholder/empty-placeholder.component';\nimport { EntityInfoComponent } from './components/entity-info/entity-info.component';\nimport { ExtensionHostComponent } from './components/extension-host/extension-host.component';\nimport { FacetValueChipComponent } from './components/facet-value-chip/facet-value-chip.component';\nimport { FacetValueSelectorComponent } from './components/facet-value-selector/facet-value-selector.component';\nimport { FocalPointControlComponent } from './components/focal-point-control/focal-point-control.component';\nimport { FormFieldControlDirective } from './components/form-field/form-field-control.directive';\nimport { FormFieldComponent } from './components/form-field/form-field.component';\nimport { FormItemComponent } from './components/form-item/form-item.component';\nimport { FormattedAddressComponent } from './components/formatted-address/formatted-address.component';\nimport { HelpTooltipComponent } from './components/help-tooltip/help-tooltip.component';\nimport { HistoryEntryDetailComponent } from './components/history-entry-detail/history-entry-detail.component';\nimport { ItemsPerPageControlsComponent } from './components/items-per-page-controls/items-per-page-controls.component';\nimport { LabeledDataComponent } from './components/labeled-data/labeled-data.component';\nimport { LanguageSelectorComponent } from './components/language-selector/language-selector.component';\nimport { ManageTagsDialogComponent } from './components/manage-tags-dialog/manage-tags-dialog.component';\nimport { DialogButtonsDirective } from './components/modal-dialog/dialog-buttons.directive';\nimport { DialogComponentOutletComponent } from './components/modal-dialog/dialog-component-outlet.component';\nimport { DialogTitleDirective } from './components/modal-dialog/dialog-title.directive';\nimport { ModalDialogComponent } from './components/modal-dialog/modal-dialog.component';\nimport { ObjectTreeComponent } from './components/object-tree/object-tree.component';\nimport { OrderStateLabelComponent } from './components/order-state-label/order-state-label.component';\nimport { PaginationControlsComponent } from './components/pagination-controls/pagination-controls.component';\nimport { ProductMultiSelectorDialogComponent } from './components/product-multi-selector-dialog/product-multi-selector-dialog.component';\nimport { ProductSearchInputComponent } from './components/product-search-input/product-search-input.component';\nimport { ProductSelectorComponent } from './components/product-selector/product-selector.component';\nimport { RadioCardFieldsetComponent } from './components/radio-card/radio-card-fieldset.component';\nimport { RadioCardComponent } from './components/radio-card/radio-card.component';\nimport { ExternalImageDialogComponent } from './components/rich-text-editor/external-image-dialog/external-image-dialog.component';\nimport { LinkDialogComponent } from './components/rich-text-editor/link-dialog/link-dialog.component';\nimport { ContextMenuComponent } from './components/rich-text-editor/prosemirror/context-menu/context-menu.component';\nimport { RawHtmlDialogComponent } from './components/rich-text-editor/raw-html-dialog/raw-html-dialog.component';\nimport { RichTextEditorComponent } from './components/rich-text-editor/rich-text-editor.component';\nimport { SelectToggleComponent } from './components/select-toggle/select-toggle.component';\nimport { SimpleDialogComponent } from './components/simple-dialog/simple-dialog.component';\nimport { StatusBadgeComponent } from './components/status-badge/status-badge.component';\nimport { TabbedCustomFieldsComponent } from './components/tabbed-custom-fields/tabbed-custom-fields.component';\nimport { TableRowActionComponent } from './components/table-row-action/table-row-action.component';\nimport { TagSelectorComponent } from './components/tag-selector/tag-selector.component';\nimport { TimelineEntryComponent } from './components/timeline-entry/timeline-entry.component';\nimport { TitleInputComponent } from './components/title-input/title-input.component';\nimport { UiExtensionPointComponent } from './components/ui-extension-point/ui-extension-point.component';\nimport { DisabledDirective } from './directives/disabled.directive';\nimport { IfDefaultChannelActiveDirective } from './directives/if-default-channel-active.directive';\nimport { IfMultichannelDirective } from './directives/if-multichannel.directive';\nimport { IfPermissionsDirective } from './directives/if-permissions.directive';\nimport { BooleanFormInputComponent } from './dynamic-form-inputs/boolean-form-input/boolean-form-input.component';\nimport { HtmlEditorFormInputComponent } from './dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component';\nimport { JsonEditorFormInputComponent } from './dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component';\nimport { CombinationModeFormInputComponent } from './dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component';\nimport { CurrencyFormInputComponent } from './dynamic-form-inputs/currency-form-input/currency-form-input.component';\nimport { CustomerGroupFormInputComponent } from './dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component';\nimport { DateFormInputComponent } from './dynamic-form-inputs/date-form-input/date-form-input.component';\nimport { DynamicFormInputComponent } from './dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component';\nimport { FacetValueFormInputComponent } from './dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component';\nimport { NumberFormInputComponent } from './dynamic-form-inputs/number-form-input/number-form-input.component';\nimport { PasswordFormInputComponent } from './dynamic-form-inputs/password-form-input/password-form-input.component';\nimport { ProductMultiSelectorFormInputComponent } from './dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component';\nimport { ProductSelectorFormInputComponent } from './dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component';\nimport { RelationAssetInputComponent } from './dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component';\nimport { RelationCustomerInputComponent } from './dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component';\nimport { RelationGenericInputComponent } from './dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component';\nimport { RelationProductVariantInputComponent } from './dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component';\nimport { RelationProductInputComponent } from './dynamic-form-inputs/relation-form-input/product/relation-product-input.component';\nimport {\n RelationCardComponent,\n RelationCardDetailDirective,\n RelationCardPreviewDirective,\n} from './dynamic-form-inputs/relation-form-input/relation-card/relation-card.component';\nimport { RelationFormInputComponent } from './dynamic-form-inputs/relation-form-input/relation-form-input.component';\nimport { RelationSelectorDialogComponent } from './dynamic-form-inputs/relation-form-input/relation-selector-dialog/relation-selector-dialog.component';\nimport { RichTextFormInputComponent } from './dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component';\nimport { SelectFormInputComponent } from './dynamic-form-inputs/select-form-input/select-form-input.component';\nimport { TextFormInputComponent } from './dynamic-form-inputs/text-form-input/text-form-input.component';\nimport { TextareaFormInputComponent } from './dynamic-form-inputs/textarea-form-input/textarea-form-input.component';\nimport { AssetPreviewPipe } from './pipes/asset-preview.pipe';\nimport { ChannelLabelPipe } from './pipes/channel-label.pipe';\nimport { CustomFieldDescriptionPipe } from './pipes/custom-field-description.pipe';\nimport { CustomFieldLabelPipe } from './pipes/custom-field-label.pipe';\nimport { DurationPipe } from './pipes/duration.pipe';\nimport { FileSizePipe } from './pipes/file-size.pipe';\nimport { HasPermissionPipe } from './pipes/has-permission.pipe';\nimport { LocaleCurrencyNamePipe } from './pipes/locale-currency-name.pipe';\nimport { LocaleCurrencyPipe } from './pipes/locale-currency.pipe';\nimport { LocaleDatePipe } from './pipes/locale-date.pipe';\nimport { LocaleLanguageNamePipe } from './pipes/locale-language-name.pipe';\nimport { LocaleRegionNamePipe } from './pipes/locale-region-name.pipe';\nimport { SentenceCasePipe } from './pipes/sentence-case.pipe';\nimport { SortPipe } from './pipes/sort.pipe';\nimport { StateI18nTokenPipe } from './pipes/state-i18n-token.pipe';\nimport { StringToColorPipe } from './pipes/string-to-color.pipe';\nimport { TimeAgoPipe } from './pipes/time-ago.pipe';\nimport { CanDeactivateDetailGuard } from './providers/routing/can-deactivate-detail-guard';\n\nconst IMPORTS = [\n ClarityModule,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n NgSelectModule,\n NgxPaginationModule,\n TranslateModule,\n OverlayModule,\n DragDropModule,\n];\n\nconst DECLARATIONS = [\n ActionBarComponent,\n ActionBarLeftComponent,\n ActionBarRightComponent,\n AssetPreviewComponent,\n AssetPreviewDialogComponent,\n AssetSearchInputComponent,\n ConfigurableInputComponent,\n AffixedInputComponent,\n ChipComponent,\n CurrencyInputComponent,\n LocaleCurrencyNamePipe,\n CustomerLabelComponent,\n CustomFieldControlComponent,\n DataTableComponent,\n DataTableColumnComponent,\n FacetValueSelectorComponent,\n ItemsPerPageControlsComponent,\n PaginationControlsComponent,\n TableRowActionComponent,\n FacetValueChipComponent,\n FileSizePipe,\n FormFieldComponent,\n FormFieldControlDirective,\n FormItemComponent,\n ModalDialogComponent,\n PercentageSuffixInputComponent,\n DialogComponentOutletComponent,\n DialogButtonsDirective,\n DialogTitleDirective,\n SelectToggleComponent,\n LanguageSelectorComponent,\n RichTextEditorComponent,\n SimpleDialogComponent,\n TitleInputComponent,\n SentenceCasePipe,\n DropdownComponent,\n DropdownMenuComponent,\n SortPipe,\n DropdownTriggerDirective,\n DropdownItemDirective,\n OrderStateLabelComponent,\n FormattedAddressComponent,\n LabeledDataComponent,\n StringToColorPipe,\n ObjectTreeComponent,\n IfPermissionsDirective,\n IfMultichannelDirective,\n HasPermissionPipe,\n ActionBarItemsComponent,\n DisabledDirective,\n AssetFileInputComponent,\n AssetGalleryComponent,\n AssetPickerDialogComponent,\n EntityInfoComponent,\n DatetimePickerComponent,\n ChannelBadgeComponent,\n ChannelAssignmentControlComponent,\n ChannelLabelPipe,\n IfDefaultChannelActiveDirective,\n ExtensionHostComponent,\n CustomFieldLabelPipe,\n CustomFieldDescriptionPipe,\n FocalPointControlComponent,\n AssetPreviewPipe,\n LinkDialogComponent,\n ExternalImageDialogComponent,\n TimeAgoPipe,\n DurationPipe,\n EmptyPlaceholderComponent,\n TimelineEntryComponent,\n HistoryEntryDetailComponent,\n EditNoteDialogComponent,\n ProductSelectorFormInputComponent,\n StateI18nTokenPipe,\n ProductSelectorComponent,\n HelpTooltipComponent,\n CustomerGroupFormInputComponent,\n AddressFormComponent,\n LocaleDatePipe,\n LocaleCurrencyPipe,\n LocaleLanguageNamePipe,\n LocaleRegionNamePipe,\n TagSelectorComponent,\n ManageTagsDialogComponent,\n RelationSelectorDialogComponent,\n RelationCardComponent,\n StatusBadgeComponent,\n TabbedCustomFieldsComponent,\n UiExtensionPointComponent,\n CustomDetailComponentHostComponent,\n AssetPreviewLinksComponent,\n ProductMultiSelectorDialogComponent,\n ProductSearchInputComponent,\n ContextMenuComponent,\n RawHtmlDialogComponent,\n BulkActionMenuComponent,\n RadioCardComponent,\n RadioCardFieldsetComponent,\n];\n\nconst DYNAMIC_FORM_INPUTS = [\n TextFormInputComponent,\n PasswordFormInputComponent,\n NumberFormInputComponent,\n DateFormInputComponent,\n CurrencyFormInputComponent,\n BooleanFormInputComponent,\n SelectFormInputComponent,\n FacetValueFormInputComponent,\n DynamicFormInputComponent,\n RelationFormInputComponent,\n RelationAssetInputComponent,\n RelationProductInputComponent,\n RelationProductVariantInputComponent,\n RelationCustomerInputComponent,\n RelationCardPreviewDirective,\n RelationCardDetailDirective,\n RelationSelectorDialogComponent,\n RelationGenericInputComponent,\n TextareaFormInputComponent,\n RichTextFormInputComponent,\n JsonEditorFormInputComponent,\n HtmlEditorFormInputComponent,\n ProductMultiSelectorFormInputComponent,\n CombinationModeFormInputComponent,\n];\n\n@NgModule({\n imports: [IMPORTS],\n exports: [...IMPORTS, ...DECLARATIONS, ...DYNAMIC_FORM_INPUTS],\n declarations: [...DECLARATIONS, ...DYNAMIC_FORM_INPUTS],\n providers: [\n // This needs to be shared, since lazy-loaded\n // modules have their own entryComponents which\n // are unknown to the CoreModule instance of ModalService.\n // See https://github.com/angular/angular/issues/14324#issuecomment-305650763\n ModalService,\n CanDeactivateDetailGuard,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class SharedModule {}\n","import { PlatformLocation } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { BrowserModule, Title } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { TranslateCompiler, TranslateLoader, TranslateModule } from '@ngx-translate/core';\nimport { MessageFormatConfig, MESSAGE_FORMAT_CONFIG } from 'ngx-translate-messageformat-compiler';\n\nimport { getAppConfig } from './app.config';\nimport { getDefaultUiLanguage } from './common/utilities/get-default-ui-language';\nimport { AppShellComponent } from './components/app-shell/app-shell.component';\nimport { BreadcrumbComponent } from './components/breadcrumb/breadcrumb.component';\nimport { ChannelSwitcherComponent } from './components/channel-switcher/channel-switcher.component';\nimport { MainNavComponent } from './components/main-nav/main-nav.component';\nimport { NotificationComponent } from './components/notification/notification.component';\nimport { OverlayHostComponent } from './components/overlay-host/overlay-host.component';\nimport { ThemeSwitcherComponent } from './components/theme-switcher/theme-switcher.component';\nimport { UiLanguageSwitcherDialogComponent } from './components/ui-language-switcher-dialog/ui-language-switcher-dialog.component';\nimport { UserMenuComponent } from './components/user-menu/user-menu.component';\nimport { DataModule } from './data/data.module';\nimport { CustomHttpTranslationLoader } from './providers/i18n/custom-http-loader';\nimport { InjectableTranslateMessageFormatCompiler } from './providers/i18n/custom-message-format-compiler';\nimport { I18nService } from './providers/i18n/i18n.service';\nimport { LocalStorageService } from './providers/local-storage/local-storage.service';\nimport { registerDefaultFormInputs } from './shared/dynamic-form-inputs/register-dynamic-input-components';\nimport { SharedModule } from './shared/shared.module';\n\n@NgModule({\n imports: [\n BrowserModule,\n DataModule,\n SharedModule,\n BrowserAnimationsModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient, PlatformLocation],\n },\n compiler: { provide: TranslateCompiler, useClass: InjectableTranslateMessageFormatCompiler },\n }),\n ],\n providers: [\n { provide: MESSAGE_FORMAT_CONFIG, useFactory: getLocales },\n registerDefaultFormInputs(),\n Title,\n ],\n exports: [SharedModule, OverlayHostComponent],\n declarations: [\n AppShellComponent,\n UserMenuComponent,\n MainNavComponent,\n BreadcrumbComponent,\n OverlayHostComponent,\n NotificationComponent,\n UiLanguageSwitcherDialogComponent,\n ChannelSwitcherComponent,\n ThemeSwitcherComponent,\n ],\n})\nexport class CoreModule {\n constructor(\n private i18nService: I18nService,\n private localStorageService: LocalStorageService,\n private titleService: Title,\n ) {\n this.initUiLanguages();\n this.initUiTitle();\n }\n\n private initUiLanguages() {\n const defaultLanguage = getDefaultUiLanguage();\n const lastLanguage = this.localStorageService.get('uiLanguageCode');\n const availableLanguages = getAppConfig().availableLanguages;\n\n if (!availableLanguages.includes(defaultLanguage)) {\n throw new Error(\n `The defaultLanguage \"${defaultLanguage}\" must be one of the availableLanguages [${availableLanguages\n .map(l => `\"${l}\"`)\n .join(', ')}]`,\n );\n }\n const uiLanguage =\n lastLanguage && availableLanguages.includes(lastLanguage) ? lastLanguage : defaultLanguage;\n this.localStorageService.set('uiLanguageCode', uiLanguage);\n this.i18nService.setLanguage(uiLanguage);\n this.i18nService.setDefaultLanguage(defaultLanguage);\n this.i18nService.setAvailableLanguages(availableLanguages || [defaultLanguage]);\n }\n\n private initUiTitle() {\n const title = getAppConfig().brand || 'VendureAdmin';\n\n this.titleService.setTitle(title);\n }\n}\n\nexport function HttpLoaderFactory(http: HttpClient, location: PlatformLocation) {\n // Dynamically get the baseHref, which is configured in the angular.json file\n const baseHref = location.getBaseHrefFromDOM();\n return new CustomHttpTranslationLoader(http, baseHref + 'i18n-messages/');\n}\n\n/**\n * Returns the locales defined in the vendure-ui-config.json, ensuring that the\n * default language is the first item in the array as per the messageformat\n * documentation:\n *\n * > The default locale will be the first entry of the array\n * https://messageformat.github.io/messageformat/MessageFormat\n */\nexport function getLocales(): MessageFormatConfig {\n const locales = getAppConfig().availableLanguages;\n const defaultLanguage = getDefaultUiLanguage();\n const localesWithoutDefault = locales.filter(l => l !== defaultLanguage);\n return {\n locales: [defaultLanguage, ...localesWithoutDefault],\n };\n}\n","import { NgModule } from '@angular/core';\n\nimport { AppComponent } from './app.component';\nimport { CoreModule } from './core.module';\nimport { SharedModule } from './shared/shared.module';\n\n@NgModule({\n imports: [SharedModule, CoreModule],\n declarations: [AppComponent],\n exports: [AppComponent],\n})\nexport class AppComponentModule {}\n","import { AbstractControl, FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { combineLatest, Observable, of, Subject } from 'rxjs';\r\nimport { distinctUntilChanged, map, shareReplay, switchMap, takeUntil, tap } from 'rxjs/operators';\r\n\r\nimport { DataService } from '../data/providers/data.service';\r\nimport { ServerConfigService } from '../data/server-config';\r\n\r\nimport { DeactivateAware } from './deactivate-aware';\r\nimport { CustomFieldConfig, CustomFields, LanguageCode } from './generated-types';\r\nimport { TranslationOf } from './utilities/find-translation';\r\n\r\n/**\r\n * @description\r\n * A base class for entity detail views. It should be used in conjunction with the\r\n * {@link BaseEntityResolver}.\r\n *\r\n * @example\r\n * ```TypeScript\r\n * \\@Component({\r\n * selector: 'app-my-entity',\r\n * templateUrl: './my-entity.component.html',\r\n * styleUrls: ['./my-entity.component.scss'],\r\n * changeDetection: ChangeDetectionStrategy.OnPush,\r\n * })\r\n * export class GlobalSettingsComponent extends BaseDetailComponent<MyEntity.Fragment> implements OnInit {\r\n * detailForm: FormGroup;\r\n *\r\n * constructor(\r\n * router: Router,\r\n * route: ActivatedRoute,\r\n * serverConfigService: ServerConfigService,\r\n * protected dataService: DataService,\r\n * private formBuilder: FormBuilder,\r\n * ) {\r\n * super(route, router, serverConfigService, dataService);\r\n * this.detailForm = this.formBuilder.group({\r\n * name: [''],\r\n * });\r\n * }\r\n *\r\n * protected setFormValues(entity: MyEntity.Fragment, languageCode: LanguageCode): void {\r\n * this.detailForm.patchValue({\r\n * name: entity.name,\r\n * });\r\n * }\r\n * }\r\n * ```\r\n *\r\n * @docsCategory list-detail-views\r\n */\r\nexport abstract class BaseDetailComponent<Entity extends { id: string; updatedAt?: string }>\r\n implements DeactivateAware\r\n{\r\n entity$: Observable<Entity>;\r\n availableLanguages$: Observable<LanguageCode[]>;\r\n languageCode$: Observable<LanguageCode>;\r\n isNew$: Observable<boolean>;\r\n id: string;\r\n abstract detailForm: FormGroup;\r\n protected destroy$ = new Subject<void>();\r\n\r\n protected constructor(\r\n protected route: ActivatedRoute,\r\n protected router: Router,\r\n protected serverConfigService: ServerConfigService,\r\n protected dataService: DataService,\r\n ) {}\r\n\r\n init() {\r\n this.entity$ = this.route.data.pipe(\r\n switchMap(data => (data.entity as Observable<Entity>).pipe(takeUntil(this.destroy$))),\r\n tap(entity => (this.id = entity.id)),\r\n shareReplay(1),\r\n );\r\n this.isNew$ = this.entity$.pipe(\r\n map(entity => entity.id === ''),\r\n shareReplay(1),\r\n );\r\n this.languageCode$ = this.route.paramMap.pipe(\r\n map(paramMap => paramMap.get('lang')),\r\n switchMap(lang => {\r\n if (lang) {\r\n return of(lang as LanguageCode);\r\n } else {\r\n return this.dataService.client.uiState().mapSingle(data => data.uiState.contentLanguage);\r\n }\r\n }),\r\n distinctUntilChanged(),\r\n shareReplay(1),\r\n );\r\n\r\n this.availableLanguages$ = this.serverConfigService.getAvailableLanguages();\r\n\r\n combineLatest(this.entity$, this.languageCode$)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(([entity, languageCode]) => {\r\n this.setFormValues(entity, languageCode);\r\n this.detailForm.markAsPristine();\r\n });\r\n }\r\n\r\n destroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n setLanguage(code: LanguageCode) {\r\n this.setQueryParam('lang', code);\r\n this.dataService.client.setContentLanguage(code).subscribe();\r\n }\r\n\r\n canDeactivate(): boolean {\r\n return this.detailForm && this.detailForm.pristine;\r\n }\r\n\r\n protected abstract setFormValues(entity: Entity, languageCode: LanguageCode): void;\r\n\r\n protected setCustomFieldFormValues<T = Entity>(\r\n customFields: CustomFieldConfig[],\r\n formGroup: AbstractControl | null,\r\n entity: T,\r\n currentTranslation?: TranslationOf<T>,\r\n ) {\r\n for (const fieldDef of customFields) {\r\n const key = fieldDef.name;\r\n const value =\r\n fieldDef.type === 'localeString'\r\n ? (currentTranslation as any)?.customFields?.[key]\r\n : (entity as any).customFields?.[key];\r\n const control = formGroup?.get(key);\r\n if (control) {\r\n control.patchValue(value);\r\n }\r\n }\r\n }\r\n\r\n protected getCustomFieldConfig(key: Exclude<keyof CustomFields, '__typename'>): CustomFieldConfig[] {\r\n return this.serverConfigService.getCustomFieldsFor(key);\r\n }\r\n\r\n protected setQueryParam(key: string, value: any) {\r\n this.router.navigate(\r\n [\r\n './',\r\n {\r\n ...this.route.snapshot.params,\r\n [key]: value,\r\n },\r\n ],\r\n {\r\n relativeTo: this.route,\r\n queryParamsHandling: 'merge',\r\n },\r\n );\r\n }\r\n}\r\n","import {\r\n ActivatedRouteSnapshot,\r\n ActivationStart,\r\n Resolve,\r\n ResolveData,\r\n Router,\r\n RouterStateSnapshot,\r\n} from '@angular/router';\r\nimport { Type } from '@vendure/common/lib/shared-types';\r\nimport { notNullOrUndefined } from '@vendure/common/lib/shared-utils';\r\nimport { Observable, of } from 'rxjs';\r\nimport { filter, map, shareReplay, take, takeUntil } from 'rxjs/operators';\r\n\r\nexport interface EntityResolveData<R> extends ResolveData {\r\n entity: Type<BaseEntityResolver<R>>;\r\n}\r\n\r\nexport function createResolveData<T extends BaseEntityResolver<R>, R>(\r\n resolver: Type<T>,\r\n): EntityResolveData<R> {\r\n return {\r\n entity: resolver,\r\n };\r\n}\r\n\r\n/**\r\n * @description\r\n * A base resolver for an entity detail route. Resolves to an observable of the given entity, or a \"blank\"\r\n * version if the route id equals \"create\". Should be used together with details views which extend the\r\n * {@link BaseDetailComponent}.\r\n *\r\n * @example\r\n * ```TypeScript\r\n * \\@Injectable({\r\n * providedIn: 'root',\r\n * })\r\n * export class MyEntityResolver extends BaseEntityResolver<MyEntity.Fragment> {\r\n * constructor(router: Router, dataService: DataService) {\r\n * super(\r\n * router,\r\n * {\r\n * __typename: 'MyEntity',\r\n * id: '',\r\n * createdAt: '',\r\n * updatedAt: '',\r\n * name: '',\r\n * },\r\n * id => dataService.query(GET_MY_ENTITY, { id }).mapStream(data => data.myEntity),\r\n * );\r\n * }\r\n * }\r\n * ```\r\n *\r\n * @docsCategory list-detail-views\r\n */\r\nexport class BaseEntityResolver<T> implements Resolve<Observable<T>> {\r\n constructor(\r\n protected router: Router,\r\n private readonly emptyEntity: T,\r\n private entityStream: (id: string) => Observable<T | null | undefined>,\r\n ) {}\r\n\r\n /** @internal */\r\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Observable<T>> {\r\n const id = route.paramMap.get('id');\r\n\r\n // Complete the entity stream upon navigating away\r\n const navigateAway$ = this.router.events.pipe(filter(event => event instanceof ActivationStart));\r\n\r\n if (id === 'create') {\r\n return of(of(this.emptyEntity));\r\n } else {\r\n const stream = this.entityStream(id || '').pipe(\r\n takeUntil(navigateAway$),\r\n filter(notNullOrUndefined),\r\n shareReplay(1),\r\n );\r\n\r\n return stream.pipe(\r\n take(1),\r\n map(() => stream),\r\n );\r\n }\r\n }\r\n}\r\n","import { Directive, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, QueryParamsHandling, Router } from '@angular/router';\r\nimport { BehaviorSubject, combineLatest, Observable, Subject } from 'rxjs';\r\nimport { distinctUntilChanged, map, shareReplay, takeUntil } from 'rxjs/operators';\r\n\r\nimport { QueryResult } from '../data/query-result';\r\n\r\nexport type ListQueryFn<R> = (take: number, skip: number, ...args: any[]) => QueryResult<R, any>;\r\nexport type MappingFn<T, R> = (result: R) => { items: T[]; totalItems: number };\r\nexport type OnPageChangeFn<V> = (skip: number, take: number) => V;\r\n\r\n/**\r\n * @description\r\n * This is a base class which implements the logic required to fetch and manipulate\r\n * a list of data from a query which returns a PaginatedList type.\r\n *\r\n * @example\r\n * ```TypeScript\r\n * \\@Component({\r\n * selector: 'my-entity-list',\r\n * templateUrl: './my-entity-list.component.html',\r\n * styleUrls: ['./my-entity-list.component.scss'],\r\n * changeDetection: ChangeDetectionStrategy.OnPush,\r\n * })\r\n * export class MyEntityListComponent extends BaseListComponent<GetMyEntityList.Query, GetMyEntityList.Items> {\r\n * constructor(\r\n * private dataService: DataService,\r\n * router: Router,\r\n * route: ActivatedRoute,\r\n * ) {\r\n * super(router, route);\r\n * super.setQueryFn(\r\n * (...args: any[]) => this.dataService.query<GetMyEntityList.Query>(GET_MY_ENTITY_LIST),\r\n * data => data.myEntities,\r\n * );\r\n * }\r\n * }\r\n * ```\r\n *\r\n * The template for the component will typically use the {@link DataTableComponent} to display the results.\r\n *\r\n * @example\r\n * ```HTML\r\n * <vdr-action-bar>\r\n * <vdr-ab-right>\r\n * <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"['CreateSettings', 'CreateTaxRate']\">\r\n * <clr-icon shape=\"plus\"></clr-icon>\r\n * Create new my entity\r\n * </a>\r\n * </vdr-ab-right>\r\n * </vdr-action-bar>\r\n *\r\n * <vdr-data-table\r\n * [items]=\"items$ | async\"\r\n * [itemsPerPage]=\"itemsPerPage$ | async\"\r\n * [totalItems]=\"totalItems$ | async\"\r\n * [currentPage]=\"currentPage$ | async\"\r\n * (pageChange)=\"setPageNumber($event)\"\r\n * (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n * >\r\n * <vdr-dt-column>{{ 'common.name' | translate }}</vdr-dt-column>\r\n * <vdr-dt-column></vdr-dt-column>\r\n * <ng-template let-myEntity=\"item\">\r\n * <td class=\"left align-middle\">{{ myEntity.name }}</td>\r\n * <td class=\"right align-middle\">\r\n * <vdr-table-row-action\r\n * iconShape=\"edit\"\r\n * [label]=\"'common.edit' | translate\"\r\n * [linkTo]=\"['./', myEntity.id]\"\r\n * ></vdr-table-row-action>\r\n * </td>\r\n * </ng-template>\r\n * </vdr-data-table>\r\n * ```\r\n *\r\n * @docsCategory list-detail-views\r\n */\r\n@Directive()\r\n// tslint:disable-next-line:directive-class-suffix\r\nexport class BaseListComponent<ResultType, ItemType, VariableType = any> implements OnInit, OnDestroy {\r\n result$: Observable<ResultType>;\r\n items$: Observable<ItemType[]>;\r\n totalItems$: Observable<number>;\r\n itemsPerPage$: Observable<number>;\r\n currentPage$: Observable<number>;\r\n protected destroy$ = new Subject<void>();\r\n private listQuery: QueryResult<ResultType, VariableType>;\r\n private listQueryFn: ListQueryFn<ResultType>;\r\n private mappingFn: MappingFn<ItemType, ResultType>;\r\n private onPageChangeFn: OnPageChangeFn<VariableType> = (skip, take) =>\r\n ({ options: { skip, take } } as any);\r\n private refresh$ = new BehaviorSubject<undefined>(undefined);\r\n private defaults: { take: number; skip: number } = { take: 10, skip: 0 };\r\n\r\n constructor(protected router: Router, protected route: ActivatedRoute) {}\r\n\r\n /**\r\n * @description\r\n * Sets the fetch function for the list being implemented.\r\n */\r\n setQueryFn(\r\n listQueryFn: ListQueryFn<ResultType>,\r\n mappingFn: MappingFn<ItemType, ResultType>,\r\n onPageChangeFn?: OnPageChangeFn<VariableType>,\r\n defaults?: { take: number; skip: number },\r\n ) {\r\n this.listQueryFn = listQueryFn;\r\n this.mappingFn = mappingFn;\r\n if (onPageChangeFn) {\r\n this.onPageChangeFn = onPageChangeFn;\r\n }\r\n if (defaults) {\r\n this.defaults = defaults;\r\n }\r\n }\r\n\r\n /** @internal */\r\n ngOnInit() {\r\n if (!this.listQueryFn) {\r\n throw new Error(\r\n `No listQueryFn has been defined. Please call super.setQueryFn() in the constructor.`,\r\n );\r\n }\r\n this.listQuery = this.listQueryFn(this.defaults.take, this.defaults.skip);\r\n\r\n const fetchPage = ([currentPage, itemsPerPage, _]: [number, number, undefined]) => {\r\n const take = itemsPerPage;\r\n const skip = (currentPage - 1) * itemsPerPage;\r\n this.listQuery.ref.refetch(this.onPageChangeFn(skip, take));\r\n };\r\n\r\n this.result$ = this.listQuery.stream$.pipe(shareReplay(1));\r\n this.items$ = this.result$.pipe(map(data => this.mappingFn(data).items));\r\n this.totalItems$ = this.result$.pipe(map(data => this.mappingFn(data).totalItems));\r\n this.currentPage$ = this.route.queryParamMap.pipe(\r\n map(qpm => qpm.get('page')),\r\n map(page => (!page ? 1 : +page)),\r\n distinctUntilChanged(),\r\n );\r\n this.itemsPerPage$ = this.route.queryParamMap.pipe(\r\n map(qpm => qpm.get('perPage')),\r\n map(perPage => (!perPage ? this.defaults.take : +perPage)),\r\n distinctUntilChanged(),\r\n );\r\n\r\n combineLatest(this.currentPage$, this.itemsPerPage$, this.refresh$)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(fetchPage);\r\n }\r\n\r\n /** @internal */\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n this.listQuery.completed$.next();\r\n }\r\n\r\n /**\r\n * @description\r\n * Sets the current page number in the url.\r\n */\r\n setPageNumber(page: number) {\r\n this.setQueryParam('page', page, { replaceUrl: true });\r\n }\r\n\r\n /**\r\n * @description\r\n * Sets the number of items per page in the url.\r\n */\r\n setItemsPerPage(perPage: number) {\r\n this.setQueryParam('perPage', perPage, { replaceUrl: true });\r\n }\r\n\r\n /**\r\n * @description\r\n * Re-fetch the current page of results.\r\n */\r\n refresh() {\r\n this.refresh$.next(undefined);\r\n }\r\n\r\n protected setQueryParam(\r\n hash: { [key: string]: any },\r\n options?: { replaceUrl?: boolean; queryParamsHandling?: QueryParamsHandling },\r\n );\r\n protected setQueryParam(\r\n key: string,\r\n value: any,\r\n options?: { replaceUrl?: boolean; queryParamsHandling?: QueryParamsHandling },\r\n );\r\n protected setQueryParam(\r\n keyOrHash: string | { [key: string]: any },\r\n valueOrOptions?: any,\r\n maybeOptions?: { replaceUrl?: boolean; queryParamsHandling?: QueryParamsHandling },\r\n ) {\r\n const paramsObject = typeof keyOrHash === 'string' ? { [keyOrHash]: valueOrOptions } : keyOrHash;\r\n const options = (typeof keyOrHash === 'string' ? maybeOptions : valueOrOptions) ?? {};\r\n this.router.navigate(['./'], {\r\n queryParams: typeof keyOrHash === 'string' ? { [keyOrHash]: valueOrOptions } : keyOrHash,\r\n relativeTo: this.route,\r\n queryParamsHandling: 'merge',\r\n ...options,\r\n });\r\n }\r\n}\r\n","import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport { Observable } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\n\nimport { BreadcrumbValue } from '../components/breadcrumb/breadcrumb.component';\n\n/**\n * Creates an observable of breadcrumb links for use in the route config of a detail route.\n */\nexport function detailBreadcrumb<T>(options: {\n entity: Observable<T>;\n id: string;\n breadcrumbKey: string;\n getName: (entity: T) => string;\n route: string;\n}): Observable<BreadcrumbValue> {\n return options.entity.pipe(\n map(entity => {\n let label = '';\n if (options.id === 'create') {\n label = 'common.create';\n } else {\n label = `${options.getName(entity)}`;\n }\n return [\n {\n label: options.breadcrumbKey,\n link: ['../', options.route],\n },\n {\n label,\n link: [options.route, options.id],\n },\n ];\n }),\n );\n}\n","import { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';\r\n\r\nimport { DataService } from '../../data/providers/data.service';\r\n\r\n/**\r\n * @description\r\n * Resolves to an object containing the Channel code of the given channelId, or if no channelId\r\n * is supplied, the code of the activeChannel.\r\n */\r\nexport function getChannelCodeFromUserStatus(dataService: DataService, channelId?: string) {\r\n return dataService.client\r\n .userStatus()\r\n .mapSingle(({ userStatus }) => {\r\n const channelCode =\r\n userStatus.channels.find(c => c.id === (channelId ?? userStatus.activeChannelId))?.code ??\r\n 'undefined';\r\n return { channelCode };\r\n })\r\n .toPromise();\r\n}\r\n\r\n/**\r\n * @description\r\n * Resolves to `true` if multiple Channels are set up.\r\n */\r\nexport function isMultiChannel(dataService: DataService) {\r\n return dataService.client\r\n .userStatus()\r\n .mapSingle(({ userStatus }) => 1 < userStatus.channels.length)\r\n .toPromise();\r\n}\r\n\r\n/**\r\n * @description\r\n * Resolves to `true` if the current active Channel is not the default Channel.\r\n */\r\nexport function currentChannelIsNotDefault(dataService: DataService) {\r\n return dataService.client\r\n .userStatus()\r\n .mapSingle(({ userStatus }) => {\r\n if (userStatus.channels.length === 1) {\r\n return false;\r\n }\r\n const defaultChannelId = userStatus.channels.find(c => c.code === DEFAULT_CHANNEL_CODE)?.id;\r\n return userStatus.activeChannelId !== defaultChannelId;\r\n })\r\n .toPromise();\r\n}\r\n","import { LanguageCode } from '../generated-types';\r\n\r\nexport type Translation<T> = T & { languageCode: LanguageCode };\r\nexport type PossiblyTranslatable<T> = { translations?: Array<Translation<T>> | null };\r\nexport type TranslationOf<E> = E extends PossiblyTranslatable<infer U> ? U : undefined;\r\n\r\n/**\r\n * @description\r\n * Given a translatable entity, returns the translation in the specified LanguageCode if\r\n * one exists.\r\n */\r\nexport function findTranslation<E extends PossiblyTranslatable<any>>(\r\n entity: E | undefined,\r\n languageCode: LanguageCode,\r\n): TranslationOf<E> | undefined {\r\n return (entity?.translations || []).find(t => t.languageCode === languageCode);\r\n}\r\n","import { CustomFieldsObject, CustomFieldType } from '@vendure/common/lib/shared-types';\nimport { assertNever } from '@vendure/common/lib/shared-utils';\n\nimport { CustomFieldConfig, LanguageCode } from '../generated-types';\n\nimport { findTranslation } from './find-translation';\n\nexport interface TranslatableUpdateOptions<T extends { translations: any[] } & MayHaveCustomFields> {\n translatable: T;\n updatedFields: { [key: string]: any };\n languageCode: LanguageCode;\n customFieldConfig?: CustomFieldConfig[];\n defaultTranslation?: Partial<T['translations'][number]>;\n}\n\nexport type MayHaveCustomFields = {\n customFields?: { [key: string]: any };\n};\n\n/**\n * When updating an entity which has translations, the value from the form will pertain to the current\n * languageCode. This function ensures that the \"translations\" array is correctly set based on the\n * existing languages and the updated values in the specified language.\n */\nexport function createUpdatedTranslatable<T extends { translations: any[] } & MayHaveCustomFields>(\n options: TranslatableUpdateOptions<T>,\n): T {\n const { translatable, updatedFields, languageCode, customFieldConfig, defaultTranslation } = options;\n const currentTranslation =\n findTranslation(translatable, languageCode) || defaultTranslation || ({} as any);\n const index = translatable.translations.indexOf(currentTranslation);\n const newTranslation = patchObject(currentTranslation, updatedFields);\n const newCustomFields: CustomFieldsObject = {};\n const newTranslatedCustomFields: CustomFieldsObject = {};\n if (customFieldConfig && updatedFields.hasOwnProperty('customFields')) {\n for (const field of customFieldConfig) {\n const value = updatedFields.customFields[field.name];\n if (field.type === 'localeString') {\n newTranslatedCustomFields[field.name] = value;\n } else {\n newCustomFields[field.name] =\n value === '' ? getDefaultValue(field.type as CustomFieldType) : value;\n }\n }\n newTranslation.customFields = newTranslatedCustomFields;\n }\n const newTranslatable = {\n ...(patchObject(translatable, updatedFields) as any),\n ...{ translations: translatable.translations.slice() },\n };\n if (customFieldConfig) {\n newTranslatable.customFields = newCustomFields;\n }\n if (index !== -1) {\n newTranslatable.translations.splice(index, 1, newTranslation);\n } else {\n newTranslatable.translations.push(newTranslation);\n }\n return newTranslatable;\n}\n\nfunction getDefaultValue(type: CustomFieldType): any {\n switch (type) {\n case 'localeString':\n case 'string':\n case 'text':\n return '';\n case 'boolean':\n return false;\n case 'float':\n case 'int':\n return 0;\n case 'datetime':\n return new Date();\n case 'relation':\n return null;\n default:\n assertNever(type);\n }\n}\n\n/**\n * Returns a shallow clone of `obj` with any properties contained in `patch` overwriting\n * those of `obj`.\n */\nfunction patchObject<T extends { [key: string]: any }>(obj: T, patch: { [key: string]: any }): T {\n const clone: any = Object.assign({}, obj);\n Object.keys(clone).forEach(key => {\n if (patch.hasOwnProperty(key)) {\n clone[key] = patch[key];\n }\n });\n return clone;\n}\n","// Auto-generated by the set-version.js script.\nexport const ADMIN_UI_VERSION = '1.8.2';\n","import { APP_INITIALIZER, FactoryProvider } from '@angular/core';\r\n\r\nimport { BulkActionRegistryService } from './bulk-action-registry.service';\r\nimport { BulkAction } from './bulk-action-types';\r\n\r\n/**\r\n * @description\r\n * Registers a custom {@link BulkAction} which can be invoked from the bulk action menu\r\n * of any supported list view.\r\n *\r\n * This allows you to provide custom functionality that can operate on any of the selected\r\n * items in the list view.\r\n *\r\n * In this example, imagine we have an integration with a 3rd-party text translation service. This\r\n * bulk action allows us to select multiple products from the product list view, and send them for\r\n * translation via a custom service which integrates with the translation service's API.\r\n *\r\n * @example\r\n * ```TypeScript\r\n * import { NgModule } from '\\@angular/core';\r\n * import { ModalService, registerBulkAction, SharedModule } from '\\@vendure/admin-ui/core';\r\n *\r\n * \\@NgModule({\r\n * imports: [SharedModule],\r\n * providers: [\r\n * ProductDataTranslationService,\r\n * registerBulkAction({\r\n * location: 'product-list',\r\n * label: 'Send to translation service',\r\n * icon: 'language',\r\n * onClick: ({ injector, selection }) => {\r\n * const modalService = injector.get(ModalService);\r\n * const translationService = injector.get(ProductDataTranslationService);\r\n * modalService\r\n * .dialog({\r\n * title: `Send ${selection.length} products for translation?`,\r\n * buttons: [\r\n * { type: 'secondary', label: 'cancel' },\r\n * { type: 'primary', label: 'send', returnValue: true },\r\n * ],\r\n * })\r\n * .subscribe(response => {\r\n * if (response) {\r\n * translationService.sendForTranslation(selection.map(item => item.productId));\r\n * }\r\n * });\r\n * },\r\n * }),\r\n * ],\r\n * })\r\n * export class MyUiExtensionModule {}\r\n * ```\r\n * @since 1.8.0\r\n * @docsCategory bulk-actions\r\n */\r\nexport function registerBulkAction(bulkAction: BulkAction): FactoryProvider {\r\n return {\r\n provide: APP_INITIALIZER,\r\n multi: true,\r\n useFactory: (registry: BulkActionRegistryService) => () => {\r\n registry.registerBulkAction(bulkAction);\r\n },\r\n deps: [BulkActionRegistryService],\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { notNullOrUndefined } from '@vendure/common/lib/shared-utils';\r\n\r\nimport { Permission } from '../../common/generated-types';\r\n\r\nimport {\r\n DashboardWidgetConfig,\r\n DashboardWidgetWidth,\r\n WidgetLayout,\r\n WidgetLayoutDefinition,\r\n} from './dashboard-widget-types';\r\n\r\n/**\r\n * Responsible for registering dashboard widget components and querying for layouts.\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DashboardWidgetService {\r\n private registry = new Map<string, DashboardWidgetConfig>();\r\n private layoutDef: WidgetLayoutDefinition = [];\r\n\r\n registerWidget(id: string, config: DashboardWidgetConfig) {\r\n if (this.registry.has(id)) {\r\n throw new Error(`A dashboard widget with the id \"${id}\" already exists`);\r\n }\r\n\r\n this.registry.set(id, config);\r\n }\r\n\r\n getAvailableIds(currentUserPermissions: Permission[]): string[] {\r\n const hasAllPermissions = (requiredPerms: string[], userPerms: string[]): boolean => {\r\n return requiredPerms.every(p => userPerms.includes(p));\r\n };\r\n\r\n return [...this.registry.entries()]\r\n .filter(([id, config]) => {\r\n return (\r\n !config.requiresPermissions ||\r\n hasAllPermissions(config.requiresPermissions, currentUserPermissions)\r\n );\r\n })\r\n .map(([id]) => id);\r\n }\r\n\r\n getWidgetById(id: string) {\r\n return this.registry.get(id);\r\n }\r\n\r\n setDefaultLayout(layout: WidgetLayoutDefinition) {\r\n this.layoutDef = layout;\r\n }\r\n\r\n getDefaultLayout(): WidgetLayoutDefinition {\r\n return this.layoutDef;\r\n }\r\n\r\n getWidgetLayout(layoutDef?: WidgetLayoutDefinition): WidgetLayout {\r\n const intermediateLayout = (layoutDef || this.layoutDef)\r\n .map(({ id, width }) => {\r\n const config = this.registry.get(id);\r\n if (!config) {\r\n return this.idNotFound(id);\r\n }\r\n return { id, config, width: this.getValidWidth(id, config, width) };\r\n })\r\n .filter(notNullOrUndefined);\r\n\r\n return this.buildLayout(intermediateLayout);\r\n }\r\n\r\n private idNotFound(id: string): undefined {\r\n // tslint:disable-next-line:no-console\r\n console.error(\r\n `No dashboard widget was found with the id \"${id}\"\\nAvailable ids: ${[...this.registry.keys()]\r\n .map(_id => `\"${_id}\"`)\r\n .join(', ')}`,\r\n );\r\n return;\r\n }\r\n\r\n private getValidWidth(\r\n id: string,\r\n config: DashboardWidgetConfig,\r\n targetWidth: DashboardWidgetWidth,\r\n ): DashboardWidgetWidth {\r\n let adjustedWidth = targetWidth;\r\n const supportedWidths = config.supportedWidths?.length\r\n ? config.supportedWidths\r\n : ([3, 4, 6, 8, 12] as DashboardWidgetWidth[]);\r\n if (!supportedWidths.includes(targetWidth)) {\r\n // Fall back to the largest supported width\r\n const sortedWidths = supportedWidths.sort((a, b) => a - b);\r\n const fallbackWidth = supportedWidths[sortedWidths.length - 1];\r\n // tslint:disable-next-line:no-console\r\n console.error(\r\n `The \"${id}\" widget does not support the specified width (${targetWidth}).\\nSupported widths are: [${sortedWidths.join(\r\n ', ',\r\n )}].\\nUsing (${fallbackWidth}) instead.`,\r\n );\r\n adjustedWidth = fallbackWidth;\r\n }\r\n return adjustedWidth;\r\n }\r\n\r\n private buildLayout(intermediateLayout: WidgetLayout[number]): WidgetLayout {\r\n const layout: WidgetLayout = [];\r\n let row: WidgetLayout[number] = [];\r\n for (const { id, config, width } of intermediateLayout) {\r\n const rowSize = row.reduce((size, c) => size + c.width, 0);\r\n if (12 < rowSize + width) {\r\n layout.push(row);\r\n row = [];\r\n }\r\n row.push({ id, config, width });\r\n }\r\n layout.push(row);\r\n return layout;\r\n }\r\n}\r\n","import { APP_INITIALIZER, FactoryProvider } from '@angular/core';\n\nimport { DashboardWidgetConfig, WidgetLayoutDefinition } from './dashboard-widget-types';\nimport { DashboardWidgetService } from './dashboard-widget.service';\n\n/**\n * @description\n * Registers a dashboard widget. Once registered, the widget can be set as part of the default\n * (using {@link setDashboardWidgetLayout}).\n */\nexport function registerDashboardWidget(id: string, config: DashboardWidgetConfig): FactoryProvider {\n return {\n provide: APP_INITIALIZER,\n multi: true,\n useFactory: (dashboardWidgetService: DashboardWidgetService) => () => {\n dashboardWidgetService.registerWidget(id, config);\n },\n deps: [DashboardWidgetService],\n };\n}\n\n/**\n * @description\n * Sets the default widget layout for the Admin UI dashboard.\n */\nexport function setDashboardWidgetLayout(layoutDef: WidgetLayoutDefinition): FactoryProvider {\n return {\n provide: APP_INITIALIZER,\n multi: true,\n useFactory: (dashboardWidgetService: DashboardWidgetService) => () => {\n dashboardWidgetService.setDefaultLayout(layoutDef);\n },\n deps: [DashboardWidgetService],\n };\n}\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\n\r\nimport { getAppConfig } from '../../app.config';\r\nimport { AuthService } from '../auth/auth.service';\r\n\r\n/**\r\n * This guard prevents unauthorized users from accessing any routes which require\r\n * authorization.\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthGuard implements CanActivate {\r\n private readonly externalLoginUrl: string | undefined;\r\n\r\n constructor(private router: Router, private authService: AuthService) {\r\n this.externalLoginUrl = getAppConfig().loginUrl;\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot): Observable<boolean> {\r\n return this.authService.checkAuthenticatedStatus().pipe(\r\n tap(authenticated => {\r\n if (!authenticated) {\r\n if (this.externalLoginUrl) {\r\n window.location.href = this.externalLoginUrl;\r\n } else {\r\n this.router.navigate(['/login']);\r\n }\r\n }\r\n }),\r\n );\r\n }\r\n}\r\n","export interface ExtensionHostOptions {\r\n extensionUrl: string;\r\n openInNewTab?: boolean;\r\n}\r\n\r\nexport class ExtensionHostConfig {\r\n public extensionUrl: string;\r\n public openInNewTab: boolean;\r\n constructor(options: ExtensionHostOptions) {\r\n this.extensionUrl = options.extensionUrl;\r\n this.openInNewTab = options.openInNewTab != null ? options.openInNewTab : false;\r\n }\r\n}\r\n","import { Route } from '@angular/router';\r\n\r\nimport { ExtensionHostConfig, ExtensionHostOptions } from './extension-host-config';\r\nimport { ExtensionHostComponent } from './extension-host.component';\r\n\r\nexport interface ExternalFrameOptions extends ExtensionHostOptions {\r\n path: string;\r\n breadcrumbLabel: string;\r\n}\r\n\r\n/**\r\n * This function is used to conveniently configure a UI extension route to\r\n * host an external URL from the Admin UI using the {@link ExtensionHostComponent}\r\n *\r\n * @example\r\n * ```TypeScript\r\n * \\@NgModule({\r\n * imports: [\r\n * RouterModule.forChild([\r\n * hostExternalFrame({\r\n * path: '',\r\n * breadcrumbLabel: 'Vue.js App',\r\n * extensionUrl: './assets/vue-app/index.html',\r\n * openInNewTab: false,\r\n * }),\r\n * ]),\r\n * ],\r\n * })\r\n export class VueUiExtensionModule {}\r\n * ```\r\n */\r\nexport function hostExternalFrame(options: ExternalFrameOptions): Route {\r\n const pathMatch = options.path === '' ? 'full' : 'prefix';\r\n return {\r\n path: options.path,\r\n pathMatch,\r\n component: ExtensionHostComponent,\r\n data: {\r\n breadcrumb: [\r\n {\r\n label: options.breadcrumbLabel,\r\n link: ['./'],\r\n },\r\n ],\r\n extensionHostConfig: new ExtensionHostConfig(options),\r\n },\r\n };\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport function unicodePatternValidator(patternRe: RegExp): ValidatorFn {\r\n const unicodeRe = patternRe.unicode ? patternRe : new RegExp(patternRe, 'u');\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const valid = unicodeRe.test(control.value);\r\n return valid ? null : { pattern: { value: control.value } };\r\n };\r\n}\r\n","// This file was generated by the build-public-api.ts script\nexport * from './app.component.module';\nexport * from './app.component';\nexport * from './app.config';\nexport * from './common/base-detail.component';\nexport * from './common/base-entity-resolver';\nexport * from './common/base-list.component';\nexport * from './common/component-registry-types';\nexport * from './common/deactivate-aware';\nexport * from './common/detail-breadcrumb';\nexport * from './common/generated-types';\nexport * from './common/introspection-result-wrapper';\nexport * from './common/introspection-result';\nexport * from './common/single-search-selection-model';\nexport * from './common/utilities/bulk-action-utils';\nexport * from './common/utilities/configurable-operation-utils';\nexport * from './common/utilities/create-updated-translatable';\nexport * from './common/utilities/find-translation';\nexport * from './common/utilities/flatten-facet-values';\nexport * from './common/utilities/get-default-ui-language';\nexport * from './common/utilities/interpolate-description';\nexport * from './common/utilities/selection-manager';\nexport * from './common/utilities/string-to-color';\nexport * from './common/version';\nexport * from './components/app-shell/app-shell.component';\nexport * from './components/breadcrumb/breadcrumb.component';\nexport * from './components/channel-switcher/channel-switcher.component';\nexport * from './components/main-nav/main-nav.component';\nexport * from './components/notification/notification.component';\nexport * from './components/overlay-host/overlay-host.component';\nexport * from './components/theme-switcher/theme-switcher.component';\nexport * from './components/ui-language-switcher-dialog/ui-language-switcher-dialog.component';\nexport * from './components/user-menu/user-menu.component';\nexport * from './core.module';\nexport * from './data/check-jobs-link';\nexport * from './data/client-state/client-defaults';\nexport * from './data/client-state/client-resolvers';\nexport * from './data/data.module';\nexport * from './data/definitions/administrator-definitions';\nexport * from './data/definitions/auth-definitions';\nexport * from './data/definitions/client-definitions';\nexport * from './data/definitions/collection-definitions';\nexport * from './data/definitions/customer-definitions';\nexport * from './data/definitions/facet-definitions';\nexport * from './data/definitions/order-definitions';\nexport * from './data/definitions/product-definitions';\nexport * from './data/definitions/promotion-definitions';\nexport * from './data/definitions/settings-definitions';\nexport * from './data/definitions/shared-definitions';\nexport * from './data/definitions/shipping-definitions';\nexport * from './data/omit-typename-link';\nexport * from './data/providers/administrator-data.service';\nexport * from './data/providers/auth-data.service';\nexport * from './data/providers/base-data.service';\nexport * from './data/providers/client-data.service';\nexport * from './data/providers/collection-data.service';\nexport * from './data/providers/customer-data.service';\nexport * from './data/providers/data.service';\nexport * from './data/providers/facet-data.service';\nexport * from './data/providers/fetch-adapter';\nexport * from './data/providers/interceptor';\nexport * from './data/providers/order-data.service';\nexport * from './data/providers/product-data.service';\nexport * from './data/providers/promotion-data.service';\nexport * from './data/providers/settings-data.service';\nexport * from './data/providers/shipping-method-data.service';\nexport * from './data/query-result';\nexport * from './data/server-config';\nexport * from './data/utils/add-custom-fields';\nexport * from './data/utils/get-server-location';\nexport * from './data/utils/remove-readonly-custom-fields';\nexport * from './data/utils/transform-relation-custom-field-inputs';\nexport * from './providers/auth/auth.service';\nexport * from './providers/bulk-action-registry/bulk-action-registry.service';\nexport * from './providers/bulk-action-registry/bulk-action-types';\nexport * from './providers/bulk-action-registry/register-bulk-action';\nexport * from './providers/component-registry/component-registry.service';\nexport * from './providers/custom-detail-component/custom-detail-component-types';\nexport * from './providers/custom-detail-component/custom-detail-component.service';\nexport * from './providers/custom-field-component/custom-field-component.service';\nexport * from './providers/dashboard-widget/dashboard-widget-types';\nexport * from './providers/dashboard-widget/dashboard-widget.service';\nexport * from './providers/dashboard-widget/register-dashboard-widget';\nexport * from './providers/guard/auth.guard';\nexport * from './providers/health-check/health-check.service';\nexport * from './providers/i18n/custom-http-loader';\nexport * from './providers/i18n/custom-message-format-compiler';\nexport * from './providers/i18n/i18n.service';\nexport * from './providers/job-queue/job-queue.service';\nexport * from './providers/local-storage/local-storage.service';\nexport * from './providers/modal/modal.service';\nexport * from './providers/nav-builder/nav-builder-types';\nexport * from './providers/nav-builder/nav-builder.service';\nexport * from './providers/notification/notification.service';\nexport * from './providers/overlay-host/overlay-host.service';\nexport * from './shared/components/action-bar/action-bar.component';\nexport * from './shared/components/action-bar-items/action-bar-items.component';\nexport * from './shared/components/address-form/address-form.component';\nexport * from './shared/components/affixed-input/affixed-input.component';\nexport * from './shared/components/affixed-input/percentage-suffix-input.component';\nexport * from './shared/components/asset-file-input/asset-file-input.component';\nexport * from './shared/components/asset-gallery/asset-gallery.component';\nexport * from './shared/components/asset-picker-dialog/asset-picker-dialog.component';\nexport * from './shared/components/asset-preview/asset-preview.component';\nexport * from './shared/components/asset-preview-dialog/asset-preview-dialog.component';\nexport * from './shared/components/asset-preview-links/asset-preview-links.component';\nexport * from './shared/components/asset-search-input/asset-search-input.component';\nexport * from './shared/components/bulk-action-menu/bulk-action-menu.component';\nexport * from './shared/components/channel-assignment-control/channel-assignment-control.component';\nexport * from './shared/components/channel-badge/channel-badge.component';\nexport * from './shared/components/chip/chip.component';\nexport * from './shared/components/configurable-input/configurable-input.component';\nexport * from './shared/components/currency-input/currency-input.component';\nexport * from './shared/components/custom-detail-component-host/custom-detail-component-host.component';\nexport * from './shared/components/custom-field-control/custom-field-control.component';\nexport * from './shared/components/customer-label/customer-label.component';\nexport * from './shared/components/data-table/data-table-column.component';\nexport * from './shared/components/data-table/data-table.component';\nexport * from './shared/components/datetime-picker/constants';\nexport * from './shared/components/datetime-picker/datetime-picker.component';\nexport * from './shared/components/datetime-picker/datetime-picker.service';\nexport * from './shared/components/datetime-picker/types';\nexport * from './shared/components/dropdown/dropdown-item.directive';\nexport * from './shared/components/dropdown/dropdown-menu.component';\nexport * from './shared/components/dropdown/dropdown-trigger.directive';\nexport * from './shared/components/dropdown/dropdown.component';\nexport * from './shared/components/edit-note-dialog/edit-note-dialog.component';\nexport * from './shared/components/empty-placeholder/empty-placeholder.component';\nexport * from './shared/components/entity-info/entity-info.component';\nexport * from './shared/components/extension-host/extension-host-config';\nexport * from './shared/components/extension-host/extension-host.component';\nexport * from './shared/components/extension-host/extension-host.service';\nexport * from './shared/components/extension-host/host-external-frame';\nexport * from './shared/components/facet-value-chip/facet-value-chip.component';\nexport * from './shared/components/facet-value-selector/facet-value-selector.component';\nexport * from './shared/components/focal-point-control/focal-point-control.component';\nexport * from './shared/components/form-field/form-field-control.directive';\nexport * from './shared/components/form-field/form-field.component';\nexport * from './shared/components/form-item/form-item.component';\nexport * from './shared/components/formatted-address/formatted-address.component';\nexport * from './shared/components/help-tooltip/help-tooltip.component';\nexport * from './shared/components/history-entry-detail/history-entry-detail.component';\nexport * from './shared/components/items-per-page-controls/items-per-page-controls.component';\nexport * from './shared/components/labeled-data/labeled-data.component';\nexport * from './shared/components/language-selector/language-selector.component';\nexport * from './shared/components/manage-tags-dialog/manage-tags-dialog.component';\nexport * from './shared/components/modal-dialog/dialog-buttons.directive';\nexport * from './shared/components/modal-dialog/dialog-component-outlet.component';\nexport * from './shared/components/modal-dialog/dialog-title.directive';\nexport * from './shared/components/modal-dialog/modal-dialog.component';\nexport * from './shared/components/object-tree/object-tree.component';\nexport * from './shared/components/order-state-label/order-state-label.component';\nexport * from './shared/components/pagination-controls/pagination-controls.component';\nexport * from './shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component';\nexport * from './shared/components/product-search-input/product-search-input.component';\nexport * from './shared/components/product-selector/product-selector.component';\nexport * from './shared/components/radio-card/radio-card-fieldset.component';\nexport * from './shared/components/radio-card/radio-card.component';\nexport * from './shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component';\nexport * from './shared/components/rich-text-editor/link-dialog/link-dialog.component';\nexport * from './shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component';\nexport * from './shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service';\nexport * from './shared/components/rich-text-editor/prosemirror/custom-nodes';\nexport * from './shared/components/rich-text-editor/prosemirror/inputrules';\nexport * from './shared/components/rich-text-editor/prosemirror/keymap';\nexport * from './shared/components/rich-text-editor/prosemirror/menu/links';\nexport * from './shared/components/rich-text-editor/prosemirror/menu/menu-common';\nexport * from './shared/components/rich-text-editor/prosemirror/menu/menu-plugin';\nexport * from './shared/components/rich-text-editor/prosemirror/menu/menu';\nexport * from './shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon';\nexport * from './shared/components/rich-text-editor/prosemirror/plugins/image-plugin';\nexport * from './shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin';\nexport * from './shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin';\nexport * from './shared/components/rich-text-editor/prosemirror/plugins/tables-plugin';\nexport * from './shared/components/rich-text-editor/prosemirror/prosemirror.service';\nexport * from './shared/components/rich-text-editor/prosemirror/types';\nexport * from './shared/components/rich-text-editor/prosemirror/utils';\nexport * from './shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component';\nexport * from './shared/components/rich-text-editor/rich-text-editor.component';\nexport * from './shared/components/select-toggle/select-toggle.component';\nexport * from './shared/components/simple-dialog/simple-dialog.component';\nexport * from './shared/components/status-badge/status-badge.component';\nexport * from './shared/components/tabbed-custom-fields/tabbed-custom-fields.component';\nexport * from './shared/components/table-row-action/table-row-action.component';\nexport * from './shared/components/tag-selector/tag-selector.component';\nexport * from './shared/components/timeline-entry/timeline-entry.component';\nexport * from './shared/components/title-input/title-input.component';\nexport * from './shared/components/ui-extension-point/ui-extension-point.component';\nexport * from './shared/directives/disabled.directive';\nexport * from './shared/directives/if-default-channel-active.directive';\nexport * from './shared/directives/if-directive-base';\nexport * from './shared/directives/if-multichannel.directive';\nexport * from './shared/directives/if-permissions.directive';\nexport * from './shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component';\nexport * from './shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component';\nexport * from './shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component';\nexport * from './shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component';\nexport * from './shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component';\nexport * from './shared/dynamic-form-inputs/currency-form-input/currency-form-input.component';\nexport * from './shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component';\nexport * from './shared/dynamic-form-inputs/date-form-input/date-form-input.component';\nexport * from './shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component';\nexport * from './shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component';\nexport * from './shared/dynamic-form-inputs/number-form-input/number-form-input.component';\nexport * from './shared/dynamic-form-inputs/password-form-input/password-form-input.component';\nexport * from './shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component';\nexport * from './shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component';\nexport * from './shared/dynamic-form-inputs/register-dynamic-input-components';\nexport * from './shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component';\nexport * from './shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component';\nexport * from './shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component';\nexport * from './shared/dynamic-form-inputs/relation-form-input/product/relation-product-input.component';\nexport * from './shared/dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component';\nexport * from './shared/dynamic-form-inputs/relation-form-input/relation-card/relation-card.component';\nexport * from './shared/dynamic-form-inputs/relation-form-input/relation-form-input.component';\nexport * from './shared/dynamic-form-inputs/relation-form-input/relation-selector-dialog/relation-selector-dialog.component';\nexport * from './shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component';\nexport * from './shared/dynamic-form-inputs/select-form-input/select-form-input.component';\nexport * from './shared/dynamic-form-inputs/text-form-input/text-form-input.component';\nexport * from './shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component';\nexport * from './shared/pipes/asset-preview.pipe';\nexport * from './shared/pipes/channel-label.pipe';\nexport * from './shared/pipes/custom-field-description.pipe';\nexport * from './shared/pipes/custom-field-label.pipe';\nexport * from './shared/pipes/duration.pipe';\nexport * from './shared/pipes/file-size.pipe';\nexport * from './shared/pipes/has-permission.pipe';\nexport * from './shared/pipes/locale-base.pipe';\nexport * from './shared/pipes/locale-currency-name.pipe';\nexport * from './shared/pipes/locale-currency.pipe';\nexport * from './shared/pipes/locale-date.pipe';\nexport * from './shared/pipes/locale-language-name.pipe';\nexport * from './shared/pipes/locale-region-name.pipe';\nexport * from './shared/pipes/sentence-case.pipe';\nexport * from './shared/pipes/sort.pipe';\nexport * from './shared/pipes/state-i18n-token.pipe';\nexport * from './shared/pipes/string-to-color.pipe';\nexport * from './shared/pipes/time-ago.pipe';\nexport * from './shared/providers/routing/can-deactivate-detail-guard';\nexport * from './shared/shared.module';\nexport * from './validators/unicode-pattern.validator';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["gql","Injectable","Location","Subject","map","filter","notNullOrUndefined","distinctUntilChanged","skip","takeUntil","merge","tap","NetworkStatus","take","finalize","Injector","Kind","getOperationAST","hasCustomFields","getGraphQlInputName","simpleDeepClone","Apollo","HttpClient","pick","from","concatMap","bufferCount","AdjustmentType","AssetType","CurrencyCode","DeletionResult","ErrorCode","GlobalFlag","HistoryEntryType","JobState","LanguageCode","LogicalOperator","Permission","SortOrder","StockMovementType","switchMap","isDevMode","Component","Inject","DOCUMENT","HostListener","of","mergeMap","mapTo","catchError","DEFAULT_CHANNEL_CODE","TranslateService","ChangeDetectionStrategy","Observable","ComponentFactoryResolver","EMPTY","Router","NavigationEnd","startWith","observableCombineLatest","flatten","PRIMARY_OUTLET","observableOf","ActivatedRoute","FormControl","combineLatest","throttleTime","timer","shareReplay","scan","debounceTime","interval","APP_INITIALIZER","BehaviorSubject","_","ViewChild","ViewContainerRef","EventEmitter","Input","Output","ApolloLink","omit","DEFAULT_AUTH_TOKEN_HEADER_KEY","HttpResponse","HttpErrorResponse","InMemoryCache","introspectionResult","setContext","createUploadLink","NgModule","HttpClientModule","APOLLO_OPTIONS","HTTP_INTERCEPTORS","TranslateMessageFormatCompiler","CodeJar","Directive","ChangeDetectorRef","assertNever","FormGroup","Validators","NG_VALUE_ACCESSOR","NG_VALIDATORS","forwardRef","Optional","forkJoin","HostBinding","ContentChild","rxjsTake","delay","fromEvent","FormBuilder","SELECTION_MODEL_FACTORY","TemplateRef","PaginationService","ContentChildren","dayjs","TemplatePortal","Overlay","ElementRef","parse","DomSanitizer","NgSelectComponent","NgControl","SkipSelf","concat","bufferWhen","delayWhen","DOMSerializer","wrappingInputRule","textblockTypeInputRule","smartQuotes","ellipsis","emDash","inputRules","undo","redo","undoInputRule","joinUp","joinDown","lift","selectParentNode","toggleMark","wrapInList","wrapIn","chainCommands","exitCode","splitListItem","liftListItem","sinkListItem","setBlockType","MenuItem","NodeSelection","Plugin","addColumnBefore","addColumnAfter","addRowBefore","addRowAfter","mergeCells","splitCell","toggleHeaderColumn","toggleHeaderRow","deleteColumn","deleteRow","deleteTable","tableNodes","isInTable","toggleHeaderCell","TextSelection","tableNodeTypes","DropdownSubmenu","icons","wrapItem","blockTypeItem","Dropdown","joinUpItem","liftItem","selectParentNodeItem","menuBar","DOMParser","Schema","addListNodes","schema","EditorView","fixTables","EditorState","keymap","baseKeymap","dropCursor","gapCursor","columnResizing","tableEditing","history","FormControlName","FormControlDirective","FormArray","moveItemInArray","ViewChildren","Pipe","ClarityModule","CommonModule","FormsModule","ReactiveFormsModule","RouterModule","NgSelectModule","NgxPaginationModule","TranslateModule","OverlayModule","DragDropModule","CUSTOM_ELEMENTS_SCHEMA","BrowserModule","BrowserAnimationsModule","TranslateLoader","PlatformLocation","TranslateCompiler","MESSAGE_FORMAT_CONFIG","Title","ActivationStart"],"mappings":"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IAAZ,WAAY,YAAY;;QAEtB,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAEX,2BAAW,CAAA;;QAE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AA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,+BAAe,CAAA;;QAEf,+BAAe,CAAA;;QAEf,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,+BAAe,CAAA;;QAEf,+BAAe,CAAA;;QAEf,+BAAe,CAAA;;QAEf,+BAAe,CAAA;;QAEf,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,+BAAe,CAAA;;QAEf,+BAAe,CAAA;;QAEf,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,+BAAe,CAAA;;QAEf,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,+BAAe,CAAA;;QAEf,+BAAe,CAAA;;QAEf,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,yBAAS,CAAA;;QAET,y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ACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;aACP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"}