@vendure/admin-ui 1.7.3 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1109) hide show
  1. package/README.md +49 -0
  2. package/angular.json +196 -0
  3. package/i18n-coverage.json +71 -0
  4. package/package/bundles/vendure-admin-ui-catalog.umd.js +5689 -0
  5. package/package/bundles/vendure-admin-ui-catalog.umd.js.map +1 -0
  6. package/package/bundles/vendure-admin-ui-core.umd.js +16863 -0
  7. package/package/bundles/vendure-admin-ui-core.umd.js.map +1 -0
  8. package/package/bundles/vendure-admin-ui-customer.umd.js +1680 -0
  9. package/package/bundles/vendure-admin-ui-customer.umd.js.map +1 -0
  10. package/package/bundles/vendure-admin-ui-dashboard.umd.js +759 -0
  11. package/package/bundles/vendure-admin-ui-dashboard.umd.js.map +1 -0
  12. package/{bundles → package/bundles}/vendure-admin-ui-login.umd.js +0 -0
  13. package/{bundles → package/bundles}/vendure-admin-ui-login.umd.js.map +0 -0
  14. package/package/bundles/vendure-admin-ui-marketing.umd.js +783 -0
  15. package/package/bundles/vendure-admin-ui-marketing.umd.js.map +1 -0
  16. package/package/bundles/vendure-admin-ui-order.umd.js +4028 -0
  17. package/package/bundles/vendure-admin-ui-order.umd.js.map +1 -0
  18. package/package/bundles/vendure-admin-ui-settings.umd.js +3700 -0
  19. package/package/bundles/vendure-admin-ui-settings.umd.js.map +1 -0
  20. package/package/bundles/vendure-admin-ui-system.umd.js +524 -0
  21. package/{bundles → package/bundles}/vendure-admin-ui-system.umd.js.map +0 -0
  22. package/{bundles → package/bundles}/vendure-admin-ui.umd.js +0 -0
  23. package/{bundles → package/bundles}/vendure-admin-ui.umd.js.map +0 -0
  24. package/package/catalog/catalog.module.d.ts +5 -0
  25. package/{catalog → package/catalog}/catalog.routes.d.ts +0 -0
  26. package/{catalog → package/catalog}/components/apply-facet-dialog/apply-facet-dialog.component.d.ts +0 -0
  27. package/{catalog → package/catalog}/components/asset-detail/asset-detail.component.d.ts +0 -0
  28. package/{catalog → package/catalog}/components/asset-list/asset-list.component.d.ts +0 -0
  29. package/{catalog → package/catalog}/components/assets/assets.component.d.ts +0 -0
  30. package/{catalog → package/catalog}/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.d.ts +0 -0
  31. package/package/catalog/components/assign-to-channel-dialog/assign-to-channel-dialog.component.d.ts +17 -0
  32. package/package/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.d.ts +38 -0
  33. package/package/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.graphql.d.ts +4 -0
  34. package/{catalog → package/catalog}/components/collection-contents/collection-contents.component.d.ts +0 -0
  35. package/{catalog → package/catalog}/components/collection-detail/collection-detail.component.d.ts +0 -0
  36. package/package/catalog/components/collection-list/collection-list-bulk-actions.d.ts +6 -0
  37. package/package/catalog/components/collection-list/collection-list.component.d.ts +35 -0
  38. package/{catalog → package/catalog}/components/collection-tree/array-to-tree.d.ts +0 -0
  39. package/package/catalog/components/collection-tree/collection-tree-node.component.d.ts +40 -0
  40. package/package/catalog/components/collection-tree/collection-tree.component.d.ts +36 -0
  41. package/{catalog → package/catalog}/components/confirm-variant-deletion-dialog/confirm-variant-deletion-dialog.component.d.ts +0 -0
  42. package/{catalog → package/catalog}/components/facet-detail/facet-detail.component.d.ts +0 -0
  43. package/package/catalog/components/facet-list/facet-list-bulk-actions.d.ts +5 -0
  44. package/package/catalog/components/facet-list/facet-list.component.d.ts +25 -0
  45. package/{catalog → package/catalog}/components/generate-product-variants/generate-product-variants.component.d.ts +0 -0
  46. package/{catalog → package/catalog}/components/option-value-input/option-value-input.component.d.ts +0 -0
  47. package/{catalog → package/catalog}/components/product-detail/product-detail.component.d.ts +0 -0
  48. package/package/catalog/components/product-list/product-list-bulk-actions.d.ts +6 -0
  49. package/package/catalog/components/product-list/product-list.component.d.ts +30 -0
  50. package/{catalog → package/catalog}/components/product-options-editor/product-options-editor.component.d.ts +0 -0
  51. package/package/catalog/components/product-variants-editor/product-variants-editor.component.d.ts +79 -0
  52. package/{catalog → package/catalog}/components/product-variants-list/product-variants-list.component.d.ts +0 -0
  53. package/{catalog → package/catalog}/components/product-variants-table/product-variants-table.component.d.ts +0 -0
  54. package/{catalog → package/catalog}/components/update-product-option-dialog/update-product-option-dialog.component.d.ts +0 -0
  55. package/{catalog → package/catalog}/components/variant-price-detail/variant-price-detail.component.d.ts +0 -0
  56. package/{catalog → package/catalog}/package.json +0 -0
  57. package/{catalog → package/catalog}/providers/product-detail/product-detail.service.d.ts +0 -0
  58. package/{catalog → package/catalog}/providers/product-detail/replace-last.d.ts +0 -0
  59. package/{catalog → package/catalog}/providers/routing/asset-resolver.d.ts +0 -0
  60. package/{catalog → package/catalog}/providers/routing/collection-resolver.d.ts +0 -0
  61. package/{catalog → package/catalog}/providers/routing/facet-resolver.d.ts +0 -0
  62. package/{catalog → package/catalog}/providers/routing/product-resolver.d.ts +0 -0
  63. package/{catalog → package/catalog}/providers/routing/product-variants-resolver.d.ts +0 -0
  64. package/package/catalog/public_api.d.ts +39 -0
  65. package/{catalog → package/catalog}/vendure-admin-ui-catalog.d.ts +0 -0
  66. package/package/catalog/vendure-admin-ui-catalog.metadata.json +1 -0
  67. package/{core → package/core}/app.component.d.ts +0 -0
  68. package/{core → package/core}/app.component.module.d.ts +0 -0
  69. package/{core → package/core}/app.config.d.ts +0 -0
  70. package/{core → package/core}/common/base-detail.component.d.ts +0 -0
  71. package/{core → package/core}/common/base-entity-resolver.d.ts +0 -0
  72. package/{core → package/core}/common/base-list.component.d.ts +0 -0
  73. package/package/core/common/component-registry-types.d.ts +56 -0
  74. package/{core → package/core}/common/deactivate-aware.d.ts +0 -0
  75. package/{core → package/core}/common/detail-breadcrumb.d.ts +0 -0
  76. package/package/core/common/generated-types.d.ts +9748 -0
  77. package/{core → package/core}/common/introspection-result-wrapper.d.ts +0 -0
  78. package/{core → package/core}/common/introspection-result.d.ts +0 -0
  79. package/{core → package/core}/common/single-search-selection-model.d.ts +0 -0
  80. package/package/core/common/utilities/bulk-action-utils.d.ts +19 -0
  81. package/{core → package/core}/common/utilities/configurable-operation-utils.d.ts +0 -0
  82. package/{core → package/core}/common/utilities/create-updated-translatable.d.ts +0 -0
  83. package/{core → package/core}/common/utilities/find-translation.d.ts +0 -0
  84. package/{core → package/core}/common/utilities/flatten-facet-values.d.ts +0 -0
  85. package/{core → package/core}/common/utilities/get-default-ui-language.d.ts +0 -0
  86. package/{core → package/core}/common/utilities/interpolate-description.d.ts +0 -0
  87. package/package/core/common/utilities/selection-manager.d.ts +30 -0
  88. package/{core → package/core}/common/utilities/string-to-color.d.ts +0 -0
  89. package/package/core/common/version.d.ts +1 -0
  90. package/{core → package/core}/components/app-shell/app-shell.component.d.ts +0 -0
  91. package/{core → package/core}/components/breadcrumb/breadcrumb.component.d.ts +0 -0
  92. package/{core → package/core}/components/channel-switcher/channel-switcher.component.d.ts +0 -0
  93. package/{core → package/core}/components/main-nav/main-nav.component.d.ts +0 -0
  94. package/{core → package/core}/components/notification/notification.component.d.ts +0 -0
  95. package/{core → package/core}/components/overlay-host/overlay-host.component.d.ts +0 -0
  96. package/{core → package/core}/components/theme-switcher/theme-switcher.component.d.ts +0 -0
  97. package/{core → package/core}/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.d.ts +0 -0
  98. package/{core → package/core}/components/user-menu/user-menu.component.d.ts +0 -0
  99. package/{core → package/core}/core.module.d.ts +0 -0
  100. package/{core → package/core}/data/check-jobs-link.d.ts +0 -0
  101. package/{core → package/core}/data/client-state/client-defaults.d.ts +0 -0
  102. package/{core → package/core}/data/client-state/client-resolvers.d.ts +0 -0
  103. package/{core → package/core}/data/data.module.d.ts +0 -0
  104. package/{core → package/core}/data/definitions/administrator-definitions.d.ts +0 -0
  105. package/{core → package/core}/data/definitions/auth-definitions.d.ts +0 -0
  106. package/{core → package/core}/data/definitions/client-definitions.d.ts +0 -0
  107. package/package/core/data/definitions/collection-definitions.d.ts +13 -0
  108. package/{core → package/core}/data/definitions/customer-definitions.d.ts +0 -0
  109. package/package/core/data/definitions/facet-definitions.d.ts +13 -0
  110. package/package/core/data/definitions/order-definitions.d.ts +39 -0
  111. package/package/core/data/definitions/product-definitions.d.ts +46 -0
  112. package/{core → package/core}/data/definitions/promotion-definitions.d.ts +0 -0
  113. package/{core → package/core}/data/definitions/settings-definitions.d.ts +0 -0
  114. package/{core → package/core}/data/definitions/shared-definitions.d.ts +0 -0
  115. package/{core → package/core}/data/definitions/shipping-definitions.d.ts +0 -0
  116. package/{core → package/core}/data/omit-typename-link.d.ts +0 -0
  117. package/{core → package/core}/data/providers/administrator-data.service.d.ts +0 -0
  118. package/{core → package/core}/data/providers/auth-data.service.d.ts +0 -0
  119. package/{core → package/core}/data/providers/base-data.service.d.ts +0 -0
  120. package/{core → package/core}/data/providers/client-data.service.d.ts +0 -0
  121. package/package/core/data/providers/collection-data.service.d.ts +28 -0
  122. package/{core → package/core}/data/providers/customer-data.service.d.ts +0 -0
  123. package/{core → package/core}/data/providers/data.service.d.ts +0 -0
  124. package/package/core/data/providers/facet-data.service.d.ts +24 -0
  125. package/{core → package/core}/data/providers/fetch-adapter.d.ts +0 -0
  126. package/{core → package/core}/data/providers/interceptor.d.ts +0 -0
  127. package/package/core/data/providers/order-data.service.d.ts +52 -0
  128. package/package/core/data/providers/product-data.service.d.ts +82 -0
  129. package/{core → package/core}/data/providers/promotion-data.service.d.ts +0 -0
  130. package/{core → package/core}/data/providers/settings-data.service.d.ts +0 -0
  131. package/{core → package/core}/data/providers/shipping-method-data.service.d.ts +0 -0
  132. package/{core → package/core}/data/query-result.d.ts +0 -0
  133. package/{core → package/core}/data/server-config.d.ts +0 -0
  134. package/{core → package/core}/data/utils/add-custom-fields.d.ts +0 -0
  135. package/{core → package/core}/data/utils/get-server-location.d.ts +0 -0
  136. package/{core → package/core}/data/utils/remove-readonly-custom-fields.d.ts +0 -0
  137. package/{core → package/core}/data/utils/transform-relation-custom-field-inputs.d.ts +0 -0
  138. package/{core → package/core}/package.json +0 -0
  139. package/{core → package/core}/providers/auth/auth.service.d.ts +0 -0
  140. package/package/core/providers/bulk-action-registry/bulk-action-registry.service.d.ts +6 -0
  141. package/package/core/providers/bulk-action-registry/bulk-action-types.d.ts +149 -0
  142. package/package/core/providers/bulk-action-registry/register-bulk-action.d.ts +53 -0
  143. package/{core → package/core}/providers/component-registry/component-registry.service.d.ts +0 -0
  144. package/{core → package/core}/providers/custom-detail-component/custom-detail-component-types.d.ts +0 -0
  145. package/{core → package/core}/providers/custom-detail-component/custom-detail-component.service.d.ts +0 -0
  146. package/{core → package/core}/providers/custom-field-component/custom-field-component.service.d.ts +0 -0
  147. package/{core → package/core}/providers/dashboard-widget/dashboard-widget-types.d.ts +0 -0
  148. package/{core → package/core}/providers/dashboard-widget/dashboard-widget.service.d.ts +0 -0
  149. package/{core → package/core}/providers/dashboard-widget/register-dashboard-widget.d.ts +0 -0
  150. package/{core → package/core}/providers/guard/auth.guard.d.ts +0 -0
  151. package/{core → package/core}/providers/health-check/health-check.service.d.ts +0 -0
  152. package/{core → package/core}/providers/i18n/custom-http-loader.d.ts +0 -0
  153. package/{core → package/core}/providers/i18n/custom-message-format-compiler.d.ts +0 -0
  154. package/{core → package/core}/providers/i18n/i18n.service.d.ts +0 -0
  155. package/{core → package/core}/providers/job-queue/job-queue.service.d.ts +0 -0
  156. package/{core → package/core}/providers/local-storage/local-storage.service.d.ts +0 -0
  157. package/package/core/providers/modal/modal.service.d.ts +134 -0
  158. package/package/core/providers/nav-builder/nav-builder-types.d.ts +92 -0
  159. package/{core → package/core}/providers/nav-builder/nav-builder.service.d.ts +0 -0
  160. package/{core → package/core}/providers/notification/notification.service.d.ts +0 -0
  161. package/{core → package/core}/providers/overlay-host/overlay-host.service.d.ts +0 -0
  162. package/package/core/public_api.d.ts +239 -0
  163. package/{core → package/core}/shared/components/action-bar/action-bar.component.d.ts +0 -0
  164. package/{core → package/core}/shared/components/action-bar-items/action-bar-items.component.d.ts +0 -0
  165. package/{core → package/core}/shared/components/address-form/address-form.component.d.ts +0 -0
  166. package/{core → package/core}/shared/components/affixed-input/affixed-input.component.d.ts +0 -0
  167. package/{core → package/core}/shared/components/affixed-input/percentage-suffix-input.component.d.ts +0 -0
  168. package/{core → package/core}/shared/components/asset-file-input/asset-file-input.component.d.ts +0 -0
  169. package/package/core/shared/components/asset-gallery/asset-gallery.component.d.ts +67 -0
  170. package/{core → package/core}/shared/components/asset-picker-dialog/asset-picker-dialog.component.d.ts +0 -0
  171. package/{core → package/core}/shared/components/asset-preview/asset-preview.component.d.ts +0 -0
  172. package/{core → package/core}/shared/components/asset-preview-dialog/asset-preview-dialog.component.d.ts +0 -0
  173. package/{core → package/core}/shared/components/asset-preview-links/asset-preview-links.component.d.ts +0 -0
  174. package/{core → package/core}/shared/components/asset-search-input/asset-search-input.component.d.ts +0 -0
  175. package/package/core/shared/components/bulk-action-menu/bulk-action-menu.component.d.ts +29 -0
  176. package/{core → package/core}/shared/components/channel-assignment-control/channel-assignment-control.component.d.ts +0 -0
  177. package/{core → package/core}/shared/components/channel-badge/channel-badge.component.d.ts +0 -0
  178. package/{core → package/core}/shared/components/chip/chip.component.d.ts +0 -0
  179. package/{core → package/core}/shared/components/configurable-input/configurable-input.component.d.ts +0 -0
  180. package/{core → package/core}/shared/components/currency-input/currency-input.component.d.ts +0 -0
  181. package/{core → package/core}/shared/components/custom-detail-component-host/custom-detail-component-host.component.d.ts +0 -0
  182. package/{core → package/core}/shared/components/custom-field-control/custom-field-control.component.d.ts +0 -0
  183. package/{core → package/core}/shared/components/customer-label/customer-label.component.d.ts +0 -0
  184. package/{core → package/core}/shared/components/data-table/data-table-column.component.d.ts +0 -0
  185. package/package/core/shared/components/data-table/data-table.component.d.ts +101 -0
  186. package/{core → package/core}/shared/components/datetime-picker/constants.d.ts +0 -0
  187. package/{core → package/core}/shared/components/datetime-picker/datetime-picker.component.d.ts +0 -0
  188. package/{core → package/core}/shared/components/datetime-picker/datetime-picker.service.d.ts +0 -0
  189. package/{core → package/core}/shared/components/datetime-picker/types.d.ts +0 -0
  190. package/{core → package/core}/shared/components/dropdown/dropdown-item.directive.d.ts +0 -0
  191. package/package/core/shared/components/dropdown/dropdown-menu.component.d.ts +31 -0
  192. package/{core → package/core}/shared/components/dropdown/dropdown-trigger.directive.d.ts +0 -0
  193. package/{core → package/core}/shared/components/dropdown/dropdown.component.d.ts +0 -0
  194. package/{core → package/core}/shared/components/edit-note-dialog/edit-note-dialog.component.d.ts +0 -0
  195. package/{core → package/core}/shared/components/empty-placeholder/empty-placeholder.component.d.ts +0 -0
  196. package/{core → package/core}/shared/components/entity-info/entity-info.component.d.ts +0 -0
  197. package/{core → package/core}/shared/components/extension-host/extension-host-config.d.ts +0 -0
  198. package/{core → package/core}/shared/components/extension-host/extension-host.component.d.ts +0 -0
  199. package/{core → package/core}/shared/components/extension-host/extension-host.service.d.ts +0 -0
  200. package/{core → package/core}/shared/components/extension-host/host-external-frame.d.ts +0 -0
  201. package/{core → package/core}/shared/components/facet-value-chip/facet-value-chip.component.d.ts +0 -0
  202. package/{core → package/core}/shared/components/facet-value-selector/facet-value-selector.component.d.ts +0 -0
  203. package/{core → package/core}/shared/components/focal-point-control/focal-point-control.component.d.ts +0 -0
  204. package/{core → package/core}/shared/components/form-field/form-field-control.directive.d.ts +0 -0
  205. package/{core → package/core}/shared/components/form-field/form-field.component.d.ts +0 -0
  206. package/{core → package/core}/shared/components/form-item/form-item.component.d.ts +0 -0
  207. package/{core → package/core}/shared/components/formatted-address/formatted-address.component.d.ts +0 -0
  208. package/{core → package/core}/shared/components/help-tooltip/help-tooltip.component.d.ts +0 -0
  209. package/{core → package/core}/shared/components/history-entry-detail/history-entry-detail.component.d.ts +0 -0
  210. package/{core → package/core}/shared/components/items-per-page-controls/items-per-page-controls.component.d.ts +0 -0
  211. package/{core → package/core}/shared/components/labeled-data/labeled-data.component.d.ts +0 -0
  212. package/{core → package/core}/shared/components/language-selector/language-selector.component.d.ts +0 -0
  213. package/{core → package/core}/shared/components/manage-tags-dialog/manage-tags-dialog.component.d.ts +0 -0
  214. package/{core → package/core}/shared/components/modal-dialog/dialog-buttons.directive.d.ts +0 -0
  215. package/{core → package/core}/shared/components/modal-dialog/dialog-component-outlet.component.d.ts +0 -0
  216. package/{core → package/core}/shared/components/modal-dialog/dialog-title.directive.d.ts +0 -0
  217. package/{core → package/core}/shared/components/modal-dialog/modal-dialog.component.d.ts +0 -0
  218. package/{core → package/core}/shared/components/object-tree/object-tree.component.d.ts +0 -0
  219. package/{core → package/core}/shared/components/order-state-label/order-state-label.component.d.ts +0 -0
  220. package/{core → package/core}/shared/components/pagination-controls/pagination-controls.component.d.ts +0 -0
  221. package/{core → package/core}/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.d.ts +0 -0
  222. package/{core → package/core}/shared/components/product-search-input/product-search-input.component.d.ts +0 -0
  223. package/{core → package/core}/shared/components/product-selector/product-selector.component.d.ts +0 -0
  224. package/package/core/shared/components/radio-card/radio-card-fieldset.component.d.ts +21 -0
  225. package/package/core/shared/components/radio-card/radio-card.component.d.ts +19 -0
  226. package/{core → package/core}/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.d.ts +0 -0
  227. package/{core → package/core}/shared/components/rich-text-editor/link-dialog/link-dialog.component.d.ts +0 -0
  228. package/package/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.d.ts +28 -0
  229. package/package/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.d.ts +31 -0
  230. package/package/core/shared/components/rich-text-editor/prosemirror/custom-nodes.d.ts +4 -0
  231. package/package/core/shared/components/rich-text-editor/prosemirror/inputrules.d.ts +8 -0
  232. package/{core → package/core}/shared/components/rich-text-editor/prosemirror/keymap.d.ts +0 -0
  233. package/package/core/shared/components/rich-text-editor/prosemirror/menu/links.d.ts +4 -0
  234. package/package/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.d.ts +16 -0
  235. package/package/core/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.d.ts +9 -0
  236. package/{core → package/core}/shared/components/rich-text-editor/prosemirror/menu/menu.d.ts +0 -0
  237. package/package/core/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.d.ts +14 -0
  238. package/package/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.d.ts +7 -0
  239. package/package/core/shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin.d.ts +5 -0
  240. package/package/core/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.d.ts +7 -0
  241. package/package/core/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.d.ts +13 -0
  242. package/package/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.d.ts +25 -0
  243. package/package/core/shared/components/rich-text-editor/prosemirror/types.d.ts +9 -0
  244. package/{core → package/core}/shared/components/rich-text-editor/prosemirror/utils.d.ts +0 -0
  245. package/package/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.d.ts +18 -0
  246. package/package/core/shared/components/rich-text-editor/rich-text-editor.component.d.ts +39 -0
  247. package/{core → package/core}/shared/components/select-toggle/select-toggle.component.d.ts +0 -0
  248. package/{core → package/core}/shared/components/simple-dialog/simple-dialog.component.d.ts +0 -0
  249. package/{core → package/core}/shared/components/status-badge/status-badge.component.d.ts +0 -0
  250. package/{core → package/core}/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.d.ts +0 -0
  251. package/{core → package/core}/shared/components/table-row-action/table-row-action.component.d.ts +0 -0
  252. package/{core → package/core}/shared/components/tag-selector/tag-selector.component.d.ts +0 -0
  253. package/{core → package/core}/shared/components/timeline-entry/timeline-entry.component.d.ts +0 -0
  254. package/{core → package/core}/shared/components/title-input/title-input.component.d.ts +0 -0
  255. package/{core → package/core}/shared/components/ui-extension-point/ui-extension-point.component.d.ts +0 -0
  256. package/{core → package/core}/shared/directives/disabled.directive.d.ts +0 -0
  257. package/{core → package/core}/shared/directives/if-default-channel-active.directive.d.ts +0 -0
  258. package/{core → package/core}/shared/directives/if-directive-base.d.ts +0 -0
  259. package/{core → package/core}/shared/directives/if-multichannel.directive.d.ts +0 -0
  260. package/{core → package/core}/shared/directives/if-permissions.directive.d.ts +0 -0
  261. package/{core → package/core}/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.d.ts +0 -0
  262. package/package/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.d.ts +27 -0
  263. package/package/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.d.ts +19 -0
  264. package/package/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.d.ts +20 -0
  265. package/{core → package/core}/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.d.ts +0 -0
  266. package/{core → package/core}/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.d.ts +0 -0
  267. package/{core → package/core}/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.d.ts +0 -0
  268. package/{core → package/core}/shared/dynamic-form-inputs/date-form-input/date-form-input.component.d.ts +0 -0
  269. package/{core → package/core}/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.d.ts +0 -0
  270. package/{core → package/core}/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.d.ts +0 -0
  271. package/{core → package/core}/shared/dynamic-form-inputs/number-form-input/number-form-input.component.d.ts +0 -0
  272. package/{core → package/core}/shared/dynamic-form-inputs/password-form-input/password-form-input.component.d.ts +0 -0
  273. package/{core → package/core}/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.d.ts +0 -0
  274. package/{core → package/core}/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.d.ts +0 -0
  275. package/package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +90 -0
  276. package/{core → package/core}/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.d.ts +0 -0
  277. package/{core → package/core}/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.d.ts +0 -0
  278. package/{core → package/core}/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.d.ts +0 -0
  279. package/{core → package/core}/shared/dynamic-form-inputs/relation-form-input/product/relation-product-input.component.d.ts +0 -0
  280. package/{core → package/core}/shared/dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component.d.ts +0 -0
  281. package/{core → package/core}/shared/dynamic-form-inputs/relation-form-input/relation-card/relation-card.component.d.ts +0 -0
  282. package/{core → package/core}/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.d.ts +0 -0
  283. package/{core → package/core}/shared/dynamic-form-inputs/relation-form-input/relation-selector-dialog/relation-selector-dialog.component.d.ts +0 -0
  284. package/{core → package/core}/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.d.ts +0 -0
  285. package/{core → package/core}/shared/dynamic-form-inputs/select-form-input/select-form-input.component.d.ts +0 -0
  286. package/{core → package/core}/shared/dynamic-form-inputs/text-form-input/text-form-input.component.d.ts +0 -0
  287. package/{core → package/core}/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.d.ts +0 -0
  288. package/{core → package/core}/shared/pipes/asset-preview.pipe.d.ts +0 -0
  289. package/{core → package/core}/shared/pipes/channel-label.pipe.d.ts +0 -0
  290. package/{core → package/core}/shared/pipes/custom-field-label.pipe.d.ts +0 -0
  291. package/{core → package/core}/shared/pipes/duration.pipe.d.ts +0 -0
  292. package/{core → package/core}/shared/pipes/file-size.pipe.d.ts +0 -0
  293. package/{core → package/core}/shared/pipes/has-permission.pipe.d.ts +0 -0
  294. package/{core → package/core}/shared/pipes/locale-base.pipe.d.ts +0 -0
  295. package/{core → package/core}/shared/pipes/locale-currency-name.pipe.d.ts +0 -0
  296. package/{core → package/core}/shared/pipes/locale-currency.pipe.d.ts +0 -0
  297. package/{core → package/core}/shared/pipes/locale-date.pipe.d.ts +0 -0
  298. package/{core → package/core}/shared/pipes/locale-language-name.pipe.d.ts +0 -0
  299. package/{core → package/core}/shared/pipes/locale-region-name.pipe.d.ts +0 -0
  300. package/{core → package/core}/shared/pipes/sentence-case.pipe.d.ts +0 -0
  301. package/{core → package/core}/shared/pipes/sort.pipe.d.ts +0 -0
  302. package/{core → package/core}/shared/pipes/state-i18n-token.pipe.d.ts +0 -0
  303. package/{core → package/core}/shared/pipes/string-to-color.pipe.d.ts +0 -0
  304. package/{core → package/core}/shared/pipes/time-ago.pipe.d.ts +0 -0
  305. package/{core → package/core}/shared/providers/routing/can-deactivate-detail-guard.d.ts +0 -0
  306. package/{core → package/core}/shared/shared.module.d.ts +0 -0
  307. package/{core → package/core}/validators/unicode-pattern.validator.d.ts +0 -0
  308. package/{core → package/core}/vendure-admin-ui-core.d.ts +0 -0
  309. package/package/core/vendure-admin-ui-core.metadata.json +1 -0
  310. package/{customer → package/customer}/components/add-customer-to-group-dialog/add-customer-to-group-dialog.component.d.ts +0 -0
  311. package/{customer → package/customer}/components/address-card/address-card.component.d.ts +0 -0
  312. package/{customer → package/customer}/components/address-detail-dialog/address-detail-dialog.component.d.ts +0 -0
  313. package/{customer → package/customer}/components/customer-detail/customer-detail.component.d.ts +0 -0
  314. package/{customer → package/customer}/components/customer-group-detail-dialog/customer-group-detail-dialog.component.d.ts +0 -0
  315. package/{customer → package/customer}/components/customer-group-list/customer-group-list.component.d.ts +0 -0
  316. package/package/customer/components/customer-group-member-list/customer-group-member-list.component.d.ts +44 -0
  317. package/{customer → package/customer}/components/customer-history/customer-history.component.d.ts +0 -0
  318. package/{customer → package/customer}/components/customer-list/customer-list.component.d.ts +0 -0
  319. package/{customer → package/customer}/components/customer-status-label/customer-status-label.component.d.ts +0 -0
  320. package/{customer → package/customer}/components/select-customer-group-dialog/select-customer-group-dialog.component.d.ts +0 -0
  321. package/{customer → package/customer}/customer.module.d.ts +0 -0
  322. package/{customer → package/customer}/customer.routes.d.ts +0 -0
  323. package/{customer → package/customer}/package.json +0 -0
  324. package/{customer → package/customer}/providers/routing/customer-resolver.d.ts +0 -0
  325. package/{customer → package/customer}/public_api.d.ts +0 -0
  326. package/{customer → package/customer}/vendure-admin-ui-customer.d.ts +0 -0
  327. package/package/customer/vendure-admin-ui-customer.metadata.json +1 -0
  328. package/{dashboard → package/dashboard}/components/dashboard/dashboard.component.d.ts +0 -0
  329. package/{dashboard → package/dashboard}/components/dashboard-widget/dashboard-widget.component.d.ts +0 -0
  330. package/{dashboard → package/dashboard}/dashboard.module.d.ts +0 -0
  331. package/{dashboard → package/dashboard}/dashboard.routes.d.ts +0 -0
  332. package/{dashboard → package/dashboard}/default-widgets.d.ts +0 -0
  333. package/{dashboard → package/dashboard}/package.json +0 -0
  334. package/{dashboard → package/dashboard}/public_api.d.ts +0 -0
  335. package/{dashboard → package/dashboard}/vendure-admin-ui-dashboard.d.ts +0 -0
  336. package/{dashboard → package/dashboard}/vendure-admin-ui-dashboard.metadata.json +0 -0
  337. package/{dashboard → package/dashboard}/widgets/latest-orders-widget/latest-orders-widget.component.d.ts +0 -0
  338. package/{dashboard → package/dashboard}/widgets/order-summary-widget/order-summary-widget.component.d.ts +0 -0
  339. package/{dashboard → package/dashboard}/widgets/test-widget/test-widget.component.d.ts +0 -0
  340. package/{dashboard → package/dashboard}/widgets/welcome-widget/welcome-widget.component.d.ts +0 -0
  341. package/package/esm2015/catalog/catalog.module.js +85 -0
  342. package/{esm2015 → package/esm2015}/catalog/catalog.routes.js +0 -0
  343. package/{esm2015 → package/esm2015}/catalog/components/apply-facet-dialog/apply-facet-dialog.component.js +0 -0
  344. package/{esm2015 → package/esm2015}/catalog/components/asset-detail/asset-detail.component.js +0 -0
  345. package/{esm2015 → package/esm2015}/catalog/components/asset-list/asset-list.component.js +0 -0
  346. package/{esm2015 → package/esm2015}/catalog/components/assets/assets.component.js +0 -0
  347. package/package/esm2015/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.js +112 -0
  348. package/package/esm2015/catalog/components/assign-to-channel-dialog/assign-to-channel-dialog.component.js +51 -0
  349. package/package/esm2015/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.js +89 -0
  350. package/package/esm2015/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.graphql.js +69 -0
  351. package/{esm2015 → package/esm2015}/catalog/components/collection-contents/collection-contents.component.js +0 -0
  352. package/package/esm2015/catalog/components/collection-detail/collection-detail.component.js +244 -0
  353. package/package/esm2015/catalog/components/collection-list/collection-list-bulk-actions.js +147 -0
  354. package/package/esm2015/catalog/components/collection-list/collection-list.component.js +154 -0
  355. package/{esm2015 → package/esm2015}/catalog/components/collection-tree/array-to-tree.js +0 -0
  356. package/package/esm2015/catalog/components/collection-tree/collection-tree-node.component.js +126 -0
  357. package/package/esm2015/catalog/components/collection-tree/collection-tree.component.js +77 -0
  358. package/{esm2015 → package/esm2015}/catalog/components/confirm-variant-deletion-dialog/confirm-variant-deletion-dialog.component.js +0 -0
  359. package/{esm2015 → package/esm2015}/catalog/components/facet-detail/facet-detail.component.js +0 -0
  360. package/package/esm2015/catalog/components/facet-list/facet-list-bulk-actions.js +208 -0
  361. package/package/esm2015/catalog/components/facet-list/facet-list.component.js +116 -0
  362. package/{esm2015 → package/esm2015}/catalog/components/generate-product-variants/generate-product-variants.component.js +0 -0
  363. package/{esm2015 → package/esm2015}/catalog/components/option-value-input/option-value-input.component.js +0 -0
  364. package/package/esm2015/catalog/components/product-detail/product-detail.component.js +527 -0
  365. package/package/esm2015/catalog/components/product-list/product-list-bulk-actions.js +173 -0
  366. package/package/esm2015/catalog/components/product-list/product-list.component.js +158 -0
  367. package/{esm2015 → package/esm2015}/catalog/components/product-options-editor/product-options-editor.component.js +0 -0
  368. package/package/esm2015/catalog/components/product-variants-editor/product-variants-editor.component.js +429 -0
  369. package/package/esm2015/catalog/components/product-variants-list/product-variants-list.component.js +214 -0
  370. package/{esm2015 → package/esm2015}/catalog/components/product-variants-table/product-variants-table.component.js +0 -0
  371. package/{esm2015 → package/esm2015}/catalog/components/update-product-option-dialog/update-product-option-dialog.component.js +0 -0
  372. package/{esm2015 → package/esm2015}/catalog/components/variant-price-detail/variant-price-detail.component.js +0 -0
  373. package/{esm2015 → package/esm2015}/catalog/providers/product-detail/product-detail.service.js +0 -0
  374. package/{esm2015 → package/esm2015}/catalog/providers/product-detail/replace-last.js +0 -0
  375. package/{esm2015 → package/esm2015}/catalog/providers/routing/asset-resolver.js +0 -0
  376. package/package/esm2015/catalog/providers/routing/collection-resolver.js +39 -0
  377. package/{esm2015 → package/esm2015}/catalog/providers/routing/facet-resolver.js +0 -0
  378. package/{esm2015 → package/esm2015}/catalog/providers/routing/product-resolver.js +0 -0
  379. package/{esm2015 → package/esm2015}/catalog/providers/routing/product-variants-resolver.js +0 -0
  380. package/package/esm2015/catalog/public_api.js +41 -0
  381. package/{esm2015 → package/esm2015}/catalog/vendure-admin-ui-catalog.js +0 -0
  382. package/{esm2015 → package/esm2015}/core/app.component.js +0 -0
  383. package/{esm2015 → package/esm2015}/core/app.component.module.js +0 -0
  384. package/{esm2015 → package/esm2015}/core/app.config.js +0 -0
  385. package/{esm2015 → package/esm2015}/core/common/base-detail.component.js +0 -0
  386. package/{esm2015 → package/esm2015}/core/common/base-entity-resolver.js +0 -0
  387. package/{esm2015 → package/esm2015}/core/common/base-list.component.js +0 -0
  388. package/package/esm2015/core/common/component-registry-types.js +2 -0
  389. package/{esm2015 → package/esm2015}/core/common/deactivate-aware.js +0 -0
  390. package/{esm2015 → package/esm2015}/core/common/detail-breadcrumb.js +0 -0
  391. package/package/esm2015/core/common/generated-types.js +987 -0
  392. package/{esm2015 → package/esm2015}/core/common/introspection-result-wrapper.js +0 -0
  393. package/package/esm2015/core/common/introspection-result.js +300 -0
  394. package/{esm2015 → package/esm2015}/core/common/single-search-selection-model.js +0 -0
  395. package/package/esm2015/core/common/utilities/bulk-action-utils.js +44 -0
  396. package/package/esm2015/core/common/utilities/configurable-operation-utils.js +105 -0
  397. package/{esm2015 → package/esm2015}/core/common/utilities/create-updated-translatable.js +0 -0
  398. package/{esm2015 → package/esm2015}/core/common/utilities/find-translation.js +0 -0
  399. package/{esm2015 → package/esm2015}/core/common/utilities/flatten-facet-values.js +0 -0
  400. package/{esm2015 → package/esm2015}/core/common/utilities/get-default-ui-language.js +0 -0
  401. package/{esm2015 → package/esm2015}/core/common/utilities/interpolate-description.js +0 -0
  402. package/package/esm2015/core/common/utilities/selection-manager.js +96 -0
  403. package/{esm2015 → package/esm2015}/core/common/utilities/string-to-color.js +0 -0
  404. package/package/esm2015/core/common/version.js +3 -0
  405. package/{esm2015 → package/esm2015}/core/components/app-shell/app-shell.component.js +0 -0
  406. package/package/esm2015/core/components/breadcrumb/breadcrumb.component.js +126 -0
  407. package/{esm2015 → package/esm2015}/core/components/channel-switcher/channel-switcher.component.js +0 -0
  408. package/{esm2015 → package/esm2015}/core/components/main-nav/main-nav.component.js +0 -0
  409. package/{esm2015 → package/esm2015}/core/components/notification/notification.component.js +0 -0
  410. package/{esm2015 → package/esm2015}/core/components/overlay-host/overlay-host.component.js +0 -0
  411. package/{esm2015 → package/esm2015}/core/components/theme-switcher/theme-switcher.component.js +0 -0
  412. package/{esm2015 → package/esm2015}/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.js +0 -0
  413. package/{esm2015 → package/esm2015}/core/components/user-menu/user-menu.component.js +0 -0
  414. package/{esm2015 → package/esm2015}/core/core.module.js +0 -0
  415. package/{esm2015 → package/esm2015}/core/data/check-jobs-link.js +0 -0
  416. package/{esm2015 → package/esm2015}/core/data/client-state/client-defaults.js +0 -0
  417. package/{esm2015 → package/esm2015}/core/data/client-state/client-resolvers.js +0 -0
  418. package/{esm2015 → package/esm2015}/core/data/data.module.js +0 -0
  419. package/{esm2015 → package/esm2015}/core/data/definitions/administrator-definitions.js +0 -0
  420. package/{esm2015 → package/esm2015}/core/data/definitions/auth-definitions.js +0 -0
  421. package/{esm2015 → package/esm2015}/core/data/definitions/client-definitions.js +0 -0
  422. package/package/esm2015/core/data/definitions/collection-definitions.js +173 -0
  423. package/{esm2015 → package/esm2015}/core/data/definitions/customer-definitions.js +0 -0
  424. package/package/esm2015/core/data/definitions/facet-definitions.js +140 -0
  425. package/package/esm2015/core/data/definitions/order-definitions.js +585 -0
  426. package/package/esm2015/core/data/definitions/product-definitions.js +759 -0
  427. package/{esm2015 → package/esm2015}/core/data/definitions/promotion-definitions.js +0 -0
  428. package/{esm2015 → package/esm2015}/core/data/definitions/settings-definitions.js +0 -0
  429. package/{esm2015 → package/esm2015}/core/data/definitions/shared-definitions.js +0 -0
  430. package/{esm2015 → package/esm2015}/core/data/definitions/shipping-definitions.js +0 -0
  431. package/{esm2015 → package/esm2015}/core/data/omit-typename-link.js +0 -0
  432. package/{esm2015 → package/esm2015}/core/data/providers/administrator-data.service.js +0 -0
  433. package/{esm2015 → package/esm2015}/core/data/providers/auth-data.service.js +0 -0
  434. package/{esm2015 → package/esm2015}/core/data/providers/base-data.service.js +0 -0
  435. package/{esm2015 → package/esm2015}/core/data/providers/client-data.service.js +0 -0
  436. package/package/esm2015/core/data/providers/collection-data.service.js +90 -0
  437. package/package/esm2015/core/data/providers/customer-data.service.js +121 -0
  438. package/{esm2015 → package/esm2015}/core/data/providers/data.service.js +0 -0
  439. package/package/esm2015/core/data/providers/facet-data.service.js +76 -0
  440. package/{esm2015 → package/esm2015}/core/data/providers/fetch-adapter.js +0 -0
  441. package/{esm2015 → package/esm2015}/core/data/providers/interceptor.js +0 -0
  442. package/package/esm2015/core/data/providers/order-data.service.js +139 -0
  443. package/package/esm2015/core/data/providers/product-data.service.js +240 -0
  444. package/{esm2015 → package/esm2015}/core/data/providers/promotion-data.service.js +0 -0
  445. package/{esm2015 → package/esm2015}/core/data/providers/settings-data.service.js +0 -0
  446. package/{esm2015 → package/esm2015}/core/data/providers/shipping-method-data.service.js +0 -0
  447. package/{esm2015 → package/esm2015}/core/data/query-result.js +0 -0
  448. package/{esm2015 → package/esm2015}/core/data/server-config.js +0 -0
  449. package/{esm2015 → package/esm2015}/core/data/utils/add-custom-fields.js +0 -0
  450. package/{esm2015 → package/esm2015}/core/data/utils/get-server-location.js +0 -0
  451. package/package/esm2015/core/data/utils/remove-readonly-custom-fields.js +95 -0
  452. package/{esm2015 → package/esm2015}/core/data/utils/transform-relation-custom-field-inputs.js +0 -0
  453. package/{esm2015 → package/esm2015}/core/providers/auth/auth.service.js +0 -0
  454. package/package/esm2015/core/providers/bulk-action-registry/bulk-action-registry.service.js +27 -0
  455. package/package/esm2015/core/providers/bulk-action-registry/bulk-action-types.js +2 -0
  456. package/package/esm2015/core/providers/bulk-action-registry/register-bulk-action.js +63 -0
  457. package/{esm2015 → package/esm2015}/core/providers/component-registry/component-registry.service.js +0 -0
  458. package/{esm2015 → package/esm2015}/core/providers/custom-detail-component/custom-detail-component-types.js +0 -0
  459. package/{esm2015 → package/esm2015}/core/providers/custom-detail-component/custom-detail-component.service.js +0 -0
  460. package/{esm2015 → package/esm2015}/core/providers/custom-field-component/custom-field-component.service.js +0 -0
  461. package/{esm2015 → package/esm2015}/core/providers/dashboard-widget/dashboard-widget-types.js +0 -0
  462. package/package/esm2015/core/providers/dashboard-widget/dashboard-widget.service.js +94 -0
  463. package/{esm2015 → package/esm2015}/core/providers/dashboard-widget/register-dashboard-widget.js +0 -0
  464. package/{esm2015 → package/esm2015}/core/providers/guard/auth.guard.js +0 -0
  465. package/{esm2015 → package/esm2015}/core/providers/health-check/health-check.service.js +0 -0
  466. package/{esm2015 → package/esm2015}/core/providers/i18n/custom-http-loader.js +0 -0
  467. package/{esm2015 → package/esm2015}/core/providers/i18n/custom-message-format-compiler.js +0 -0
  468. package/{esm2015 → package/esm2015}/core/providers/i18n/i18n.service.js +0 -0
  469. package/{esm2015 → package/esm2015}/core/providers/job-queue/job-queue.service.js +0 -0
  470. package/{esm2015 → package/esm2015}/core/providers/local-storage/local-storage.service.js +0 -0
  471. package/package/esm2015/core/providers/modal/modal.service.js +101 -0
  472. package/package/esm2015/core/providers/nav-builder/nav-builder-types.js +2 -0
  473. package/{esm2015 → package/esm2015}/core/providers/nav-builder/nav-builder.service.js +0 -0
  474. package/{esm2015 → package/esm2015}/core/providers/notification/notification.service.js +0 -0
  475. package/{esm2015 → package/esm2015}/core/providers/overlay-host/overlay-host.service.js +0 -0
  476. package/package/esm2015/core/public_api.js +241 -0
  477. package/package/esm2015/core/shared/components/action-bar/action-bar.component.js +43 -0
  478. package/{esm2015 → package/esm2015}/core/shared/components/action-bar-items/action-bar-items.component.js +0 -0
  479. package/{esm2015 → package/esm2015}/core/shared/components/address-form/address-form.component.js +0 -0
  480. package/{esm2015 → package/esm2015}/core/shared/components/affixed-input/affixed-input.component.js +0 -0
  481. package/{esm2015 → package/esm2015}/core/shared/components/affixed-input/percentage-suffix-input.component.js +0 -0
  482. package/{esm2015 → package/esm2015}/core/shared/components/asset-file-input/asset-file-input.component.js +0 -0
  483. package/package/esm2015/core/shared/components/asset-gallery/asset-gallery.component.js +84 -0
  484. package/{esm2015 → package/esm2015}/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.js +0 -0
  485. package/{esm2015 → package/esm2015}/core/shared/components/asset-preview/asset-preview.component.js +0 -0
  486. package/{esm2015 → package/esm2015}/core/shared/components/asset-preview-dialog/asset-preview-dialog.component.js +0 -0
  487. package/{esm2015 → package/esm2015}/core/shared/components/asset-preview-links/asset-preview-links.component.js +0 -0
  488. package/{esm2015 → package/esm2015}/core/shared/components/asset-search-input/asset-search-input.component.js +0 -0
  489. package/package/esm2015/core/shared/components/bulk-action-menu/bulk-action-menu.component.js +99 -0
  490. package/{esm2015 → package/esm2015}/core/shared/components/channel-assignment-control/channel-assignment-control.component.js +0 -0
  491. package/{esm2015 → package/esm2015}/core/shared/components/channel-badge/channel-badge.component.js +0 -0
  492. package/{esm2015 → package/esm2015}/core/shared/components/chip/chip.component.js +0 -0
  493. package/{esm2015 → package/esm2015}/core/shared/components/configurable-input/configurable-input.component.js +0 -0
  494. package/{esm2015 → package/esm2015}/core/shared/components/currency-input/currency-input.component.js +0 -0
  495. package/{esm2015 → package/esm2015}/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.js +0 -0
  496. package/{esm2015 → package/esm2015}/core/shared/components/custom-field-control/custom-field-control.component.js +0 -0
  497. package/{esm2015 → package/esm2015}/core/shared/components/customer-label/customer-label.component.js +0 -0
  498. package/{esm2015 → package/esm2015}/core/shared/components/data-table/data-table-column.component.js +0 -0
  499. package/package/esm2015/core/shared/components/data-table/data-table.component.js +162 -0
  500. package/{esm2015 → package/esm2015}/core/shared/components/datetime-picker/constants.js +0 -0
  501. package/{esm2015 → package/esm2015}/core/shared/components/datetime-picker/datetime-picker.component.js +0 -0
  502. package/{esm2015 → package/esm2015}/core/shared/components/datetime-picker/datetime-picker.service.js +0 -0
  503. package/{esm2015 → package/esm2015}/core/shared/components/datetime-picker/types.js +0 -0
  504. package/{esm2015 → package/esm2015}/core/shared/components/dropdown/dropdown-item.directive.js +0 -0
  505. package/package/esm2015/core/shared/components/dropdown/dropdown-menu.component.js +122 -0
  506. package/{esm2015 → package/esm2015}/core/shared/components/dropdown/dropdown-trigger.directive.js +0 -0
  507. package/{esm2015 → package/esm2015}/core/shared/components/dropdown/dropdown.component.js +0 -0
  508. package/{esm2015 → package/esm2015}/core/shared/components/edit-note-dialog/edit-note-dialog.component.js +0 -0
  509. package/{esm2015 → package/esm2015}/core/shared/components/empty-placeholder/empty-placeholder.component.js +0 -0
  510. package/{esm2015 → package/esm2015}/core/shared/components/entity-info/entity-info.component.js +0 -0
  511. package/{esm2015 → package/esm2015}/core/shared/components/extension-host/extension-host-config.js +0 -0
  512. package/{esm2015 → package/esm2015}/core/shared/components/extension-host/extension-host.component.js +0 -0
  513. package/{esm2015 → package/esm2015}/core/shared/components/extension-host/extension-host.service.js +0 -0
  514. package/{esm2015 → package/esm2015}/core/shared/components/extension-host/host-external-frame.js +0 -0
  515. package/{esm2015 → package/esm2015}/core/shared/components/facet-value-chip/facet-value-chip.component.js +0 -0
  516. package/package/esm2015/core/shared/components/facet-value-selector/facet-value-selector.component.js +117 -0
  517. package/{esm2015 → package/esm2015}/core/shared/components/focal-point-control/focal-point-control.component.js +0 -0
  518. package/{esm2015 → package/esm2015}/core/shared/components/form-field/form-field-control.directive.js +0 -0
  519. package/{esm2015 → package/esm2015}/core/shared/components/form-field/form-field.component.js +0 -0
  520. package/{esm2015 → package/esm2015}/core/shared/components/form-item/form-item.component.js +0 -0
  521. package/{esm2015 → package/esm2015}/core/shared/components/formatted-address/formatted-address.component.js +0 -0
  522. package/{esm2015 → package/esm2015}/core/shared/components/help-tooltip/help-tooltip.component.js +0 -0
  523. package/{esm2015 → package/esm2015}/core/shared/components/history-entry-detail/history-entry-detail.component.js +0 -0
  524. package/{esm2015 → package/esm2015}/core/shared/components/items-per-page-controls/items-per-page-controls.component.js +0 -0
  525. package/{esm2015 → package/esm2015}/core/shared/components/labeled-data/labeled-data.component.js +0 -0
  526. package/package/esm2015/core/shared/components/language-selector/language-selector.component.js +21 -0
  527. package/{esm2015 → package/esm2015}/core/shared/components/manage-tags-dialog/manage-tags-dialog.component.js +0 -0
  528. package/{esm2015 → package/esm2015}/core/shared/components/modal-dialog/dialog-buttons.directive.js +0 -0
  529. package/{esm2015 → package/esm2015}/core/shared/components/modal-dialog/dialog-component-outlet.component.js +0 -0
  530. package/{esm2015 → package/esm2015}/core/shared/components/modal-dialog/dialog-title.directive.js +0 -0
  531. package/{esm2015 → package/esm2015}/core/shared/components/modal-dialog/modal-dialog.component.js +0 -0
  532. package/{esm2015 → package/esm2015}/core/shared/components/object-tree/object-tree.component.js +0 -0
  533. package/package/esm2015/core/shared/components/order-state-label/order-state-label.component.js +44 -0
  534. package/{esm2015 → package/esm2015}/core/shared/components/pagination-controls/pagination-controls.component.js +0 -0
  535. package/{esm2015 → package/esm2015}/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.js +0 -0
  536. package/package/esm2015/core/shared/components/product-search-input/product-search-input.component.js +104 -0
  537. package/package/esm2015/core/shared/components/product-selector/product-selector.component.js +61 -0
  538. package/package/esm2015/core/shared/components/radio-card/radio-card-fieldset.component.js +57 -0
  539. package/package/esm2015/core/shared/components/radio-card/radio-card.component.js +54 -0
  540. package/package/esm2015/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.js +32 -0
  541. package/{esm2015 → package/esm2015}/core/shared/components/rich-text-editor/link-dialog/link-dialog.component.js +0 -0
  542. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.js +140 -0
  543. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.js +45 -0
  544. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/custom-nodes.js +60 -0
  545. package/{esm2015 → package/esm2015}/core/shared/components/rich-text-editor/prosemirror/inputrules.js +0 -0
  546. package/{esm2015 → package/esm2015}/core/shared/components/rich-text-editor/prosemirror/keymap.js +0 -0
  547. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/links.js +69 -0
  548. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.js +42 -0
  549. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.js +12 -0
  550. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/menu.js +247 -0
  551. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.js +16 -0
  552. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.js +100 -0
  553. package/{esm2015 → package/esm2015}/core/shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin.js +0 -0
  554. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.js +97 -0
  555. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.js +166 -0
  556. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.js +142 -0
  557. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/types.js +2 -0
  558. package/{esm2015 → package/esm2015}/core/shared/components/rich-text-editor/prosemirror/utils.js +0 -0
  559. package/package/esm2015/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.js +57 -0
  560. package/package/esm2015/core/shared/components/rich-text-editor/rich-text-editor.component.js +97 -0
  561. package/{esm2015 → package/esm2015}/core/shared/components/select-toggle/select-toggle.component.js +0 -0
  562. package/package/esm2015/core/shared/components/simple-dialog/simple-dialog.component.js +21 -0
  563. package/{esm2015 → package/esm2015}/core/shared/components/status-badge/status-badge.component.js +0 -0
  564. package/{esm2015 → package/esm2015}/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.js +0 -0
  565. package/{esm2015 → package/esm2015}/core/shared/components/table-row-action/table-row-action.component.js +0 -0
  566. package/{esm2015 → package/esm2015}/core/shared/components/tag-selector/tag-selector.component.js +0 -0
  567. package/{esm2015 → package/esm2015}/core/shared/components/timeline-entry/timeline-entry.component.js +0 -0
  568. package/{esm2015 → package/esm2015}/core/shared/components/title-input/title-input.component.js +0 -0
  569. package/{esm2015 → package/esm2015}/core/shared/components/ui-extension-point/ui-extension-point.component.js +0 -0
  570. package/{esm2015 → package/esm2015}/core/shared/directives/disabled.directive.js +0 -0
  571. package/{esm2015 → package/esm2015}/core/shared/directives/if-default-channel-active.directive.js +0 -0
  572. package/{esm2015 → package/esm2015}/core/shared/directives/if-directive-base.js +0 -0
  573. package/{esm2015 → package/esm2015}/core/shared/directives/if-multichannel.directive.js +0 -0
  574. package/{esm2015 → package/esm2015}/core/shared/directives/if-permissions.directive.js +0 -0
  575. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.js +0 -0
  576. package/package/esm2015/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.js +59 -0
  577. package/package/esm2015/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.js +66 -0
  578. package/package/esm2015/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.js +88 -0
  579. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.js +0 -0
  580. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.js +0 -0
  581. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.js +0 -0
  582. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/date-form-input/date-form-input.component.js +0 -0
  583. package/package/esm2015/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.js +266 -0
  584. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.js +0 -0
  585. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.js +0 -0
  586. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.js +0 -0
  587. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.js +0 -0
  588. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.js +0 -0
  589. package/package/esm2015/core/shared/dynamic-form-inputs/register-dynamic-input-components.js +136 -0
  590. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.js +0 -0
  591. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.js +0 -0
  592. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.js +0 -0
  593. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/relation-form-input/product/relation-product-input.component.js +0 -0
  594. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component.js +0 -0
  595. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/relation-form-input/relation-card/relation-card.component.js +0 -0
  596. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.js +0 -0
  597. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/relation-form-input/relation-selector-dialog/relation-selector-dialog.component.js +0 -0
  598. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.js +0 -0
  599. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.js +0 -0
  600. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.js +0 -0
  601. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.js +0 -0
  602. package/{esm2015 → package/esm2015}/core/shared/pipes/asset-preview.pipe.js +0 -0
  603. package/{esm2015 → package/esm2015}/core/shared/pipes/channel-label.pipe.js +0 -0
  604. package/{esm2015 → package/esm2015}/core/shared/pipes/custom-field-label.pipe.js +0 -0
  605. package/{esm2015 → package/esm2015}/core/shared/pipes/duration.pipe.js +0 -0
  606. package/{esm2015 → package/esm2015}/core/shared/pipes/file-size.pipe.js +0 -0
  607. package/{esm2015 → package/esm2015}/core/shared/pipes/has-permission.pipe.js +0 -0
  608. package/{esm2015 → package/esm2015}/core/shared/pipes/locale-base.pipe.js +0 -0
  609. package/{esm2015 → package/esm2015}/core/shared/pipes/locale-currency-name.pipe.js +0 -0
  610. package/{esm2015 → package/esm2015}/core/shared/pipes/locale-currency.pipe.js +0 -0
  611. package/{esm2015 → package/esm2015}/core/shared/pipes/locale-date.pipe.js +0 -0
  612. package/{esm2015 → package/esm2015}/core/shared/pipes/locale-language-name.pipe.js +0 -0
  613. package/{esm2015 → package/esm2015}/core/shared/pipes/locale-region-name.pipe.js +0 -0
  614. package/{esm2015 → package/esm2015}/core/shared/pipes/sentence-case.pipe.js +0 -0
  615. package/{esm2015 → package/esm2015}/core/shared/pipes/sort.pipe.js +0 -0
  616. package/package/esm2015/core/shared/pipes/state-i18n-token.pipe.js +47 -0
  617. package/{esm2015 → package/esm2015}/core/shared/pipes/string-to-color.pipe.js +0 -0
  618. package/{esm2015 → package/esm2015}/core/shared/pipes/time-ago.pipe.js +0 -0
  619. package/{esm2015 → package/esm2015}/core/shared/providers/routing/can-deactivate-detail-guard.js +0 -0
  620. package/package/esm2015/core/shared/shared.module.js +287 -0
  621. package/{esm2015 → package/esm2015}/core/validators/unicode-pattern.validator.js +0 -0
  622. package/{esm2015 → package/esm2015}/core/vendure-admin-ui-core.js +0 -0
  623. package/{esm2015 → package/esm2015}/customer/components/add-customer-to-group-dialog/add-customer-to-group-dialog.component.js +0 -0
  624. package/{esm2015 → package/esm2015}/customer/components/address-card/address-card.component.js +0 -0
  625. package/{esm2015 → package/esm2015}/customer/components/address-detail-dialog/address-detail-dialog.component.js +0 -0
  626. package/{esm2015 → package/esm2015}/customer/components/customer-detail/customer-detail.component.js +0 -0
  627. package/{esm2015 → package/esm2015}/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.js +0 -0
  628. package/package/esm2015/customer/components/customer-group-list/customer-group-list.component.js +198 -0
  629. package/package/esm2015/customer/components/customer-group-member-list/customer-group-member-list.component.js +101 -0
  630. package/{esm2015 → package/esm2015}/customer/components/customer-history/customer-history.component.js +0 -0
  631. package/package/esm2015/customer/components/customer-list/customer-list.component.js +81 -0
  632. package/{esm2015 → package/esm2015}/customer/components/customer-status-label/customer-status-label.component.js +0 -0
  633. package/{esm2015 → package/esm2015}/customer/components/select-customer-group-dialog/select-customer-group-dialog.component.js +0 -0
  634. package/{esm2015 → package/esm2015}/customer/customer.module.js +0 -0
  635. package/{esm2015 → package/esm2015}/customer/customer.routes.js +0 -0
  636. package/{esm2015 → package/esm2015}/customer/providers/routing/customer-resolver.js +0 -0
  637. package/{esm2015 → package/esm2015}/customer/public_api.js +0 -0
  638. package/{esm2015 → package/esm2015}/customer/vendure-admin-ui-customer.js +0 -0
  639. package/{esm2015 → package/esm2015}/dashboard/components/dashboard/dashboard.component.js +0 -0
  640. package/{esm2015 → package/esm2015}/dashboard/components/dashboard-widget/dashboard-widget.component.js +0 -0
  641. package/package/esm2015/dashboard/dashboard.module.js +29 -0
  642. package/{esm2015 → package/esm2015}/dashboard/dashboard.routes.js +0 -0
  643. package/{esm2015 → package/esm2015}/dashboard/default-widgets.js +0 -0
  644. package/{esm2015 → package/esm2015}/dashboard/public_api.js +0 -0
  645. package/{esm2015 → package/esm2015}/dashboard/vendure-admin-ui-dashboard.js +0 -0
  646. package/{esm2015 → package/esm2015}/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.js +0 -0
  647. package/{esm2015 → package/esm2015}/dashboard/widgets/order-summary-widget/order-summary-widget.component.js +0 -0
  648. package/{esm2015 → package/esm2015}/dashboard/widgets/test-widget/test-widget.component.js +0 -0
  649. package/{esm2015 → package/esm2015}/dashboard/widgets/welcome-widget/welcome-widget.component.js +0 -0
  650. package/{esm2015 → package/esm2015}/login/components/login/login.component.js +0 -0
  651. package/{esm2015 → package/esm2015}/login/login.module.js +0 -0
  652. package/{esm2015 → package/esm2015}/login/login.routes.js +0 -0
  653. package/{esm2015 → package/esm2015}/login/providers/login.guard.js +0 -0
  654. package/{esm2015 → package/esm2015}/login/public_api.js +0 -0
  655. package/{esm2015 → package/esm2015}/login/vendure-admin-ui-login.js +0 -0
  656. package/package/esm2015/marketing/components/promotion-detail/promotion-detail.component.js +247 -0
  657. package/{esm2015 → package/esm2015}/marketing/components/promotion-list/promotion-list.component.js +0 -0
  658. package/{esm2015 → package/esm2015}/marketing/marketing.module.js +0 -0
  659. package/{esm2015 → package/esm2015}/marketing/marketing.routes.js +0 -0
  660. package/{esm2015 → package/esm2015}/marketing/providers/routing/promotion-resolver.js +0 -0
  661. package/{esm2015 → package/esm2015}/marketing/public_api.js +0 -0
  662. package/{esm2015 → package/esm2015}/marketing/vendure-admin-ui-marketing.js +0 -0
  663. package/{esm2015 → package/esm2015}/order/components/add-manual-payment-dialog/add-manual-payment-dialog.component.js +0 -0
  664. package/{esm2015 → package/esm2015}/order/components/cancel-order-dialog/cancel-order-dialog.component.js +0 -0
  665. package/package/esm2015/order/components/coupon-code-selector/coupon-code-selector.component.js +42 -0
  666. package/package/esm2015/order/components/draft-order-detail/draft-order-detail.component.js +195 -0
  667. package/package/esm2015/order/components/draft-order-variant-selector/draft-order-variant-selector.component.js +59 -0
  668. package/{esm2015 → package/esm2015}/order/components/fulfill-order-dialog/fulfill-order-dialog.component.js +0 -0
  669. package/{esm2015 → package/esm2015}/order/components/fulfillment-card/fulfillment-card.component.js +0 -0
  670. package/{esm2015 → package/esm2015}/order/components/fulfillment-detail/fulfillment-detail.component.js +0 -0
  671. package/{esm2015 → package/esm2015}/order/components/fulfillment-state-label/fulfillment-state-label.component.js +0 -0
  672. package/{esm2015 → package/esm2015}/order/components/line-fulfillment/line-fulfillment.component.js +0 -0
  673. package/{esm2015 → package/esm2015}/order/components/line-refunds/line-refunds.component.js +0 -0
  674. package/{esm2015 → package/esm2015}/order/components/modification-detail/modification-detail.component.js +0 -0
  675. package/{esm2015 → package/esm2015}/order/components/order-custom-fields-card/order-custom-fields-card.component.js +0 -0
  676. package/package/esm2015/order/components/order-detail/order-detail.component.js +550 -0
  677. package/package/esm2015/order/components/order-editor/order-editor.component.js +375 -0
  678. package/{esm2015 → package/esm2015}/order/components/order-edits-preview-dialog/order-edits-preview-dialog.component.js +0 -0
  679. package/{esm2015 → package/esm2015}/order/components/order-history/order-history.component.js +0 -0
  680. package/package/esm2015/order/components/order-list/order-list.component.js +211 -0
  681. package/{esm2015 → package/esm2015}/order/components/order-payment-card/order-payment-card.component.js +0 -0
  682. package/{esm2015 → package/esm2015}/order/components/order-process-graph/constants.js +0 -0
  683. package/{esm2015 → package/esm2015}/order/components/order-process-graph/order-process-edge.component.js +0 -0
  684. package/{esm2015 → package/esm2015}/order/components/order-process-graph/order-process-graph.component.js +0 -0
  685. package/{esm2015 → package/esm2015}/order/components/order-process-graph/order-process-node.component.js +0 -0
  686. package/{esm2015 → package/esm2015}/order/components/order-process-graph/types.js +0 -0
  687. package/{esm2015 → package/esm2015}/order/components/order-process-graph-dialog/order-process-graph-dialog.component.js +0 -0
  688. package/{esm2015 → package/esm2015}/order/components/order-state-select-dialog/order-state-select-dialog.component.js +0 -0
  689. package/package/esm2015/order/components/order-table/order-table.component.js +87 -0
  690. package/{esm2015 → package/esm2015}/order/components/payment-detail/payment-detail.component.js +0 -0
  691. package/{esm2015 → package/esm2015}/order/components/payment-state-label/payment-state-label.component.js +0 -0
  692. package/{esm2015 → package/esm2015}/order/components/refund-order-dialog/refund-order-dialog.component.js +0 -0
  693. package/{esm2015 → package/esm2015}/order/components/refund-state-label/refund-state-label.component.js +0 -0
  694. package/package/esm2015/order/components/select-address-dialog/select-address-dialog.component.js +91 -0
  695. package/package/esm2015/order/components/select-address-dialog/select-address-dialog.graphql.js +14 -0
  696. package/package/esm2015/order/components/select-customer-dialog/select-customer-dialog.component.js +59 -0
  697. package/package/esm2015/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.js +30 -0
  698. package/{esm2015 → package/esm2015}/order/components/settle-refund-dialog/settle-refund-dialog.component.js +0 -0
  699. package/{esm2015 → package/esm2015}/order/components/simple-item-list/simple-item-list.component.js +0 -0
  700. package/package/esm2015/order/order.module.js +82 -0
  701. package/package/esm2015/order/order.routes.js +73 -0
  702. package/{esm2015 → package/esm2015}/order/providers/order-transition.service.js +0 -0
  703. package/package/esm2015/order/providers/routing/order-resolver.js +50 -0
  704. package/package/esm2015/order/providers/routing/order.guard.js +41 -0
  705. package/package/esm2015/order/public_api.js +44 -0
  706. package/{esm2015 → package/esm2015}/order/vendure-admin-ui-order.js +0 -0
  707. package/{esm2015 → package/esm2015}/public_api.js +0 -0
  708. package/{esm2015 → package/esm2015}/settings/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.js +0 -0
  709. package/{esm2015 → package/esm2015}/settings/components/admin-detail/admin-detail.component.js +0 -0
  710. package/{esm2015 → package/esm2015}/settings/components/administrator-list/administrator-list.component.js +0 -0
  711. package/{esm2015 → package/esm2015}/settings/components/channel-detail/channel-detail.component.js +0 -0
  712. package/{esm2015 → package/esm2015}/settings/components/channel-list/channel-list.component.js +0 -0
  713. package/{esm2015 → package/esm2015}/settings/components/country-detail/country-detail.component.js +0 -0
  714. package/package/esm2015/settings/components/country-list/country-list.component.js +82 -0
  715. package/{esm2015 → package/esm2015}/settings/components/global-settings/global-settings.component.js +0 -0
  716. package/{esm2015 → package/esm2015}/settings/components/payment-method-detail/payment-method-detail.component.js +0 -0
  717. package/{esm2015 → package/esm2015}/settings/components/payment-method-list/payment-method-list.component.js +0 -0
  718. package/{esm2015 → package/esm2015}/settings/components/permission-grid/permission-grid.component.js +0 -0
  719. package/package/esm2015/settings/components/profile/profile.component.js +82 -0
  720. package/{esm2015 → package/esm2015}/settings/components/role-detail/role-detail.component.js +0 -0
  721. package/{esm2015 → package/esm2015}/settings/components/role-list/role-list.component.js +0 -0
  722. package/{esm2015 → package/esm2015}/settings/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.js +0 -0
  723. package/package/esm2015/settings/components/shipping-method-detail/shipping-method-detail.component.js +237 -0
  724. package/{esm2015 → package/esm2015}/settings/components/shipping-method-list/shipping-method-list.component.js +0 -0
  725. package/{esm2015 → package/esm2015}/settings/components/shipping-method-test-result/shipping-method-test-result.component.js +0 -0
  726. package/{esm2015 → package/esm2015}/settings/components/tax-category-detail/tax-category-detail.component.js +0 -0
  727. package/{esm2015 → package/esm2015}/settings/components/tax-category-list/tax-category-list.component.js +0 -0
  728. package/{esm2015 → package/esm2015}/settings/components/tax-rate-detail/tax-rate-detail.component.js +0 -0
  729. package/{esm2015 → package/esm2015}/settings/components/tax-rate-list/tax-rate-list.component.js +0 -0
  730. package/{esm2015 → package/esm2015}/settings/components/test-address-form/test-address-form.component.js +0 -0
  731. package/{esm2015 → package/esm2015}/settings/components/test-order-builder/test-order-builder.component.js +0 -0
  732. package/{esm2015 → package/esm2015}/settings/components/zone-detail-dialog/zone-detail-dialog.component.js +0 -0
  733. package/package/esm2015/settings/components/zone-list/zone-list.component.js +160 -0
  734. package/{esm2015 → package/esm2015}/settings/components/zone-member-list/zone-member-controls.directive.js +0 -0
  735. package/{esm2015 → package/esm2015}/settings/components/zone-member-list/zone-member-list-header.directive.js +0 -0
  736. package/package/esm2015/settings/components/zone-member-list/zone-member-list.component.js +63 -0
  737. package/{esm2015 → package/esm2015}/settings/providers/routing/administrator-resolver.js +0 -0
  738. package/{esm2015 → package/esm2015}/settings/providers/routing/channel-resolver.js +0 -0
  739. package/{esm2015 → package/esm2015}/settings/providers/routing/country-resolver.js +0 -0
  740. package/{esm2015 → package/esm2015}/settings/providers/routing/global-settings-resolver.js +0 -0
  741. package/{esm2015 → package/esm2015}/settings/providers/routing/payment-method-resolver.js +0 -0
  742. package/{esm2015 → package/esm2015}/settings/providers/routing/profile-resolver.js +0 -0
  743. package/{esm2015 → package/esm2015}/settings/providers/routing/role-resolver.js +0 -0
  744. package/{esm2015 → package/esm2015}/settings/providers/routing/shipping-method-resolver.js +0 -0
  745. package/{esm2015 → package/esm2015}/settings/providers/routing/tax-category-resolver.js +0 -0
  746. package/{esm2015 → package/esm2015}/settings/providers/routing/tax-rate-resolver.js +0 -0
  747. package/{esm2015 → package/esm2015}/settings/public_api.js +0 -0
  748. package/{esm2015 → package/esm2015}/settings/settings.module.js +0 -0
  749. package/{esm2015 → package/esm2015}/settings/settings.routes.js +0 -0
  750. package/{esm2015 → package/esm2015}/settings/vendure-admin-ui-settings.js +0 -0
  751. package/package/esm2015/system/components/health-check/health-check.component.js +19 -0
  752. package/{esm2015 → package/esm2015}/system/components/job-list/job-list.component.js +0 -0
  753. package/{esm2015 → package/esm2015}/system/components/job-state-label/job-state-label.component.js +0 -0
  754. package/{esm2015 → package/esm2015}/system/public_api.js +0 -0
  755. package/{esm2015 → package/esm2015}/system/system.module.js +0 -0
  756. package/{esm2015 → package/esm2015}/system/system.routes.js +0 -0
  757. package/{esm2015 → package/esm2015}/system/vendure-admin-ui-system.js +0 -0
  758. package/{esm2015 → package/esm2015}/vendure-admin-ui.js +0 -0
  759. package/package/fesm2015/vendure-admin-ui-catalog.js +4768 -0
  760. package/package/fesm2015/vendure-admin-ui-catalog.js.map +1 -0
  761. package/package/fesm2015/vendure-admin-ui-core.js +17900 -0
  762. package/package/fesm2015/vendure-admin-ui-core.js.map +1 -0
  763. package/package/fesm2015/vendure-admin-ui-customer.js +1184 -0
  764. package/package/fesm2015/vendure-admin-ui-customer.js.map +1 -0
  765. package/package/fesm2015/vendure-admin-ui-dashboard.js +375 -0
  766. package/package/fesm2015/vendure-admin-ui-dashboard.js.map +1 -0
  767. package/{fesm2015 → package/fesm2015}/vendure-admin-ui-login.js +0 -0
  768. package/{fesm2015 → package/fesm2015}/vendure-admin-ui-login.js.map +0 -0
  769. package/package/fesm2015/vendure-admin-ui-marketing.js +403 -0
  770. package/package/fesm2015/vendure-admin-ui-marketing.js.map +1 -0
  771. package/package/fesm2015/vendure-admin-ui-order.js +3155 -0
  772. package/package/fesm2015/vendure-admin-ui-order.js.map +1 -0
  773. package/package/fesm2015/vendure-admin-ui-settings.js +2977 -0
  774. package/package/fesm2015/vendure-admin-ui-settings.js.map +1 -0
  775. package/package/fesm2015/vendure-admin-ui-system.js +171 -0
  776. package/{fesm2015 → package/fesm2015}/vendure-admin-ui-system.js.map +0 -0
  777. package/{fesm2015 → package/fesm2015}/vendure-admin-ui.js +0 -0
  778. package/{fesm2015 → package/fesm2015}/vendure-admin-ui.js.map +0 -0
  779. package/{login → package/login}/components/login/login.component.d.ts +0 -0
  780. package/{login → package/login}/login.module.d.ts +0 -0
  781. package/{login → package/login}/login.routes.d.ts +0 -0
  782. package/{login → package/login}/package.json +0 -0
  783. package/{login → package/login}/providers/login.guard.d.ts +0 -0
  784. package/{login → package/login}/public_api.d.ts +0 -0
  785. package/{login → package/login}/vendure-admin-ui-login.d.ts +0 -0
  786. package/{login → package/login}/vendure-admin-ui-login.metadata.json +0 -0
  787. package/{marketing → package/marketing}/components/promotion-detail/promotion-detail.component.d.ts +0 -0
  788. package/{marketing → package/marketing}/components/promotion-list/promotion-list.component.d.ts +0 -0
  789. package/{marketing → package/marketing}/marketing.module.d.ts +0 -0
  790. package/{marketing → package/marketing}/marketing.routes.d.ts +0 -0
  791. package/{marketing → package/marketing}/package.json +0 -0
  792. package/{marketing → package/marketing}/providers/routing/promotion-resolver.d.ts +0 -0
  793. package/{marketing → package/marketing}/public_api.d.ts +0 -0
  794. package/{marketing → package/marketing}/vendure-admin-ui-marketing.d.ts +0 -0
  795. package/package/marketing/vendure-admin-ui-marketing.metadata.json +1 -0
  796. package/{order → package/order}/components/add-manual-payment-dialog/add-manual-payment-dialog.component.d.ts +0 -0
  797. package/{order → package/order}/components/cancel-order-dialog/cancel-order-dialog.component.d.ts +0 -0
  798. package/package/order/components/coupon-code-selector/coupon-code-selector.component.d.ts +18 -0
  799. package/package/order/components/draft-order-detail/draft-order-detail.component.d.ts +49 -0
  800. package/package/order/components/draft-order-variant-selector/draft-order-variant-selector.component.d.ts +21 -0
  801. package/{order → package/order}/components/fulfill-order-dialog/fulfill-order-dialog.component.d.ts +0 -0
  802. package/{order → package/order}/components/fulfillment-card/fulfillment-card.component.d.ts +0 -0
  803. package/{order → package/order}/components/fulfillment-detail/fulfillment-detail.component.d.ts +0 -0
  804. package/{order → package/order}/components/fulfillment-state-label/fulfillment-state-label.component.d.ts +0 -0
  805. package/{order → package/order}/components/line-fulfillment/line-fulfillment.component.d.ts +0 -0
  806. package/{order → package/order}/components/line-refunds/line-refunds.component.d.ts +0 -0
  807. package/{order → package/order}/components/modification-detail/modification-detail.component.d.ts +0 -0
  808. package/{order → package/order}/components/order-custom-fields-card/order-custom-fields-card.component.d.ts +0 -0
  809. package/{order → package/order}/components/order-detail/order-detail.component.d.ts +0 -0
  810. package/package/order/components/order-editor/order-editor.component.d.ts +71 -0
  811. package/{order → package/order}/components/order-edits-preview-dialog/order-edits-preview-dialog.component.d.ts +0 -0
  812. package/{order → package/order}/components/order-history/order-history.component.d.ts +0 -0
  813. package/package/order/components/order-list/order-list.component.d.ts +35 -0
  814. package/{order → package/order}/components/order-payment-card/order-payment-card.component.d.ts +0 -0
  815. package/{order → package/order}/components/order-process-graph/constants.d.ts +0 -0
  816. package/{order → package/order}/components/order-process-graph/order-process-edge.component.d.ts +0 -0
  817. package/{order → package/order}/components/order-process-graph/order-process-graph.component.d.ts +0 -0
  818. package/{order → package/order}/components/order-process-graph/order-process-node.component.d.ts +0 -0
  819. package/{order → package/order}/components/order-process-graph/types.d.ts +0 -0
  820. package/{order → package/order}/components/order-process-graph-dialog/order-process-graph-dialog.component.d.ts +0 -0
  821. package/{order → package/order}/components/order-state-select-dialog/order-state-select-dialog.component.d.ts +0 -0
  822. package/package/order/components/order-table/order-table.component.d.ts +37 -0
  823. package/{order → package/order}/components/payment-detail/payment-detail.component.d.ts +0 -0
  824. package/{order → package/order}/components/payment-state-label/payment-state-label.component.d.ts +0 -0
  825. package/{order → package/order}/components/refund-order-dialog/refund-order-dialog.component.d.ts +0 -0
  826. package/{order → package/order}/components/refund-state-label/refund-state-label.component.d.ts +0 -0
  827. package/package/order/components/select-address-dialog/select-address-dialog.component.d.ts +24 -0
  828. package/package/order/components/select-address-dialog/select-address-dialog.graphql.d.ts +1 -0
  829. package/package/order/components/select-customer-dialog/select-customer-dialog.component.d.ts +22 -0
  830. package/package/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.d.ts +16 -0
  831. package/{order → package/order}/components/settle-refund-dialog/settle-refund-dialog.component.d.ts +0 -0
  832. package/{order → package/order}/components/simple-item-list/simple-item-list.component.d.ts +0 -0
  833. package/{order → package/order}/order.module.d.ts +0 -0
  834. package/{order → package/order}/order.routes.d.ts +0 -0
  835. package/{order → package/order}/package.json +0 -0
  836. package/{order → package/order}/providers/order-transition.service.d.ts +0 -0
  837. package/package/order/providers/routing/order-resolver.d.ts +13 -0
  838. package/package/order/providers/routing/order.guard.d.ts +9 -0
  839. package/package/order/public_api.d.ts +42 -0
  840. package/{order → package/order}/vendure-admin-ui-order.d.ts +0 -0
  841. package/package/order/vendure-admin-ui-order.metadata.json +1 -0
  842. package/package/package.json +59 -0
  843. package/{public_api.d.ts → package/public_api.d.ts} +0 -0
  844. package/{settings → package/settings}/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.d.ts +0 -0
  845. package/{settings → package/settings}/components/admin-detail/admin-detail.component.d.ts +0 -0
  846. package/{settings → package/settings}/components/administrator-list/administrator-list.component.d.ts +0 -0
  847. package/{settings → package/settings}/components/channel-detail/channel-detail.component.d.ts +0 -0
  848. package/{settings → package/settings}/components/channel-list/channel-list.component.d.ts +0 -0
  849. package/{settings → package/settings}/components/country-detail/country-detail.component.d.ts +0 -0
  850. package/{settings → package/settings}/components/country-list/country-list.component.d.ts +0 -0
  851. package/{settings → package/settings}/components/global-settings/global-settings.component.d.ts +0 -0
  852. package/{settings → package/settings}/components/payment-method-detail/payment-method-detail.component.d.ts +0 -0
  853. package/{settings → package/settings}/components/payment-method-list/payment-method-list.component.d.ts +0 -0
  854. package/{settings → package/settings}/components/permission-grid/permission-grid.component.d.ts +0 -0
  855. package/{settings → package/settings}/components/profile/profile.component.d.ts +0 -0
  856. package/{settings → package/settings}/components/role-detail/role-detail.component.d.ts +0 -0
  857. package/{settings → package/settings}/components/role-list/role-list.component.d.ts +0 -0
  858. package/{settings → package/settings}/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.d.ts +0 -0
  859. package/{settings → package/settings}/components/shipping-method-detail/shipping-method-detail.component.d.ts +0 -0
  860. package/{settings → package/settings}/components/shipping-method-list/shipping-method-list.component.d.ts +0 -0
  861. package/{settings → package/settings}/components/shipping-method-test-result/shipping-method-test-result.component.d.ts +0 -0
  862. package/{settings → package/settings}/components/tax-category-detail/tax-category-detail.component.d.ts +0 -0
  863. package/{settings → package/settings}/components/tax-category-list/tax-category-list.component.d.ts +0 -0
  864. package/{settings → package/settings}/components/tax-rate-detail/tax-rate-detail.component.d.ts +0 -0
  865. package/{settings → package/settings}/components/tax-rate-list/tax-rate-list.component.d.ts +0 -0
  866. package/{settings → package/settings}/components/test-address-form/test-address-form.component.d.ts +0 -0
  867. package/{settings → package/settings}/components/test-order-builder/test-order-builder.component.d.ts +0 -0
  868. package/{settings → package/settings}/components/zone-detail-dialog/zone-detail-dialog.component.d.ts +0 -0
  869. package/{settings → package/settings}/components/zone-list/zone-list.component.d.ts +0 -0
  870. package/{settings → package/settings}/components/zone-member-list/zone-member-controls.directive.d.ts +0 -0
  871. package/{settings → package/settings}/components/zone-member-list/zone-member-list-header.directive.d.ts +0 -0
  872. package/package/settings/components/zone-member-list/zone-member-list.component.d.ts +23 -0
  873. package/{settings → package/settings}/package.json +0 -0
  874. package/{settings → package/settings}/providers/routing/administrator-resolver.d.ts +0 -0
  875. package/{settings → package/settings}/providers/routing/channel-resolver.d.ts +0 -0
  876. package/{settings → package/settings}/providers/routing/country-resolver.d.ts +0 -0
  877. package/{settings → package/settings}/providers/routing/global-settings-resolver.d.ts +0 -0
  878. package/{settings → package/settings}/providers/routing/payment-method-resolver.d.ts +0 -0
  879. package/{settings → package/settings}/providers/routing/profile-resolver.d.ts +0 -0
  880. package/{settings → package/settings}/providers/routing/role-resolver.d.ts +0 -0
  881. package/{settings → package/settings}/providers/routing/shipping-method-resolver.d.ts +0 -0
  882. package/{settings → package/settings}/providers/routing/tax-category-resolver.d.ts +0 -0
  883. package/{settings → package/settings}/providers/routing/tax-rate-resolver.d.ts +0 -0
  884. package/{settings → package/settings}/public_api.d.ts +0 -0
  885. package/{settings → package/settings}/settings.module.d.ts +0 -0
  886. package/{settings → package/settings}/settings.routes.d.ts +0 -0
  887. package/{settings → package/settings}/vendure-admin-ui-settings.d.ts +0 -0
  888. package/package/settings/vendure-admin-ui-settings.metadata.json +1 -0
  889. package/{static → package/static}/assets/.gitkeep +0 -0
  890. package/{static → package/static}/assets/logo-300px.png +0 -0
  891. package/{static → package/static}/assets/logo-75px.png +0 -0
  892. package/{static → package/static}/favicon.ico +0 -0
  893. package/package/static/i18n-messages/cs.json +721 -0
  894. package/package/static/i18n-messages/de.json +721 -0
  895. package/package/static/i18n-messages/en.json +721 -0
  896. package/package/static/i18n-messages/es.json +721 -0
  897. package/package/static/i18n-messages/fr.json +721 -0
  898. package/package/static/i18n-messages/it.json +721 -0
  899. package/package/static/i18n-messages/pl.json +721 -0
  900. package/package/static/i18n-messages/pt_BR.json +721 -0
  901. package/package/static/i18n-messages/pt_PT.json +721 -0
  902. package/package/static/i18n-messages/ru.json +721 -0
  903. package/package/static/i18n-messages/uk.json +721 -0
  904. package/package/static/i18n-messages/zh_Hans.json +721 -0
  905. package/package/static/i18n-messages/zh_Hant.json +721 -0
  906. package/{static → package/static}/index.html +0 -0
  907. package/{static → package/static}/polyfills.ts +0 -0
  908. package/{static → package/static}/styles/_mixins.scss +0 -0
  909. package/{static → package/static}/styles/_variables.scss +0 -0
  910. package/package/static/styles/global/_forms.scss +148 -0
  911. package/package/static/styles/global/_overrides.scss +72 -0
  912. package/{static → package/static}/styles/global/_sass-overrides.scss +0 -0
  913. package/package/static/styles/global/_utilities.scss +131 -0
  914. package/{static → package/static}/styles/styles.scss +0 -0
  915. package/{static → package/static}/styles/theme/dark.scss +0 -0
  916. package/{static → package/static}/styles/theme/default.scss +0 -0
  917. package/{static → package/static}/styles/ui-extension-theme.scss +0 -0
  918. package/package/static/theme.min.css +8 -0
  919. package/{static → package/static}/vendure-ui-config.json +0 -0
  920. package/{system → package/system}/components/health-check/health-check.component.d.ts +0 -0
  921. package/{system → package/system}/components/job-list/job-list.component.d.ts +0 -0
  922. package/{system → package/system}/components/job-state-label/job-state-label.component.d.ts +0 -0
  923. package/{system → package/system}/package.json +0 -0
  924. package/{system → package/system}/public_api.d.ts +0 -0
  925. package/{system → package/system}/system.module.d.ts +0 -0
  926. package/{system → package/system}/system.routes.d.ts +0 -0
  927. package/{system → package/system}/vendure-admin-ui-system.d.ts +0 -0
  928. package/package/system/vendure-admin-ui-system.metadata.json +1 -0
  929. package/{vendure-admin-ui.d.ts → package/vendure-admin-ui.d.ts} +0 -0
  930. package/{vendure-admin-ui.metadata.json → package/vendure-admin-ui.metadata.json} +0 -0
  931. package/package.json +59 -21
  932. package/tsconfig.json +61 -0
  933. package/tsconfig.lib.json +26 -0
  934. package/tsconfig.lib.prod.json +14 -0
  935. package/tslint.json +33 -0
  936. package/LICENSE +0 -9
  937. package/bundles/vendure-admin-ui-catalog.umd.js +0 -4851
  938. package/bundles/vendure-admin-ui-catalog.umd.js.map +0 -1
  939. package/bundles/vendure-admin-ui-core.umd.js +0 -15291
  940. package/bundles/vendure-admin-ui-core.umd.js.map +0 -1
  941. package/bundles/vendure-admin-ui-customer.umd.js +0 -1679
  942. package/bundles/vendure-admin-ui-customer.umd.js.map +0 -1
  943. package/bundles/vendure-admin-ui-dashboard.umd.js +0 -757
  944. package/bundles/vendure-admin-ui-dashboard.umd.js.map +0 -1
  945. package/bundles/vendure-admin-ui-marketing.umd.js +0 -783
  946. package/bundles/vendure-admin-ui-marketing.umd.js.map +0 -1
  947. package/bundles/vendure-admin-ui-order.umd.js +0 -3422
  948. package/bundles/vendure-admin-ui-order.umd.js.map +0 -1
  949. package/bundles/vendure-admin-ui-settings.umd.js +0 -3699
  950. package/bundles/vendure-admin-ui-settings.umd.js.map +0 -1
  951. package/bundles/vendure-admin-ui-system.umd.js +0 -524
  952. package/catalog/catalog.module.d.ts +0 -2
  953. package/catalog/components/collection-list/collection-list.component.d.ts +0 -33
  954. package/catalog/components/collection-tree/collection-tree-node.component.d.ts +0 -36
  955. package/catalog/components/collection-tree/collection-tree.component.d.ts +0 -35
  956. package/catalog/components/facet-list/facet-list.component.d.ts +0 -24
  957. package/catalog/components/product-list/product-list.component.d.ts +0 -29
  958. package/catalog/components/product-variants-editor/product-variants-editor.component.d.ts +0 -79
  959. package/catalog/public_api.d.ts +0 -33
  960. package/catalog/vendure-admin-ui-catalog.metadata.json +0 -1
  961. package/core/common/component-registry-types.d.ts +0 -56
  962. package/core/common/generated-types.d.ts +0 -9142
  963. package/core/common/utilities/selection-manager.d.ts +0 -23
  964. package/core/common/version.d.ts +0 -1
  965. package/core/data/definitions/collection-definitions.d.ts +0 -10
  966. package/core/data/definitions/facet-definitions.d.ts +0 -10
  967. package/core/data/definitions/order-definitions.d.ts +0 -27
  968. package/core/data/definitions/product-definitions.d.ts +0 -45
  969. package/core/data/providers/collection-data.service.d.ts +0 -25
  970. package/core/data/providers/facet-data.service.d.ts +0 -21
  971. package/core/data/providers/order-data.service.d.ts +0 -35
  972. package/core/data/providers/product-data.service.d.ts +0 -81
  973. package/core/providers/modal/modal.service.d.ts +0 -132
  974. package/core/providers/nav-builder/nav-builder-types.d.ts +0 -91
  975. package/core/public_api.d.ts +0 -222
  976. package/core/shared/components/asset-gallery/asset-gallery.component.d.ts +0 -67
  977. package/core/shared/components/data-table/data-table.component.d.ts +0 -82
  978. package/core/shared/components/dropdown/dropdown-menu.component.d.ts +0 -30
  979. package/core/shared/components/rich-text-editor/prosemirror/inputrules.d.ts +0 -8
  980. package/core/shared/components/rich-text-editor/prosemirror/menu/images.d.ts +0 -4
  981. package/core/shared/components/rich-text-editor/prosemirror/menu/links.d.ts +0 -4
  982. package/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.d.ts +0 -4
  983. package/core/shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin.d.ts +0 -5
  984. package/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.d.ts +0 -21
  985. package/core/shared/components/rich-text-editor/prosemirror/types.d.ts +0 -11
  986. package/core/shared/components/rich-text-editor/rich-text-editor.component.d.ts +0 -35
  987. package/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.d.ts +0 -32
  988. package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +0 -89
  989. package/core/vendure-admin-ui-core.metadata.json +0 -1
  990. package/customer/components/customer-group-member-list/customer-group-member-list.component.d.ts +0 -37
  991. package/customer/vendure-admin-ui-customer.metadata.json +0 -1
  992. package/esm2015/catalog/catalog.module.js +0 -62
  993. package/esm2015/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.js +0 -109
  994. package/esm2015/catalog/components/collection-detail/collection-detail.component.js +0 -244
  995. package/esm2015/catalog/components/collection-list/collection-list.component.js +0 -145
  996. package/esm2015/catalog/components/collection-tree/collection-tree-node.component.js +0 -117
  997. package/esm2015/catalog/components/collection-tree/collection-tree.component.js +0 -76
  998. package/esm2015/catalog/components/facet-list/facet-list.component.js +0 -107
  999. package/esm2015/catalog/components/product-detail/product-detail.component.js +0 -515
  1000. package/esm2015/catalog/components/product-list/product-list.component.js +0 -153
  1001. package/esm2015/catalog/components/product-variants-editor/product-variants-editor.component.js +0 -419
  1002. package/esm2015/catalog/components/product-variants-list/product-variants-list.component.js +0 -214
  1003. package/esm2015/catalog/providers/routing/collection-resolver.js +0 -38
  1004. package/esm2015/catalog/public_api.js +0 -35
  1005. package/esm2015/core/common/component-registry-types.js +0 -2
  1006. package/esm2015/core/common/generated-types.js +0 -983
  1007. package/esm2015/core/common/introspection-result.js +0 -195
  1008. package/esm2015/core/common/utilities/configurable-operation-utils.js +0 -105
  1009. package/esm2015/core/common/utilities/selection-manager.js +0 -64
  1010. package/esm2015/core/common/version.js +0 -3
  1011. package/esm2015/core/components/breadcrumb/breadcrumb.component.js +0 -126
  1012. package/esm2015/core/data/definitions/collection-definitions.js +0 -144
  1013. package/esm2015/core/data/definitions/facet-definitions.js +0 -110
  1014. package/esm2015/core/data/definitions/order-definitions.js +0 -472
  1015. package/esm2015/core/data/definitions/product-definitions.js +0 -745
  1016. package/esm2015/core/data/providers/collection-data.service.js +0 -75
  1017. package/esm2015/core/data/providers/customer-data.service.js +0 -117
  1018. package/esm2015/core/data/providers/facet-data.service.js +0 -60
  1019. package/esm2015/core/data/providers/order-data.service.js +0 -103
  1020. package/esm2015/core/data/providers/product-data.service.js +0 -235
  1021. package/esm2015/core/data/utils/remove-readonly-custom-fields.js +0 -91
  1022. package/esm2015/core/providers/dashboard-widget/dashboard-widget.service.js +0 -97
  1023. package/esm2015/core/providers/modal/modal.service.js +0 -100
  1024. package/esm2015/core/providers/nav-builder/nav-builder-types.js +0 -2
  1025. package/esm2015/core/public_api.js +0 -224
  1026. package/esm2015/core/shared/components/action-bar/action-bar.component.js +0 -47
  1027. package/esm2015/core/shared/components/asset-gallery/asset-gallery.component.js +0 -84
  1028. package/esm2015/core/shared/components/data-table/data-table.component.js +0 -113
  1029. package/esm2015/core/shared/components/dropdown/dropdown-menu.component.js +0 -121
  1030. package/esm2015/core/shared/components/facet-value-selector/facet-value-selector.component.js +0 -117
  1031. package/esm2015/core/shared/components/language-selector/language-selector.component.js +0 -21
  1032. package/esm2015/core/shared/components/order-state-label/order-state-label.component.js +0 -43
  1033. package/esm2015/core/shared/components/product-search-input/product-search-input.component.js +0 -104
  1034. package/esm2015/core/shared/components/product-selector/product-selector.component.js +0 -61
  1035. package/esm2015/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.js +0 -32
  1036. package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/images.js +0 -36
  1037. package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/links.js +0 -69
  1038. package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.js +0 -20
  1039. package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/menu.js +0 -192
  1040. package/esm2015/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.js +0 -112
  1041. package/esm2015/core/shared/components/rich-text-editor/prosemirror/types.js +0 -2
  1042. package/esm2015/core/shared/components/rich-text-editor/rich-text-editor.component.js +0 -86
  1043. package/esm2015/core/shared/components/simple-dialog/simple-dialog.component.js +0 -21
  1044. package/esm2015/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.js +0 -125
  1045. package/esm2015/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.js +0 -266
  1046. package/esm2015/core/shared/dynamic-form-inputs/register-dynamic-input-components.js +0 -134
  1047. package/esm2015/core/shared/pipes/state-i18n-token.pipe.js +0 -46
  1048. package/esm2015/core/shared/shared.module.js +0 -275
  1049. package/esm2015/customer/components/customer-group-list/customer-group-list.component.js +0 -198
  1050. package/esm2015/customer/components/customer-group-member-list/customer-group-member-list.component.js +0 -101
  1051. package/esm2015/customer/components/customer-list/customer-list.component.js +0 -81
  1052. package/esm2015/dashboard/dashboard.module.js +0 -25
  1053. package/esm2015/marketing/components/promotion-detail/promotion-detail.component.js +0 -247
  1054. package/esm2015/order/components/order-detail/order-detail.component.js +0 -550
  1055. package/esm2015/order/components/order-editor/order-editor.component.js +0 -381
  1056. package/esm2015/order/components/order-list/order-list.component.js +0 -195
  1057. package/esm2015/order/components/order-table/order-table.component.js +0 -76
  1058. package/esm2015/order/order.module.js +0 -70
  1059. package/esm2015/order/order.routes.js +0 -54
  1060. package/esm2015/order/providers/routing/order-resolver.js +0 -33
  1061. package/esm2015/order/public_api.js +0 -36
  1062. package/esm2015/settings/components/country-list/country-list.component.js +0 -82
  1063. package/esm2015/settings/components/profile/profile.component.js +0 -82
  1064. package/esm2015/settings/components/shipping-method-detail/shipping-method-detail.component.js +0 -237
  1065. package/esm2015/settings/components/zone-list/zone-list.component.js +0 -160
  1066. package/esm2015/settings/components/zone-member-list/zone-member-list.component.js +0 -63
  1067. package/esm2015/system/components/health-check/health-check.component.js +0 -19
  1068. package/fesm2015/vendure-admin-ui-catalog.js +0 -3984
  1069. package/fesm2015/vendure-admin-ui-catalog.js.map +0 -1
  1070. package/fesm2015/vendure-admin-ui-core.js +0 -16292
  1071. package/fesm2015/vendure-admin-ui-core.js.map +0 -1
  1072. package/fesm2015/vendure-admin-ui-customer.js +0 -1184
  1073. package/fesm2015/vendure-admin-ui-customer.js.map +0 -1
  1074. package/fesm2015/vendure-admin-ui-dashboard.js +0 -371
  1075. package/fesm2015/vendure-admin-ui-dashboard.js.map +0 -1
  1076. package/fesm2015/vendure-admin-ui-marketing.js +0 -403
  1077. package/fesm2015/vendure-admin-ui-marketing.js.map +0 -1
  1078. package/fesm2015/vendure-admin-ui-order.js +0 -2607
  1079. package/fesm2015/vendure-admin-ui-order.js.map +0 -1
  1080. package/fesm2015/vendure-admin-ui-settings.js +0 -2977
  1081. package/fesm2015/vendure-admin-ui-settings.js.map +0 -1
  1082. package/fesm2015/vendure-admin-ui-system.js +0 -171
  1083. package/marketing/vendure-admin-ui-marketing.metadata.json +0 -1
  1084. package/order/components/order-editor/order-editor.component.d.ts +0 -76
  1085. package/order/components/order-list/order-list.component.d.ts +0 -34
  1086. package/order/components/order-table/order-table.component.d.ts +0 -28
  1087. package/order/providers/routing/order-resolver.d.ts +0 -10
  1088. package/order/public_api.d.ts +0 -34
  1089. package/order/vendure-admin-ui-order.metadata.json +0 -1
  1090. package/settings/components/zone-member-list/zone-member-list.component.d.ts +0 -21
  1091. package/settings/vendure-admin-ui-settings.metadata.json +0 -1
  1092. package/static/i18n-messages/cs.json +0 -688
  1093. package/static/i18n-messages/de.json +0 -688
  1094. package/static/i18n-messages/en.json +0 -689
  1095. package/static/i18n-messages/es.json +0 -688
  1096. package/static/i18n-messages/fr.json +0 -688
  1097. package/static/i18n-messages/it.json +0 -688
  1098. package/static/i18n-messages/pl.json +0 -688
  1099. package/static/i18n-messages/pt_BR.json +0 -688
  1100. package/static/i18n-messages/pt_PT.json +0 -688
  1101. package/static/i18n-messages/ru.json +0 -688
  1102. package/static/i18n-messages/uk.json +0 -688
  1103. package/static/i18n-messages/zh_Hans.json +0 -688
  1104. package/static/i18n-messages/zh_Hant.json +0 -688
  1105. package/static/styles/global/_forms.scss +0 -146
  1106. package/static/styles/global/_overrides.scss +0 -72
  1107. package/static/styles/global/_utilities.scss +0 -127
  1108. package/static/theme.min.css +0 -8
  1109. package/system/vendure-admin-ui-system.metadata.json +0 -1
@@ -1,2607 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { Component, ChangeDetectionStrategy, ChangeDetectorRef, EventEmitter, Input, Output, Injectable, ElementRef, ViewChildren, HostBinding, NgModule } from '@angular/core';
3
- import { FormGroup, FormControl, Validators, FormBuilder, FormArray } from '@angular/forms';
4
- import * as i1 from '@vendure/admin-ui/core';
5
- import { DataService, getAppConfig, I18nService, configurableDefinitionToInstance, GlobalFlag, configurableOperationValueIsValid, toConfigurableOperationInput, ServerConfigService, ModalService, HistoryEntryType, SortOrder, NotificationService, BaseDetailComponent, EditNoteDialogComponent, transformRelationCustomFieldInputs, BaseListComponent, LogicalOperator, LocalStorageService, AdjustmentType, BaseEntityResolver, createResolveData, CanDeactivateDetailGuard, detailBreadcrumb, SharedModule } from '@vendure/admin-ui/core';
6
- import { marker } from '@biesbjerg/ngx-translate-extract-marker';
7
- import { isObject, summate, assertNever, notNullOrUndefined } from '@vendure/common/lib/shared-utils';
8
- import * as i1$1 from '@angular/router';
9
- import { Router, ActivatedRoute, RouterModule } from '@angular/router';
10
- import { EMPTY, Subject, of, concat, merge, BehaviorSubject } from 'rxjs';
11
- import { switchMap, catchError, retryWhen, delay, take, map, startWith, mapTo, takeUntil, distinctUntilChanged, shareReplay, filter, debounceTime, tap } from 'rxjs/operators';
12
- import { simpleDeepClone } from '@vendure/common/lib/simple-deep-clone';
13
-
14
- class AddManualPaymentDialogComponent {
15
- constructor(dataService) {
16
- this.dataService = dataService;
17
- this.form = new FormGroup({
18
- method: new FormControl('', Validators.required),
19
- transactionId: new FormControl('', Validators.required),
20
- });
21
- }
22
- ngOnInit() {
23
- this.paymentMethods$ = this.dataService.settings
24
- .getPaymentMethods(999)
25
- .mapSingle(data => data.paymentMethods.items);
26
- }
27
- submit() {
28
- const formValue = this.form.value;
29
- this.resolveWith({
30
- method: formValue.method,
31
- transactionId: formValue.transactionId,
32
- });
33
- }
34
- cancel() {
35
- this.resolveWith();
36
- }
37
- }
38
- AddManualPaymentDialogComponent.decorators = [
39
- { type: Component, args: [{
40
- selector: 'vdr-add-manual-payment-dialog',
41
- template: "<ng-template vdrDialogTitle>{{ 'order.add-payment-to-order' | translate }}</ng-template>\r\n<form [formGroup]=\"form\">\r\n <vdr-form-field [label]=\"'order.payment-method' | translate\" for=\"method\">\r\n <ng-select\r\n [items]=\"paymentMethods$ | async\"\r\n bindLabel=\"code\"\r\n autofocus\r\n bindValue=\"code\"\r\n [addTag]=\"true\"\r\n formControlName=\"method\"\r\n ></ng-select>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'order.transaction-id' | translate\" for=\"transactionId\">\r\n <input id=\"transactionId\" type=\"text\" formControlName=\"transactionId\" />\r\n </vdr-form-field>\r\n</form>\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"submit()\" class=\"btn btn-primary\" [disabled]=\"form.invalid || form.pristine\">\r\n {{ 'order.add-payment' | translate }} ({{ outstandingAmount | localeCurrency: currencyCode }})\r\n </button>\r\n</ng-template>\r\n",
42
- changeDetection: ChangeDetectionStrategy.OnPush,
43
- styles: [".ng-select{min-width:100%}\n"]
44
- },] }
45
- ];
46
- AddManualPaymentDialogComponent.ctorParameters = () => [
47
- { type: DataService }
48
- ];
49
-
50
- class CancelOrderDialogComponent {
51
- constructor(i18nService) {
52
- var _a;
53
- this.i18nService = i18nService;
54
- this.cancelAll = true;
55
- this.lineQuantities = {};
56
- this.reasons = (_a = getAppConfig().cancellationReasons) !== null && _a !== void 0 ? _a : [
57
- marker('order.cancel-reason-customer-request'),
58
- marker('order.cancel-reason-not-available'),
59
- ];
60
- this.reasons = this.reasons.map(r => this.i18nService.translate(r));
61
- }
62
- get selectionCount() {
63
- return Object.values(this.lineQuantities).reduce((sum, n) => sum + n, 0);
64
- }
65
- ngOnInit() {
66
- this.lineQuantities = this.order.lines.reduce((result, line) => {
67
- return Object.assign(Object.assign({}, result), { [line.id]: line.quantity });
68
- }, {});
69
- }
70
- radioChanged() {
71
- if (this.cancelAll) {
72
- for (const line of this.order.lines) {
73
- this.lineQuantities[line.id] = line.quantity;
74
- }
75
- }
76
- else {
77
- for (const line of this.order.lines) {
78
- this.lineQuantities[line.id] = 0;
79
- }
80
- }
81
- }
82
- checkIfAllSelected() {
83
- var _a;
84
- for (const [lineId, quantity] of Object.entries(this.lineQuantities)) {
85
- const quantityInOrder = (_a = this.order.lines.find(line => line.id === lineId)) === null || _a === void 0 ? void 0 : _a.quantity;
86
- if (quantityInOrder && quantity < quantityInOrder) {
87
- return;
88
- }
89
- }
90
- // If we got here, all of the selected quantities are equal to the order
91
- // line quantities, i.e. everything is selected.
92
- this.cancelAll = true;
93
- }
94
- select() {
95
- this.resolveWith({
96
- orderId: this.order.id,
97
- lines: this.getLineInputs(),
98
- reason: this.reason,
99
- cancelShipping: this.cancelAll,
100
- });
101
- }
102
- cancel() {
103
- this.resolveWith();
104
- }
105
- getLineInputs() {
106
- if (this.order.active) {
107
- return;
108
- }
109
- return Object.entries(this.lineQuantities)
110
- .map(([orderLineId, quantity]) => ({
111
- orderLineId,
112
- quantity,
113
- }))
114
- .filter(l => 0 < l.quantity);
115
- }
116
- }
117
- CancelOrderDialogComponent.decorators = [
118
- { type: Component, args: [{
119
- selector: 'vdr-cancel-order-dialog',
120
- template: "<ng-template vdrDialogTitle>{{ 'order.cancel-order' | translate }}</ng-template>\r\n\r\n<div class=\"fulfillment-wrapper\">\r\n <div class=\"order-lines\">\r\n <table class=\"table\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>{{ 'order.product-name' | translate }}</th>\r\n <th>{{ 'order.product-sku' | translate }}</th>\r\n <th>{{ 'order.quantity' | translate }}</th>\r\n <th>{{ 'order.unit-price' | translate }}</th>\r\n <th>{{ 'order.cancel' | translate }}</th>\r\n </tr>\r\n </thead>\r\n <tr\r\n *ngFor=\"let line of order.lines\"\r\n class=\"order-line\"\r\n [class.is-disabled]=\"cancelAll\"\r\n [class.is-cancelled]=\"line.quantity === 0\"\r\n >\r\n <td class=\"align-middle thumb\">\r\n <img [src]=\"line.featuredAsset | assetPreview: 'tiny'\" />\r\n </td>\r\n <td class=\"align-middle name\">{{ line.productVariant.name }}</td>\r\n <td class=\"align-middle sku\">{{ line.productVariant.sku }}</td>\r\n <td class=\"align-middle quantity\">{{ line.quantity }}</td>\r\n <td class=\"align-middle quantity\">\r\n {{ line.unitPriceWithTax | localeCurrency: order.currencyCode }}\r\n </td>\r\n <td class=\"align-middle fulfil\">\r\n <input\r\n *ngIf=\"line.quantity > 0 && !order.active; else nonEditable\"\r\n [(ngModel)]=\"lineQuantities[line.id]\"\r\n (input)=\"checkIfAllSelected()\"\r\n [disabled]=\"cancelAll\"\r\n type=\"number\"\r\n [max]=\"line.quantity\"\r\n min=\"0\"\r\n />\r\n <ng-template #nonEditable>{{ line.quantity }}</ng-template>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n <div class=\"cancellation-details\">\r\n <ng-container *ngIf=\"order.active !== true\">\r\n <clr-radio-wrapper>\r\n <input\r\n type=\"radio\"\r\n clrRadio\r\n [value]=\"true\"\r\n [(ngModel)]=\"cancelAll\"\r\n name=\"options\"\r\n (ngModelChange)=\"radioChanged()\"\r\n />\r\n <label>{{ 'order.cancel-entire-order' | translate }}</label>\r\n </clr-radio-wrapper>\r\n <clr-radio-wrapper>\r\n <input\r\n type=\"radio\"\r\n clrRadio\r\n [value]=\"false\"\r\n [(ngModel)]=\"cancelAll\"\r\n name=\"options\"\r\n (ngModelChange)=\"radioChanged()\"\r\n />\r\n <label>{{ 'order.cancel-specified-items' | translate }}</label>\r\n </clr-radio-wrapper>\r\n </ng-container>\r\n <label class=\"clr-control-label\">{{ 'order.cancellation-reason' | translate }}</label>\r\n <ng-select\r\n [items]=\"reasons\"\r\n bindLabel=\"name\"\r\n autofocus\r\n bindValue=\"id\"\r\n [addTag]=\"true\"\r\n [(ngModel)]=\"reason\"\r\n ></ng-select>\r\n </div>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"select()\"\r\n [disabled]=\"!reason || (!order.active && selectionCount === 0)\"\r\n class=\"btn btn-primary\"\r\n >\r\n <ng-container *ngIf=\"!order.active\">\r\n {{ 'order.cancel-selected-items' | translate }}\r\n </ng-container>\r\n <ng-container *ngIf=\"order.active\">\r\n {{ 'order.cancel-order' | translate }}\r\n </ng-container>\r\n </button>\r\n</ng-template>\r\n",
121
- changeDetection: ChangeDetectionStrategy.OnPush,
122
- styles: [":host{height:100%;display:flex;min-height:64vh}.fulfillment-wrapper{flex:1}@media screen and (min-width: 768px){.fulfillment-wrapper{display:flex;flex-direction:row}}@media screen and (min-width: 768px){.fulfillment-wrapper .cancellation-details{margin-top:0;margin-left:24px;width:250px}}.fulfillment-wrapper .order-lines{flex:1;overflow-y:auto}.fulfillment-wrapper .order-lines table{margin-top:0}.fulfillment-wrapper tr.ignore{color:var(--color-grey-300)}.fulfillment-wrapper .is-cancelled td{text-decoration:line-through;background-color:var(--color-component-bg-200)}.fulfillment-wrapper .is-disabled td,.fulfillment-wrapper .is-disabled td input{background-color:var(--color-component-bg-200)}\n"]
123
- },] }
124
- ];
125
- CancelOrderDialogComponent.ctorParameters = () => [
126
- { type: I18nService }
127
- ];
128
-
129
- class FulfillOrderDialogComponent {
130
- constructor(dataService, changeDetector) {
131
- this.dataService = dataService;
132
- this.changeDetector = changeDetector;
133
- this.fulfillmentHandlerControl = new FormControl();
134
- this.fulfillmentQuantities = {};
135
- }
136
- ngOnInit() {
137
- this.dataService.settings.getGlobalSettings().single$.subscribe(({ globalSettings }) => {
138
- this.fulfillmentQuantities = this.order.lines.reduce((result, line) => {
139
- const fulfillCount = this.getFulfillableCount(line, globalSettings.trackInventory);
140
- return Object.assign(Object.assign({}, result), { [line.id]: { fulfillCount, max: fulfillCount } });
141
- }, {});
142
- this.changeDetector.markForCheck();
143
- });
144
- this.dataService.shippingMethod
145
- .getShippingMethodOperations()
146
- .mapSingle(data => data.fulfillmentHandlers)
147
- .subscribe(handlers => {
148
- this.fulfillmentHandlerDef =
149
- handlers.find(h => { var _a, _b; return h.code === ((_b = (_a = this.order.shippingLines[0]) === null || _a === void 0 ? void 0 : _a.shippingMethod) === null || _b === void 0 ? void 0 : _b.fulfillmentHandlerCode); }) || handlers[0];
150
- this.fulfillmentHandler = configurableDefinitionToInstance(this.fulfillmentHandlerDef);
151
- this.fulfillmentHandlerControl.patchValue(this.fulfillmentHandler);
152
- this.changeDetector.markForCheck();
153
- });
154
- }
155
- getFulfillableCount(line, globalTrackInventory) {
156
- const { trackInventory, stockOnHand } = line.productVariant;
157
- const effectiveTracInventory = trackInventory === GlobalFlag.INHERIT ? globalTrackInventory : trackInventory === GlobalFlag.TRUE;
158
- const unfulfilledCount = this.getUnfulfilledCount(line);
159
- return effectiveTracInventory ? Math.min(unfulfilledCount, stockOnHand) : unfulfilledCount;
160
- }
161
- getUnfulfilledCount(line) {
162
- var _a, _b;
163
- const fulfilled = (_b = (_a = line.fulfillments) === null || _a === void 0 ? void 0 : _a.map(f => f.summary).flat().filter(row => row.orderLine.id === line.id).reduce((sum, row) => sum + row.quantity, 0)) !== null && _b !== void 0 ? _b : 0;
164
- return line.quantity - fulfilled;
165
- }
166
- canSubmit() {
167
- const totalCount = Object.values(this.fulfillmentQuantities).reduce((total, { fulfillCount }) => total + fulfillCount, 0);
168
- const formIsValid = configurableOperationValueIsValid(this.fulfillmentHandlerDef, this.fulfillmentHandlerControl.value) && this.fulfillmentHandlerControl.valid;
169
- return formIsValid && 0 < totalCount;
170
- }
171
- select() {
172
- const lines = Object.entries(this.fulfillmentQuantities).map(([orderLineId, { fulfillCount }]) => ({
173
- orderLineId,
174
- quantity: fulfillCount,
175
- }));
176
- this.resolveWith({
177
- lines,
178
- handler: toConfigurableOperationInput(this.fulfillmentHandler, this.fulfillmentHandlerControl.value),
179
- });
180
- }
181
- cancel() {
182
- this.resolveWith();
183
- }
184
- }
185
- FulfillOrderDialogComponent.decorators = [
186
- { type: Component, args: [{
187
- selector: 'vdr-fulfill-order-dialog',
188
- template: "<ng-template vdrDialogTitle>{{ 'order.fulfill-order' | translate }}</ng-template>\r\n\r\n<div class=\"fulfillment-wrapper\">\r\n <div class=\"order-table\">\r\n <table class=\"table\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>{{ 'order.product-name' | translate }}</th>\r\n <th>{{ 'order.product-sku' | translate }}</th>\r\n <th>{{ 'order.unfulfilled' | translate }}</th>\r\n <th>{{ 'catalog.stock-on-hand' | translate }}</th>\r\n <th>{{ 'order.fulfill' | translate }}</th>\r\n </tr>\r\n </thead>\r\n <tr\r\n *ngFor=\"let line of order.lines\"\r\n class=\"order-line\"\r\n [class.ignore]=\"getUnfulfilledCount(line) === 0\"\r\n >\r\n <td class=\"align-middle thumb\">\r\n <img *ngIf=\"line.featuredAsset\" [src]=\"line.featuredAsset | assetPreview: 'tiny'\" />\r\n </td>\r\n <td class=\"align-middle name\">{{ line.productVariant.name }}</td>\r\n <td class=\"align-middle sku\">{{ line.productVariant.sku }}</td>\r\n <td class=\"align-middle quantity\">{{ getUnfulfilledCount(line) }}</td>\r\n <td class=\"align-middle quantity\">{{ line.productVariant.stockOnHand }}</td>\r\n <td class=\"align-middle fulfil\">\r\n <input\r\n *ngIf=\"fulfillmentQuantities[line.id]\"\r\n [disabled]=\"getUnfulfilledCount(line) === 0\"\r\n [(ngModel)]=\"fulfillmentQuantities[line.id].fulfillCount\"\r\n type=\"number\"\r\n [max]=\"fulfillmentQuantities[line.id].max\"\r\n min=\"0\"\r\n />\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n <div class=\"shipping-details\">\r\n <vdr-formatted-address [address]=\"order.shippingAddress\"></vdr-formatted-address>\r\n <h6>{{ 'order.shipping-method' | translate }}</h6>\r\n {{ order.shippingLines[0]?.shippingMethod?.name }}\r\n <strong>{{ order.shipping | localeCurrency: order.currencyCode }}</strong>\r\n <vdr-configurable-input\r\n [operationDefinition]=\"fulfillmentHandlerDef\"\r\n [operation]=\"fulfillmentHandler\"\r\n [formControl]=\"fulfillmentHandlerControl\"\r\n [removable]=\"false\"\r\n ></vdr-configurable-input>\r\n </div>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" [disabled]=\"!canSubmit()\" class=\"btn btn-primary\">\r\n {{ 'order.create-fulfillment' | translate }}\r\n </button>\r\n</ng-template>\r\n",
189
- changeDetection: ChangeDetectionStrategy.OnPush,
190
- styles: [":host{height:100%;display:flex;min-height:64vh}.fulfillment-wrapper{flex:1}@media screen and (min-width: 768px){.fulfillment-wrapper{display:flex;flex-direction:row}}.fulfillment-wrapper .shipping-details{margin-top:24px}@media screen and (min-width: 768px){.fulfillment-wrapper .shipping-details{margin-top:0;margin-left:24px;width:250px}}.fulfillment-wrapper .shipping-details clr-input-container{margin-top:24px}.fulfillment-wrapper .order-table{flex:1;overflow-y:auto}.fulfillment-wrapper .order-table table{margin-top:0}.fulfillment-wrapper tr.ignore{color:var(--color-grey-300)}\n"]
191
- },] }
192
- ];
193
- FulfillOrderDialogComponent.ctorParameters = () => [
194
- { type: DataService },
195
- { type: ChangeDetectorRef }
196
- ];
197
-
198
- class FulfillmentCardComponent {
199
- constructor() {
200
- this.transitionState = new EventEmitter();
201
- }
202
- nextSuggestedState() {
203
- var _a;
204
- if (!this.fulfillment) {
205
- return;
206
- }
207
- const { nextStates } = this.fulfillment;
208
- const namedStateOrDefault = (targetState) => nextStates.includes(targetState) ? targetState : nextStates[0];
209
- switch ((_a = this.fulfillment) === null || _a === void 0 ? void 0 : _a.state) {
210
- case 'Pending':
211
- return namedStateOrDefault('Shipped');
212
- case 'Shipped':
213
- return namedStateOrDefault('Delivered');
214
- default:
215
- return nextStates.find(s => s !== 'Cancelled');
216
- }
217
- }
218
- nextOtherStates() {
219
- if (!this.fulfillment) {
220
- return [];
221
- }
222
- const suggested = this.nextSuggestedState();
223
- return this.fulfillment.nextStates.filter(s => s !== suggested);
224
- }
225
- }
226
- FulfillmentCardComponent.decorators = [
227
- { type: Component, args: [{
228
- selector: 'vdr-fulfillment-card',
229
- template: "<div class=\"card\">\r\n <div class=\"card-header fulfillment-header\">\r\n <div>{{ 'order.fulfillment' | translate }}</div>\r\n <div class=\"fulfillment-state\">\r\n <vdr-fulfillment-state-label [state]=\"fulfillment?.state\"></vdr-fulfillment-state-label>\r\n </div>\r\n </div>\r\n <div class=\"card-block\">\r\n <vdr-fulfillment-detail\r\n *ngIf=\"!!fulfillment\"\r\n [fulfillmentId]=\"fulfillment?.id\"\r\n [order]=\"order\"\r\n ></vdr-fulfillment-detail>\r\n </div>\r\n <div class=\"card-footer\" *ngIf=\"fulfillment?.nextStates.length\">\r\n <ng-container *ngIf=\"nextSuggestedState() as suggestedState\">\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"transitionState.emit(suggestedState)\">\r\n {{ 'order.set-fulfillment-state' | translate: { state: (suggestedState | stateI18nToken | translate) } }}\r\n </button>\r\n </ng-container>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <ng-container *ngFor=\"let nextState of nextOtherStates()\">\r\n <button\r\n type=\"button\"\r\n class=\"btn\"\r\n vdrDropdownItem\r\n (click)=\"transitionState.emit(nextState)\"\r\n >\r\n <ng-container *ngIf=\"nextState !== 'Cancelled'; else cancel\">\r\n <clr-icon shape=\"step-forward-2\"></clr-icon>\r\n {{ 'order.transition-to-state' | translate: { state: (nextState | stateI18nToken | translate) } }}\r\n </ng-container>\r\n <ng-template #cancel>\r\n <clr-icon shape=\"error-standard\" class=\"is-error\"></clr-icon>\r\n {{ 'order.cancel-fulfillment' | translate }}\r\n </ng-template>\r\n </button>\r\n </ng-container>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n</div>\r\n",
230
- changeDetection: ChangeDetectionStrategy.OnPush,
231
- styles: [".fulfillment-header{display:flex;justify-content:space-between;align-items:center}.card-footer{display:flex;align-items:center;justify-content:flex-end}\n"]
232
- },] }
233
- ];
234
- FulfillmentCardComponent.propDecorators = {
235
- fulfillment: [{ type: Input }],
236
- order: [{ type: Input }],
237
- transitionState: [{ type: Output }]
238
- };
239
-
240
- class FulfillmentDetailComponent {
241
- constructor(serverConfigService) {
242
- this.serverConfigService = serverConfigService;
243
- this.customFieldConfig = [];
244
- this.customFieldFormGroup = new FormGroup({});
245
- }
246
- ngOnInit() {
247
- this.customFieldConfig = this.serverConfigService.getCustomFieldsFor('Fulfillment');
248
- }
249
- ngOnChanges(changes) {
250
- this.buildCustomFieldsFormGroup();
251
- }
252
- get fulfillment() {
253
- return this.order.fulfillments && this.order.fulfillments.find(f => f.id === this.fulfillmentId);
254
- }
255
- get items() {
256
- var _a, _b;
257
- return ((_b = (_a = this.fulfillment) === null || _a === void 0 ? void 0 : _a.summary.map(row => {
258
- var _a, _b;
259
- return {
260
- name: (_b = (_a = this.order.lines.find(line => line.id === row.orderLine.id)) === null || _a === void 0 ? void 0 : _a.productVariant.name) !== null && _b !== void 0 ? _b : '',
261
- quantity: row.quantity,
262
- };
263
- })) !== null && _b !== void 0 ? _b : []);
264
- }
265
- buildCustomFieldsFormGroup() {
266
- const customFields = this.fulfillment.customFields;
267
- for (const fieldDef of this.serverConfigService.getCustomFieldsFor('Fulfillment')) {
268
- this.customFieldFormGroup.addControl(fieldDef.name, new FormControl(customFields[fieldDef.name]));
269
- }
270
- }
271
- customFieldIsObject(customField) {
272
- return Array.isArray(customField) || isObject(customField);
273
- }
274
- }
275
- FulfillmentDetailComponent.decorators = [
276
- { type: Component, args: [{
277
- selector: 'vdr-fulfillment-detail',
278
- template: "<vdr-labeled-data [label]=\"'common.created-at' | translate\">\r\n {{ fulfillment?.createdAt | localeDate: 'medium' }}\r\n</vdr-labeled-data>\r\n<vdr-labeled-data [label]=\"'order.fulfillment-method' | translate\">\r\n {{ fulfillment?.method }}\r\n</vdr-labeled-data>\r\n<vdr-labeled-data *ngIf=\"fulfillment?.trackingCode\" [label]=\"'order.tracking-code' | translate\">\r\n {{ fulfillment?.trackingCode }}\r\n</vdr-labeled-data>\r\n<vdr-labeled-data [label]=\"'order.contents' | translate\">\r\n <vdr-simple-item-list [items]=\"items\"></vdr-simple-item-list>\r\n</vdr-labeled-data>\r\n<ng-container *ngFor=\"let customField of customFieldConfig\">\r\n <vdr-custom-field-control\r\n *ngIf=\"customFieldFormGroup.get(customField.name)\"\r\n [readonly]=\"true\"\r\n [compact]=\"true\"\r\n [customField]=\"customField\"\r\n [customFieldsFormGroup]=\"customFieldFormGroup\"\r\n ></vdr-custom-field-control>\r\n</ng-container>\r\n",
279
- changeDetection: ChangeDetectionStrategy.OnPush,
280
- styles: [""]
281
- },] }
282
- ];
283
- FulfillmentDetailComponent.ctorParameters = () => [
284
- { type: ServerConfigService }
285
- ];
286
- FulfillmentDetailComponent.propDecorators = {
287
- fulfillmentId: [{ type: Input }],
288
- order: [{ type: Input }]
289
- };
290
-
291
- class FulfillmentStateLabelComponent {
292
- get chipColorType() {
293
- switch (this.state) {
294
- case 'Pending':
295
- case 'Shipped':
296
- return 'warning';
297
- case 'Delivered':
298
- return 'success';
299
- case 'Cancelled':
300
- return 'error';
301
- }
302
- }
303
- }
304
- FulfillmentStateLabelComponent.decorators = [
305
- { type: Component, args: [{
306
- selector: 'vdr-fulfillment-state-label',
307
- template: "<vdr-chip [title]=\"'order.payment-state' | translate\" [colorType]=\"chipColorType\">\r\n <clr-icon shape=\"check-circle\" *ngIf=\"state === 'Delivered'\"></clr-icon>\r\n {{ state | stateI18nToken | translate }}\r\n</vdr-chip>\r\n",
308
- changeDetection: ChangeDetectionStrategy.OnPush,
309
- styles: [":host{font-size:14px}\n"]
310
- },] }
311
- ];
312
- FulfillmentStateLabelComponent.propDecorators = {
313
- state: [{ type: Input }]
314
- };
315
-
316
- class LineFulfillmentComponent {
317
- constructor() {
318
- this.fulfilledCount = 0;
319
- this.fulfillments = [];
320
- }
321
- ngOnChanges(changes) {
322
- if (this.line) {
323
- this.fulfilledCount = this.getDeliveredCount(this.line);
324
- this.fulfillmentStatus = this.getFulfillmentStatus(this.fulfilledCount, this.line.items.length);
325
- this.fulfillments = this.getFulfillments(this.line);
326
- }
327
- }
328
- /**
329
- * Returns the number of items in an OrderLine which are fulfilled.
330
- */
331
- getDeliveredCount(line) {
332
- var _a, _b;
333
- return ((_b = (_a = line.fulfillments) === null || _a === void 0 ? void 0 : _a.reduce((sum, fulfillment) => { var _a, _b; return sum + ((_b = (_a = fulfillment.summary.find(s => s.orderLine.id === line.id)) === null || _a === void 0 ? void 0 : _a.quantity) !== null && _b !== void 0 ? _b : 0); }, 0)) !== null && _b !== void 0 ? _b : 0);
334
- }
335
- getFulfillmentStatus(fulfilledCount, lineQuantity) {
336
- if (fulfilledCount === lineQuantity) {
337
- return 'full';
338
- }
339
- if (0 < fulfilledCount && fulfilledCount < lineQuantity) {
340
- return 'partial';
341
- }
342
- return 'none';
343
- }
344
- getFulfillments(line) {
345
- var _a, _b;
346
- return ((_b = (_a = line.fulfillments) === null || _a === void 0 ? void 0 : _a.map(fulfillment => {
347
- var _a;
348
- const summaryLine = fulfillment.summary.find(s => s.orderLine.id === line.id);
349
- return {
350
- count: (_a = summaryLine === null || summaryLine === void 0 ? void 0 : summaryLine.quantity) !== null && _a !== void 0 ? _a : 0,
351
- fulfillment,
352
- };
353
- })) !== null && _b !== void 0 ? _b : []);
354
- }
355
- }
356
- LineFulfillmentComponent.decorators = [
357
- { type: Component, args: [{
358
- selector: 'vdr-line-fulfillment',
359
- template: "<vdr-dropdown class=\"search-settings-menu\" *ngIf=\"fulfilledCount || orderState === 'PartiallyDelivered'\">\r\n <button type=\"button\" class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon *ngIf=\"fulfillmentStatus === 'full'\" class=\"item-fulfilled\" shape=\"check-circle\"></clr-icon>\r\n <clr-icon\r\n *ngIf=\"fulfillmentStatus === 'partial'\"\r\n class=\"item-partially-fulfilled\"\r\n shape=\"check-circle\"\r\n ></clr-icon>\r\n <clr-icon\r\n *ngIf=\"fulfillmentStatus === 'none'\"\r\n class=\"item-not-fulfilled\"\r\n shape=\"exclamation-circle\"\r\n ></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <label class=\"dropdown-header\" *ngIf=\"fulfillmentStatus === 'full'\">\r\n {{ 'order.line-fulfillment-all' | translate }}\r\n </label>\r\n <label class=\"dropdown-header\" *ngIf=\"fulfillmentStatus === 'partial'\">\r\n {{\r\n 'order.line-fulfillment-partial' | translate: { total: line.quantity, count: fulfilledCount }\r\n }}\r\n </label>\r\n <label class=\"dropdown-header\" *ngIf=\"fulfillmentStatus === 'none'\">\r\n {{ 'order.line-fulfillment-none' | translate }}\r\n </label>\r\n <div class=\"fulfillment-detail\" *ngFor=\"let item of fulfillments\">\r\n <div class=\"fulfillment-title\">\r\n {{ 'order.fulfillment' | translate }} #{{ item.fulfillment.id }} ({{\r\n 'order.item-count' | translate: { count: item.count }\r\n }})\r\n </div>\r\n <vdr-labeled-data [label]=\"'common.created-at' | translate\">\r\n {{ item.fulfillment.createdAt | localeDate: 'medium' }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.fulfillment-method' | translate\">\r\n {{ item.fulfillment.method }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data\r\n *ngIf=\"item.fulfillment.trackingCode\"\r\n [label]=\"'order.tracking-code' | translate\"\r\n >\r\n {{ item.fulfillment.trackingCode }}\r\n </vdr-labeled-data>\r\n </div>\r\n </vdr-dropdown-menu>\r\n</vdr-dropdown>\r\n",
360
- changeDetection: ChangeDetectionStrategy.OnPush,
361
- styles: [".item-fulfilled{color:var(--color-success-500)}.item-partially-fulfilled{color:var(--color-warning-500)}.item-not-fulfilled{color:var(--color-error-500)}.fulfillment-detail{margin:6px 12px}.fulfillment-detail:not(:last-of-type){border-bottom:1px dashed var(--color-component-border-200)}\n"]
362
- },] }
363
- ];
364
- LineFulfillmentComponent.propDecorators = {
365
- line: [{ type: Input }],
366
- orderState: [{ type: Input }]
367
- };
368
-
369
- class LineRefundsComponent {
370
- getRefundedCount() {
371
- var _a, _b;
372
- const refunds = (_b = (_a = this.payments) === null || _a === void 0 ? void 0 : _a.reduce((all, payment) => [...all, ...payment.refunds], [])) !== null && _b !== void 0 ? _b : [];
373
- return this.line.items.filter(i => {
374
- if (i.refundId === null && !i.cancelled) {
375
- return false;
376
- }
377
- if (i.refundId) {
378
- const refund = refunds.find(r => r.id === i.refundId);
379
- if ((refund === null || refund === void 0 ? void 0 : refund.state) === 'Failed') {
380
- return false;
381
- }
382
- else {
383
- return true;
384
- }
385
- }
386
- return false;
387
- }).length;
388
- }
389
- }
390
- LineRefundsComponent.decorators = [
391
- { type: Component, args: [{
392
- selector: 'vdr-line-refunds',
393
- template: "<span *ngIf=\"getRefundedCount()\" [title]=\"'order.refunded-count' | translate: { count: getRefundedCount() }\">\r\n <clr-icon shape=\"redo\" class=\"is-solid\" dir=\"down\"></clr-icon>\r\n</span>\r\n",
394
- changeDetection: ChangeDetectionStrategy.OnPush,
395
- styles: [":host{color:var(--color-error-500)}\n"]
396
- },] }
397
- ];
398
- LineRefundsComponent.propDecorators = {
399
- line: [{ type: Input }],
400
- payments: [{ type: Input }]
401
- };
402
-
403
- class ModificationDetailComponent {
404
- constructor() {
405
- this.addedItems = new Map();
406
- this.removedItems = new Map();
407
- }
408
- ngOnChanges() {
409
- const { added, removed } = this.getModifiedLines();
410
- this.addedItems = added;
411
- this.removedItems = removed;
412
- }
413
- getSurcharge(id) {
414
- return this.order.surcharges.find(m => m.id === id);
415
- }
416
- getAddedItems() {
417
- return [...this.addedItems.entries()].map(([line, count]) => {
418
- return { name: line.productVariant.name, quantity: count };
419
- });
420
- }
421
- getRemovedItems() {
422
- return [...this.removedItems.entries()].map(([line, count]) => {
423
- return { name: line.productVariant.name, quantity: count };
424
- });
425
- }
426
- getModifiedLines() {
427
- var _a, _b;
428
- const added = new Map();
429
- const removed = new Map();
430
- for (const _item of this.modification.orderItems || []) {
431
- const result = this.getOrderLineAndItem(_item.id);
432
- if (result) {
433
- const { line, item } = result;
434
- if (item.cancelled) {
435
- const count = (_a = removed.get(line)) !== null && _a !== void 0 ? _a : 0;
436
- removed.set(line, count + 1);
437
- }
438
- else {
439
- const count = (_b = added.get(line)) !== null && _b !== void 0 ? _b : 0;
440
- added.set(line, count + 1);
441
- }
442
- }
443
- }
444
- return { added, removed };
445
- }
446
- getOrderLineAndItem(itemId) {
447
- for (const line of this.order.lines) {
448
- const item = line.items.find(i => i.id === itemId);
449
- if (item) {
450
- return { line, item };
451
- }
452
- }
453
- }
454
- }
455
- ModificationDetailComponent.decorators = [
456
- { type: Component, args: [{
457
- selector: 'vdr-modification-detail',
458
- template: "<vdr-labeled-data [label]=\"'common.ID' | translate\">{{ modification.id }}</vdr-labeled-data>\r\n<vdr-labeled-data *ngIf=\"modification.note\" [label]=\"'order.note' | translate\">{{\r\n modification.note\r\n}}</vdr-labeled-data>\r\n<vdr-labeled-data *ngFor=\"let surcharge of modification.surcharges\" [label]=\"'order.surcharges' | translate\">\r\n {{ getSurcharge(surcharge.id)?.description }}\r\n {{ getSurcharge(surcharge.id)?.priceWithTax | localeCurrency: order.currencyCode }}</vdr-labeled-data\r\n>\r\n<vdr-labeled-data *ngIf=\"getAddedItems().length\" [label]=\"'order.added-items' | translate\">\r\n <vdr-simple-item-list [items]=\"getAddedItems()\"></vdr-simple-item-list>\r\n</vdr-labeled-data>\r\n<vdr-labeled-data *ngIf=\"getRemovedItems().length\" [label]=\"'order.removed-items' | translate\">\r\n <vdr-simple-item-list [items]=\"getRemovedItems()\"></vdr-simple-item-list>\r\n</vdr-labeled-data>\r\n",
459
- changeDetection: ChangeDetectionStrategy.OnPush,
460
- styles: [""]
461
- },] }
462
- ];
463
- ModificationDetailComponent.propDecorators = {
464
- order: [{ type: Input }],
465
- modification: [{ type: Input }]
466
- };
467
-
468
- class OrderCustomFieldsCardComponent {
469
- constructor(formBuilder, modalService) {
470
- this.formBuilder = formBuilder;
471
- this.modalService = modalService;
472
- this.customFieldsConfig = [];
473
- this.customFieldValues = {};
474
- this.updateClick = new EventEmitter();
475
- this.editable = false;
476
- }
477
- ngOnInit() {
478
- this.customFieldForm = this.formBuilder.group({});
479
- for (const field of this.customFieldsConfig) {
480
- this.customFieldForm.addControl(field.name, this.formBuilder.control(this.customFieldValues[field.name]));
481
- }
482
- }
483
- onUpdateClick() {
484
- this.updateClick.emit(this.customFieldForm.value);
485
- this.customFieldForm.markAsPristine();
486
- this.editable = false;
487
- }
488
- onCancelClick() {
489
- if (this.customFieldForm.dirty) {
490
- this.modalService
491
- .dialog({
492
- title: marker('catalog.confirm-cancel'),
493
- buttons: [
494
- { type: 'secondary', label: marker('common.keep-editing') },
495
- { type: 'danger', label: marker('common.discard-changes'), returnValue: true },
496
- ],
497
- })
498
- .subscribe(result => {
499
- if (result) {
500
- this.customFieldForm.reset();
501
- this.customFieldForm.markAsPristine();
502
- this.editable = false;
503
- }
504
- });
505
- }
506
- else {
507
- this.editable = false;
508
- }
509
- }
510
- }
511
- OrderCustomFieldsCardComponent.decorators = [
512
- { type: Component, args: [{
513
- selector: 'vdr-order-custom-fields-card',
514
- template: "<div class=\"card\" *ngIf=\"customFieldsConfig.length\">\r\n <div class=\"card-header\">\r\n {{ 'common.custom-fields' | translate }}\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"card-text custom-field-form\" [class.editable]=\"editable\">\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Order\"\r\n [customFields]=\"customFieldsConfig\"\r\n [customFieldsFormGroup]=\"customFieldForm\"\r\n [readonly]=\"!editable\"\r\n [compact]=\"true\"\r\n ></vdr-tabbed-custom-fields>\r\n </div>\r\n </div>\r\n <div class=\"card-footer\">\r\n <button class=\"btn btn-sm btn-secondary\" (click)=\"editable = true\" *ngIf=\"!editable\">\r\n <clr-icon shape=\"pencil\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n <button\r\n class=\"btn btn-sm btn-primary\"\r\n (click)=\"onUpdateClick()\"\r\n *ngIf=\"editable\"\r\n [disabled]=\"customFieldForm.pristine || customFieldForm.invalid\"\r\n >\r\n <clr-icon shape=\"check\"></clr-icon>\r\n {{ 'common.update' | translate }}\r\n </button>\r\n <button\r\n class=\"btn btn-sm btn-secondary\"\r\n (click)=\"onCancelClick()\"\r\n *ngIf=\"editable\"\r\n >\r\n <clr-icon shape=\"times\"></clr-icon>\r\n {{ 'common.cancel' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n",
515
- changeDetection: ChangeDetectionStrategy.OnPush,
516
- styles: ["vdr-custom-field-control{margin-bottom:6px;display:block}.custom-field-form ::ng-deep .clr-control-label{color:var(--color-grey-400)}.custom-field-form.editable ::ng-deep .clr-control-label{color:inherit}\n"]
517
- },] }
518
- ];
519
- OrderCustomFieldsCardComponent.ctorParameters = () => [
520
- { type: FormBuilder },
521
- { type: ModalService }
522
- ];
523
- OrderCustomFieldsCardComponent.propDecorators = {
524
- customFieldsConfig: [{ type: Input }],
525
- customFieldValues: [{ type: Input }],
526
- updateClick: [{ type: Output }]
527
- };
528
-
529
- class OrderStateSelectDialogComponent {
530
- constructor() {
531
- this.nextStates = [];
532
- this.message = '';
533
- this.selectedState = '';
534
- }
535
- select() {
536
- if (this.selectedState) {
537
- this.resolveWith(this.selectedState);
538
- }
539
- }
540
- cancel() {
541
- this.resolveWith();
542
- }
543
- }
544
- OrderStateSelectDialogComponent.decorators = [
545
- { type: Component, args: [{
546
- selector: 'vdr-order-state-select-dialog',
547
- template: "<ng-template vdrDialogTitle>{{ 'order.select-state' | translate }}</ng-template>\r\n<p>{{ message | translate }}</p>\r\n<clr-select-container>\r\n <select clrSelect name=\"state\" [(ngModel)]=\"selectedState\">\r\n <option *ngFor=\"let state of nextStates\" [value]=\"state\">\r\n {{ state | stateI18nToken | translate }}\r\n </option>\r\n </select>\r\n</clr-select-container>\r\n<ng-template vdrDialogButtons>\r\n <button type=\"submit\" *ngIf=\"cancellable\" (click)=\"cancel()\" class=\"btn btn-secondary\">\r\n {{ 'common.cancel' | translate }}\r\n </button>\r\n <button type=\"submit\" (click)=\"select()\" class=\"btn btn-primary\" [disabled]=\"!selectedState\">\r\n {{ 'order.transition-to-state' | translate: { state: (selectedState | stateI18nToken | translate) } }}\r\n </button>\r\n</ng-template>\r\n",
548
- changeDetection: ChangeDetectionStrategy.OnPush,
549
- styles: [""]
550
- },] }
551
- ];
552
-
553
- class OrderTransitionService {
554
- constructor(dataService, modalService, notificationService, i18nService) {
555
- this.dataService = dataService;
556
- this.modalService = modalService;
557
- this.notificationService = notificationService;
558
- this.i18nService = i18nService;
559
- }
560
- /**
561
- * Attempts to transition the Order to the last state it was in before it was transitioned
562
- * to the "Modifying" state. If this fails, a manual prompt is used.
563
- */
564
- transitionToPreModifyingState(orderId, nextStates) {
565
- return this.getPreModifyingState(orderId).pipe(switchMap(state => {
566
- const manualTransitionOptions = {
567
- orderId,
568
- nextStates,
569
- message: this.i18nService.translate(marker('order.unable-to-transition-to-state-try-another'), { state }),
570
- cancellable: false,
571
- retry: 10,
572
- };
573
- if (state) {
574
- return this.transitionToStateOrThrow(orderId, state).pipe(catchError(err => this.manuallyTransitionToState(manualTransitionOptions)));
575
- }
576
- else {
577
- return this.manuallyTransitionToState(manualTransitionOptions);
578
- }
579
- }));
580
- }
581
- /**
582
- * Displays a modal for manually selecting the next state.
583
- */
584
- manuallyTransitionToState(options) {
585
- return this.modalService
586
- .fromComponent(OrderStateSelectDialogComponent, {
587
- locals: {
588
- nextStates: options.nextStates,
589
- cancellable: options.cancellable,
590
- message: options.message,
591
- },
592
- closable: false,
593
- size: 'md',
594
- })
595
- .pipe(switchMap(result => {
596
- if (result) {
597
- return this.transitionToStateOrThrow(options.orderId, result);
598
- }
599
- else {
600
- if (!options.cancellable) {
601
- throw new Error(`An order state must be selected`);
602
- }
603
- else {
604
- return EMPTY;
605
- }
606
- }
607
- }), retryWhen(errors => errors.pipe(delay(2000), take(options.retry))));
608
- }
609
- /**
610
- * Attempts to get the last state the Order was in before it was transitioned
611
- * to the "Modifying" state.
612
- */
613
- getPreModifyingState(orderId) {
614
- return this.dataService.order
615
- .getOrderHistory(orderId, {
616
- filter: {
617
- type: {
618
- eq: HistoryEntryType.ORDER_STATE_TRANSITION,
619
- },
620
- },
621
- sort: {
622
- createdAt: SortOrder.DESC,
623
- },
624
- })
625
- .mapSingle(result => result.order)
626
- .pipe(map(result => {
627
- const item = result === null || result === void 0 ? void 0 : result.history.items.find(i => i.data.to === 'Modifying');
628
- if (item) {
629
- return item.data.from;
630
- }
631
- else {
632
- return;
633
- }
634
- }));
635
- }
636
- transitionToStateOrThrow(orderId, state) {
637
- return this.dataService.order.transitionToState(orderId, state).pipe(map(({ transitionOrderToState }) => {
638
- switch (transitionOrderToState === null || transitionOrderToState === void 0 ? void 0 : transitionOrderToState.__typename) {
639
- case 'Order':
640
- return transitionOrderToState === null || transitionOrderToState === void 0 ? void 0 : transitionOrderToState.state;
641
- case 'OrderStateTransitionError':
642
- this.notificationService.error(transitionOrderToState === null || transitionOrderToState === void 0 ? void 0 : transitionOrderToState.transitionError);
643
- throw new Error(transitionOrderToState === null || transitionOrderToState === void 0 ? void 0 : transitionOrderToState.transitionError);
644
- }
645
- }));
646
- }
647
- }
648
- OrderTransitionService.ɵprov = i0.ɵɵdefineInjectable({ factory: function OrderTransitionService_Factory() { return new OrderTransitionService(i0.ɵɵinject(i1.DataService), i0.ɵɵinject(i1.ModalService), i0.ɵɵinject(i1.NotificationService), i0.ɵɵinject(i1.I18nService)); }, token: OrderTransitionService, providedIn: "root" });
649
- OrderTransitionService.decorators = [
650
- { type: Injectable, args: [{
651
- providedIn: 'root',
652
- },] }
653
- ];
654
- OrderTransitionService.ctorParameters = () => [
655
- { type: DataService },
656
- { type: ModalService },
657
- { type: NotificationService },
658
- { type: I18nService }
659
- ];
660
-
661
- class OrderProcessGraphDialogComponent {
662
- constructor(serverConfigService) {
663
- this.serverConfigService = serverConfigService;
664
- this.states = [];
665
- }
666
- ngOnInit() {
667
- this.states = this.serverConfigService.getOrderProcessStates();
668
- }
669
- }
670
- OrderProcessGraphDialogComponent.decorators = [
671
- { type: Component, args: [{
672
- selector: 'vdr-order-process-graph-dialog',
673
- template: "<ng-template vdrDialogTitle>{{ 'order.order-state-diagram' | translate }}</ng-template>\r\n\r\n<vdr-order-process-graph [states]=\"states\" [initialState]=\"activeState\"></vdr-order-process-graph>\r\n",
674
- changeDetection: ChangeDetectionStrategy.OnPush,
675
- styles: [""]
676
- },] }
677
- ];
678
- OrderProcessGraphDialogComponent.ctorParameters = () => [
679
- { type: ServerConfigService }
680
- ];
681
-
682
- class RefundOrderDialogComponent {
683
- constructor(i18nService) {
684
- var _a;
685
- this.i18nService = i18nService;
686
- this.lineQuantities = {};
687
- this.refundShipping = false;
688
- this.adjustment = 0;
689
- this.reasons = (_a = getAppConfig().cancellationReasons) !== null && _a !== void 0 ? _a : [
690
- marker('order.refund-reason-customer-request'),
691
- marker('order.refund-reason-not-available'),
692
- ];
693
- this.reasons = this.reasons.map(r => this.i18nService.translate(r));
694
- }
695
- get refundTotal() {
696
- const itemTotal = this.order.lines.reduce((total, line) => {
697
- const lineRef = this.lineQuantities[line.id];
698
- const refundCount = (lineRef.refund && lineRef.quantity) || 0;
699
- return total + line.proratedUnitPriceWithTax * refundCount;
700
- }, 0);
701
- return itemTotal + (this.refundShipping ? this.order.shippingWithTax : 0) + this.adjustment;
702
- }
703
- get settledPaymentsTotal() {
704
- return this.settledPayments
705
- .map(payment => {
706
- const paymentTotal = payment.amount;
707
- const alreadyRefundedTotal = summate(payment.refunds.filter(r => r.state !== 'Failed'), 'total');
708
- return paymentTotal - alreadyRefundedTotal;
709
- })
710
- .reduce((sum, amount) => sum + amount, 0);
711
- }
712
- lineCanBeRefundedOrCancelled(line) {
713
- var _a, _b;
714
- const refunds = (_b = (_a = this.order.payments) === null || _a === void 0 ? void 0 : _a.reduce((all, payment) => [...all, ...payment.refunds], [])) !== null && _b !== void 0 ? _b : [];
715
- const refundable = line.items.filter(i => {
716
- if (i.cancelled) {
717
- return false;
718
- }
719
- if (i.refundId == null) {
720
- return true;
721
- }
722
- const refund = refunds.find(r => r.id === i.refundId);
723
- return (refund === null || refund === void 0 ? void 0 : refund.state) === 'Failed';
724
- });
725
- return 0 < refundable.length;
726
- }
727
- ngOnInit() {
728
- this.lineQuantities = this.order.lines.reduce((result, line) => {
729
- return Object.assign(Object.assign({}, result), { [line.id]: {
730
- quantity: 0,
731
- refund: false,
732
- cancel: false,
733
- } });
734
- }, {});
735
- this.settledPayments = (this.order.payments || []).filter(p => p.state === 'Settled');
736
- if (this.settledPayments.length) {
737
- this.selectedPayment = this.settledPayments[0];
738
- }
739
- }
740
- handleZeroQuantity(line) {
741
- if ((line === null || line === void 0 ? void 0 : line.quantity) === 0) {
742
- line.cancel = false;
743
- line.refund = false;
744
- }
745
- }
746
- isRefunding() {
747
- const result = Object.values(this.lineQuantities).reduce((isRefunding, line) => {
748
- return isRefunding || (0 < line.quantity && line.refund);
749
- }, false);
750
- return result;
751
- }
752
- isCancelling() {
753
- const result = Object.values(this.lineQuantities).reduce((isCancelling, line) => {
754
- return isCancelling || (0 < line.quantity && line.cancel);
755
- }, false);
756
- return result;
757
- }
758
- canSubmit() {
759
- if (this.isRefunding()) {
760
- return !!(this.selectedPayment &&
761
- this.reason &&
762
- 0 < this.refundTotal &&
763
- this.refundTotal <= this.settledPaymentsTotal);
764
- }
765
- else if (this.isCancelling()) {
766
- return !!this.reason;
767
- }
768
- return false;
769
- }
770
- select() {
771
- const payment = this.selectedPayment;
772
- if (payment) {
773
- const refundLines = this.getOrderLineInput(line => line.refund);
774
- const cancelLines = this.getOrderLineInput(line => line.cancel);
775
- this.resolveWith({
776
- refund: {
777
- lines: refundLines,
778
- reason: this.reason,
779
- shipping: this.refundShipping ? this.order.shippingWithTax : 0,
780
- adjustment: this.adjustment,
781
- paymentId: payment.id,
782
- },
783
- cancel: {
784
- lines: cancelLines,
785
- orderId: this.order.id,
786
- reason: this.reason,
787
- cancelShipping: this.refundShipping,
788
- },
789
- });
790
- }
791
- }
792
- cancel() {
793
- this.resolveWith();
794
- }
795
- getOrderLineInput(filterFn) {
796
- return Object.entries(this.lineQuantities)
797
- .filter(([orderLineId, line]) => 0 < line.quantity && filterFn(line))
798
- .map(([orderLineId, line]) => ({
799
- orderLineId,
800
- quantity: line.quantity,
801
- }));
802
- }
803
- }
804
- RefundOrderDialogComponent.decorators = [
805
- { type: Component, args: [{
806
- selector: 'vdr-refund-order-dialog',
807
- template: "<ng-template vdrDialogTitle>{{ 'order.refund-and-cancel-order' | translate }}</ng-template>\r\n\r\n<div class=\"refund-wrapper\">\r\n <div class=\"order-table\">\r\n <table class=\"table\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>{{ 'order.product-name' | translate }}</th>\r\n <th>{{ 'order.product-sku' | translate }}</th>\r\n <th>{{ 'order.quantity' | translate }}</th>\r\n <th>{{ 'order.unit-price' | translate }}</th>\r\n <th>{{ 'order.prorated-unit-price' | translate }}</th>\r\n <th>{{ 'order.quantity' | translate }}</th>\r\n <th>{{ 'order.refund' | translate }}</th>\r\n <th>{{ 'order.cancel' | translate }}</th>\r\n </tr>\r\n </thead>\r\n <tr *ngFor=\"let line of order.lines\" class=\"order-line\">\r\n <td class=\"align-middle thumb\">\r\n <img [src]=\"line.featuredAsset | assetPreview: 'tiny'\" />\r\n </td>\r\n <td class=\"align-middle name\">{{ line.productVariant.name }}</td>\r\n <td class=\"align-middle sku\">{{ line.productVariant.sku }}</td>\r\n <td class=\"align-middle quantity\">\r\n {{ line.quantity }}\r\n <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\r\n </td>\r\n <td class=\"align-middle quantity\">\r\n {{ line.unitPriceWithTax | localeCurrency: order.currencyCode }}\r\n </td>\r\n <td class=\"align-middle quantity\">\r\n <div class=\"prorated-wrapper\">\r\n {{ line.proratedUnitPriceWithTax | localeCurrency: order.currencyCode }}\r\n <ng-container *ngIf=\"line.discounts as discounts\">\r\n <vdr-dropdown *ngIf=\"discounts.length\">\r\n <div class=\"promotions-label\" vdrDropdownTrigger>\r\n <button class=\"icon-button\"><clr-icon shape=\"info\"></clr-icon></button>\r\n </div>\r\n <vdr-dropdown-menu>\r\n <div class=\"line-promotion\" *ngFor=\"let discount of discounts\">\r\n {{ discount.description }}\r\n <div class=\"promotion-amount\">\r\n {{\r\n discount.amount / 100 / line.quantity\r\n | number: '1.0-2'\r\n | currency: order.currencyCode\r\n }}\r\n </div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </ng-container>\r\n </div>\r\n </td>\r\n <td class=\"align-middle quantity-col\">\r\n <input\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n [(ngModel)]=\"lineQuantities[line.id].quantity\"\r\n type=\"number\"\r\n [max]=\"line.quantity\"\r\n min=\"0\"\r\n (input)=\"handleZeroQuantity(lineQuantities[line.id])\"\r\n />\r\n </td>\r\n <td class=\"align-middle\">\r\n <div class=\"cancel-checkbox-wrapper\">\r\n <input\r\n type=\"checkbox\"\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n clrCheckbox\r\n [disabled]=\"0 === lineQuantities[line.id].quantity\"\r\n [(ngModel)]=\"lineQuantities[line.id].refund\"\r\n />\r\n </div>\r\n </td>\r\n <td class=\"align-middle\">\r\n <div class=\"cancel-checkbox-wrapper\">\r\n <input\r\n type=\"checkbox\"\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n clrCheckbox\r\n [disabled]=\"0 === lineQuantities[line.id].quantity\"\r\n [(ngModel)]=\"lineQuantities[line.id].cancel\"\r\n />\r\n </div>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n <div class=\"refund-details mt4\" [class.faded]=\"!isRefunding() && !isCancelling()\">\r\n <div>\r\n <label class=\"clr-control-label\">{{ 'order.refund-cancellation-reason' | translate }}</label>\r\n <ng-select\r\n [disabled]=\"!isRefunding() && !isCancelling()\"\r\n [items]=\"reasons\"\r\n bindLabel=\"name\"\r\n autofocus\r\n [placeholder]=\"'order.refund-cancellation-reason-required' | translate\"\r\n bindValue=\"id\"\r\n [addTag]=\"true\"\r\n [(ngModel)]=\"reason\"\r\n ></ng-select>\r\n </div>\r\n\r\n <div>\r\n <clr-select-container>\r\n <label>{{ 'order.payment-to-refund' | translate }}</label>\r\n <select clrSelect name=\"options\" [(ngModel)]=\"selectedPayment\" [disabled]=\"!isRefunding()\">\r\n <option\r\n *ngFor=\"let payment of settledPayments\"\r\n [ngValue]=\"payment\"\r\n [disabled]=\"payment.state !== 'Settled'\"\r\n >\r\n #{{ payment.id }} {{ payment.method }}:\r\n {{ payment.amount | localeCurrency: order.currencyCode }}\r\n </option>\r\n </select>\r\n </clr-select-container>\r\n\r\n <clr-checkbox-wrapper>\r\n <input type=\"checkbox\" clrCheckbox [(ngModel)]=\"refundShipping\" [disabled]=\"!isRefunding()\" />\r\n <label>\r\n {{ 'order.refund-shipping' | translate }} ({{\r\n order.shippingWithTax | localeCurrency: order.currencyCode\r\n }})\r\n </label>\r\n </clr-checkbox-wrapper>\r\n <clr-input-container>\r\n <label>{{ 'order.refund-adjustment' | translate }}</label>\r\n <vdr-currency-input\r\n clrInput\r\n [disabled]=\"!isRefunding()\"\r\n [currencyCode]=\"order.currencyCode\"\r\n [(ngModel)]=\"adjustment\"\r\n ></vdr-currency-input>\r\n </clr-input-container>\r\n <div class=\"totals\" [class.disabled]=\"!isRefunding()\">\r\n <div class=\"order-total\">\r\n {{ 'order.payment-amount' | translate }}:\r\n {{ selectedPayment.amount | localeCurrency: order.currencyCode }}\r\n </div>\r\n <div class=\"refund-total\">\r\n {{ 'order.refund-total' | translate }}:\r\n {{ refundTotal | localeCurrency: order.currencyCode }}\r\n </div>\r\n <div class=\"refund-total-error\" *ngIf=\"refundTotal < 0 || settledPaymentsTotal < refundTotal\">\r\n {{\r\n 'order.refund-total-error'\r\n | translate\r\n : {\r\n min: 0 | currency: order.currencyCode,\r\n max: settledPaymentsTotal | localeCurrency: order.currencyCode\r\n }\r\n }}\r\n </div>\r\n <div class=\"refund-total-warning\" *ngIf=\"selectedPayment.amount < refundTotal\">\r\n {{ 'order.refund-total-warning' | translate }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" [disabled]=\"!canSubmit()\" class=\"btn btn-primary\">\r\n <ng-container *ngIf=\"isRefunding(); else cancelling\">\r\n {{\r\n 'order.refund-with-amount'\r\n | translate: { amount: refundTotal | localeCurrency: order.currencyCode }\r\n }}\r\n </ng-container>\r\n <ng-template #cancelling>\r\n {{ 'order.cancel-selected-items' | translate }}\r\n </ng-template>\r\n </button>\r\n</ng-template>\r\n",
808
- changeDetection: ChangeDetectionStrategy.OnPush,
809
- styles: [":host{height:100%;display:flex;min-height:64vh}.refund-wrapper{flex:1;flex-direction:column}.refund-wrapper .order-table{flex:1;overflow-y:auto}.refund-wrapper .order-table table{margin-top:0}.refund-wrapper tr.ignore{color:var(--color-grey-300)}.quantity-col{background-color:var(--color-warning-100)}.cancel-checkbox-wrapper{display:flex;align-items:center;justify-content:center}clr-checkbox-wrapper{margin-top:12px;margin-bottom:12px;display:block}.refund-details{display:flex;justify-content:space-between}.refund-details.faded{opacity:.5}.totals{margin-top:48px}.totals .refund-total{font-size:18px}.totals .refund-total-error{color:var(--color-error-500)}.totals .refund-total-warning{color:var(--color-warning-600);max-width:250px}.totals.disabled{color:var(--color-grey-300)}.prorated-wrapper{display:flex;justify-content:center}.line-promotion{display:flex;justify-content:space-between;font-size:12px;padding:3px 6px}.line-promotion .promotion-amount{margin-left:12px}\n"]
810
- },] }
811
- ];
812
- RefundOrderDialogComponent.ctorParameters = () => [
813
- { type: I18nService }
814
- ];
815
-
816
- class SettleRefundDialogComponent {
817
- constructor() {
818
- this.transactionId = '';
819
- }
820
- submit() {
821
- this.resolveWith(this.transactionId);
822
- }
823
- cancel() {
824
- this.resolveWith();
825
- }
826
- }
827
- SettleRefundDialogComponent.decorators = [
828
- { type: Component, args: [{
829
- selector: 'vdr-settle-refund-dialog',
830
- template: "<ng-template vdrDialogTitle>{{ 'order.settle-refund' | translate }}</ng-template>\r\n<p class=\"instruction\">\r\n {{ 'order.settle-refund-manual-instructions' | translate: { method: refund.method } }}\r\n</p>\r\n<clr-input-container>\r\n <label>{{ 'order.transaction-id' | translate }}</label>\r\n <input clrInput name=\"transactionId\" [(ngModel)]=\"transactionId\" />\r\n</clr-input-container>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"submit()\" [disabled]=\"!transactionId\" class=\"btn btn-primary\">\r\n {{ 'order.settle-refund' | translate }}\r\n </button>\r\n</ng-template>\r\n",
831
- changeDetection: ChangeDetectionStrategy.OnPush,
832
- styles: [":host{padding-bottom:32px}.instruction{margin-top:0;margin-bottom:24px}\n"]
833
- },] }
834
- ];
835
-
836
- class OrderDetailComponent extends BaseDetailComponent {
837
- constructor(router, route, serverConfigService, changeDetector, dataService, notificationService, modalService, orderTransitionService) {
838
- super(route, router, serverConfigService, dataService);
839
- this.changeDetector = changeDetector;
840
- this.dataService = dataService;
841
- this.notificationService = notificationService;
842
- this.modalService = modalService;
843
- this.orderTransitionService = orderTransitionService;
844
- this.detailForm = new FormGroup({});
845
- this.fetchHistory = new Subject();
846
- this.defaultStates = [
847
- 'AddingItems',
848
- 'ArrangingPayment',
849
- 'PaymentAuthorized',
850
- 'PaymentSettled',
851
- 'PartiallyShipped',
852
- 'Shipped',
853
- 'PartiallyDelivered',
854
- 'Delivered',
855
- 'Cancelled',
856
- 'Modifying',
857
- 'ArrangingAdditionalPayment',
858
- ];
859
- }
860
- ngOnInit() {
861
- this.init();
862
- this.entity$.pipe(take(1)).subscribe(order => {
863
- if (order.state === 'Modifying') {
864
- this.router.navigate(['./', 'modify'], { relativeTo: this.route });
865
- }
866
- });
867
- this.customFields = this.getCustomFieldConfig('Order');
868
- this.orderLineCustomFields = this.getCustomFieldConfig('OrderLine');
869
- this.history$ = this.fetchHistory.pipe(startWith(null), switchMap(() => {
870
- return this.dataService.order
871
- .getOrderHistory(this.id, {
872
- sort: {
873
- createdAt: SortOrder.DESC,
874
- },
875
- })
876
- .mapStream(data => { var _a; return (_a = data.order) === null || _a === void 0 ? void 0 : _a.history.items; });
877
- }));
878
- this.nextStates$ = this.entity$.pipe(map(order => {
879
- const isInCustomState = !this.defaultStates.includes(order.state);
880
- return isInCustomState
881
- ? order.nextStates
882
- : order.nextStates.filter(s => !this.defaultStates.includes(s));
883
- }));
884
- }
885
- ngOnDestroy() {
886
- this.destroy();
887
- }
888
- openStateDiagram() {
889
- this.entity$
890
- .pipe(take(1), switchMap(order => this.modalService.fromComponent(OrderProcessGraphDialogComponent, {
891
- closable: true,
892
- locals: {
893
- activeState: order.state,
894
- },
895
- })))
896
- .subscribe();
897
- }
898
- transitionToState(state) {
899
- this.dataService.order.transitionToState(this.id, state).subscribe(({ transitionOrderToState }) => {
900
- switch (transitionOrderToState === null || transitionOrderToState === void 0 ? void 0 : transitionOrderToState.__typename) {
901
- case 'Order':
902
- this.notificationService.success(marker('order.transitioned-to-state-success'), { state });
903
- this.fetchHistory.next();
904
- break;
905
- case 'OrderStateTransitionError':
906
- this.notificationService.error(transitionOrderToState.transitionError);
907
- }
908
- });
909
- }
910
- manuallyTransitionToState(order) {
911
- this.orderTransitionService
912
- .manuallyTransitionToState({
913
- orderId: order.id,
914
- nextStates: order.nextStates,
915
- cancellable: true,
916
- message: marker('order.manually-transition-to-state-message'),
917
- retry: 0,
918
- })
919
- .subscribe();
920
- }
921
- transitionToModifying() {
922
- this.dataService.order
923
- .transitionToState(this.id, 'Modifying')
924
- .subscribe(({ transitionOrderToState }) => {
925
- switch (transitionOrderToState === null || transitionOrderToState === void 0 ? void 0 : transitionOrderToState.__typename) {
926
- case 'Order':
927
- this.router.navigate(['./modify'], { relativeTo: this.route });
928
- break;
929
- case 'OrderStateTransitionError':
930
- this.notificationService.error(transitionOrderToState.transitionError);
931
- }
932
- });
933
- }
934
- updateCustomFields(customFieldsValue) {
935
- this.dataService.order
936
- .updateOrderCustomFields({
937
- id: this.id,
938
- customFields: customFieldsValue,
939
- })
940
- .subscribe(() => {
941
- this.notificationService.success(marker('common.notify-update-success'), { entity: 'Order' });
942
- });
943
- }
944
- getOrderAddressLines(orderAddress) {
945
- if (!orderAddress) {
946
- return [];
947
- }
948
- return Object.values(orderAddress)
949
- .filter(val => val !== 'OrderAddress')
950
- .filter(line => !!line);
951
- }
952
- settlePayment(payment) {
953
- this.dataService.order.settlePayment(payment.id).subscribe(({ settlePayment }) => {
954
- switch (settlePayment.__typename) {
955
- case 'Payment':
956
- if (settlePayment.state === 'Settled') {
957
- this.notificationService.success(marker('order.settle-payment-success'));
958
- }
959
- else {
960
- this.notificationService.error(marker('order.settle-payment-error'));
961
- }
962
- this.dataService.order.getOrder(this.id).single$.subscribe();
963
- this.fetchHistory.next();
964
- break;
965
- case 'OrderStateTransitionError':
966
- case 'PaymentStateTransitionError':
967
- case 'SettlePaymentError':
968
- this.notificationService.error(settlePayment.message);
969
- }
970
- });
971
- }
972
- transitionPaymentState({ payment, state }) {
973
- if (state === 'Cancelled') {
974
- this.dataService.order.cancelPayment(payment.id).subscribe(({ cancelPayment }) => {
975
- switch (cancelPayment.__typename) {
976
- case 'Payment':
977
- this.notificationService.success(marker('order.transitioned-payment-to-state-success'), {
978
- state,
979
- });
980
- this.dataService.order.getOrder(this.id).single$.subscribe();
981
- this.fetchHistory.next();
982
- break;
983
- case 'PaymentStateTransitionError':
984
- this.notificationService.error(cancelPayment.transitionError);
985
- break;
986
- case 'CancelPaymentError':
987
- this.notificationService.error(cancelPayment.paymentErrorMessage);
988
- break;
989
- }
990
- });
991
- }
992
- else {
993
- this.dataService.order
994
- .transitionPaymentToState(payment.id, state)
995
- .subscribe(({ transitionPaymentToState }) => {
996
- switch (transitionPaymentToState.__typename) {
997
- case 'Payment':
998
- this.notificationService.success(marker('order.transitioned-payment-to-state-success'), {
999
- state,
1000
- });
1001
- this.dataService.order.getOrder(this.id).single$.subscribe();
1002
- this.fetchHistory.next();
1003
- break;
1004
- case 'PaymentStateTransitionError':
1005
- this.notificationService.error(transitionPaymentToState.message);
1006
- break;
1007
- }
1008
- });
1009
- }
1010
- }
1011
- canAddFulfillment(order) {
1012
- var _a;
1013
- const allFulfillmentSummaryRows = ((_a = order.fulfillments) !== null && _a !== void 0 ? _a : []).reduce((all, fulfillment) => [...all, ...fulfillment.summary], []);
1014
- let allItemsFulfilled = true;
1015
- for (const line of order.lines) {
1016
- const totalFulfilledCount = allFulfillmentSummaryRows
1017
- .filter(row => row.orderLine.id === line.id)
1018
- .reduce((sum, row) => sum + row.quantity, 0);
1019
- if (totalFulfilledCount < line.quantity) {
1020
- allItemsFulfilled = false;
1021
- }
1022
- }
1023
- return (!allItemsFulfilled &&
1024
- !this.hasUnsettledModifications(order) &&
1025
- this.outstandingPaymentAmount(order) === 0 &&
1026
- (order.nextStates.includes('Shipped') ||
1027
- order.nextStates.includes('PartiallyShipped') ||
1028
- order.nextStates.includes('Delivered')));
1029
- }
1030
- hasUnsettledModifications(order) {
1031
- return 0 < order.modifications.filter(m => !m.isSettled).length;
1032
- }
1033
- getOutstandingModificationAmount(order) {
1034
- return summate(order.modifications.filter(m => !m.isSettled), 'priceChange');
1035
- }
1036
- outstandingPaymentAmount(order) {
1037
- var _a, _b, _c;
1038
- const paymentIsValid = (p) => p.state !== 'Cancelled' && p.state !== 'Declined' && p.state !== 'Error';
1039
- let amountCovered = 0;
1040
- for (const payment of (_b = (_a = order.payments) === null || _a === void 0 ? void 0 : _a.filter(paymentIsValid)) !== null && _b !== void 0 ? _b : []) {
1041
- const refunds = (_c = payment.refunds.filter(r => r.state !== 'Failed')) !== null && _c !== void 0 ? _c : [];
1042
- const refundsTotal = summate(refunds, 'total');
1043
- amountCovered += payment.amount - refundsTotal;
1044
- }
1045
- return order.totalWithTax - amountCovered;
1046
- }
1047
- addManualPayment(order) {
1048
- const priorState = order.state;
1049
- this.modalService
1050
- .fromComponent(AddManualPaymentDialogComponent, {
1051
- closable: true,
1052
- locals: {
1053
- outstandingAmount: this.outstandingPaymentAmount(order),
1054
- currencyCode: order.currencyCode,
1055
- },
1056
- })
1057
- .pipe(switchMap(result => {
1058
- if (result) {
1059
- return this.dataService.order.addManualPaymentToOrder({
1060
- orderId: this.id,
1061
- transactionId: result.transactionId,
1062
- method: result.method,
1063
- metadata: result.metadata || {},
1064
- });
1065
- }
1066
- else {
1067
- return EMPTY;
1068
- }
1069
- }), switchMap(({ addManualPaymentToOrder }) => {
1070
- switch (addManualPaymentToOrder.__typename) {
1071
- case 'Order':
1072
- this.notificationService.success(marker('order.add-payment-to-order-success'));
1073
- if (priorState === 'ArrangingAdditionalPayment') {
1074
- return this.orderTransitionService.transitionToPreModifyingState(order.id, order.nextStates);
1075
- }
1076
- else {
1077
- return this.dataService.order
1078
- .transitionToState(this.id, 'PaymentSettled')
1079
- .pipe(mapTo('PaymentSettled'));
1080
- }
1081
- case 'ManualPaymentStateError':
1082
- this.notificationService.error(addManualPaymentToOrder.message);
1083
- return EMPTY;
1084
- default:
1085
- return EMPTY;
1086
- }
1087
- }))
1088
- .subscribe(result => {
1089
- if (result) {
1090
- this.refetchOrder({ result });
1091
- }
1092
- });
1093
- }
1094
- fulfillOrder() {
1095
- this.entity$
1096
- .pipe(take(1), switchMap(order => {
1097
- return this.modalService.fromComponent(FulfillOrderDialogComponent, {
1098
- size: 'xl',
1099
- locals: {
1100
- order,
1101
- },
1102
- });
1103
- }), switchMap(input => {
1104
- if (input) {
1105
- return this.dataService.order.createFulfillment(input);
1106
- }
1107
- else {
1108
- return of(undefined);
1109
- }
1110
- }), switchMap(result => this.refetchOrder(result).pipe(mapTo(result))))
1111
- .subscribe(result => {
1112
- if (result) {
1113
- const { addFulfillmentToOrder } = result;
1114
- switch (addFulfillmentToOrder.__typename) {
1115
- case 'Fulfillment':
1116
- this.notificationService.success(marker('order.create-fulfillment-success'));
1117
- break;
1118
- case 'EmptyOrderLineSelectionError':
1119
- case 'InsufficientStockOnHandError':
1120
- case 'ItemsAlreadyFulfilledError':
1121
- case 'InvalidFulfillmentHandlerError':
1122
- this.notificationService.error(addFulfillmentToOrder.message);
1123
- break;
1124
- case 'FulfillmentStateTransitionError':
1125
- this.notificationService.error(addFulfillmentToOrder.transitionError);
1126
- break;
1127
- case 'CreateFulfillmentError':
1128
- this.notificationService.error(addFulfillmentToOrder.fulfillmentHandlerError);
1129
- break;
1130
- case undefined:
1131
- this.notificationService.error(JSON.stringify(addFulfillmentToOrder));
1132
- break;
1133
- default:
1134
- assertNever(addFulfillmentToOrder);
1135
- }
1136
- }
1137
- });
1138
- }
1139
- transitionFulfillment(id, state) {
1140
- this.dataService.order
1141
- .transitionFulfillmentToState(id, state)
1142
- .pipe(switchMap(result => this.refetchOrder(result)))
1143
- .subscribe(() => {
1144
- this.notificationService.success(marker('order.successfully-updated-fulfillment'));
1145
- });
1146
- }
1147
- cancelOrRefund(order) {
1148
- const isRefundable = this.orderHasSettledPayments(order);
1149
- if (order.state === 'PaymentAuthorized' || order.active === true || !isRefundable) {
1150
- this.cancelOrder(order);
1151
- }
1152
- else {
1153
- this.refundOrder(order);
1154
- }
1155
- }
1156
- settleRefund(refund) {
1157
- this.modalService
1158
- .fromComponent(SettleRefundDialogComponent, {
1159
- size: 'md',
1160
- locals: {
1161
- refund,
1162
- },
1163
- })
1164
- .pipe(switchMap(transactionId => {
1165
- if (transactionId) {
1166
- return this.dataService.order.settleRefund({
1167
- transactionId,
1168
- id: refund.id,
1169
- }, this.id);
1170
- }
1171
- else {
1172
- return of(undefined);
1173
- }
1174
- }))
1175
- .subscribe(result => {
1176
- if (result) {
1177
- this.notificationService.success(marker('order.settle-refund-success'));
1178
- }
1179
- });
1180
- }
1181
- addNote(event) {
1182
- const { note, isPublic } = event;
1183
- this.dataService.order
1184
- .addNoteToOrder({
1185
- id: this.id,
1186
- note,
1187
- isPublic,
1188
- })
1189
- .pipe(switchMap(result => this.refetchOrder(result)))
1190
- .subscribe(result => {
1191
- this.notificationService.success(marker('common.notify-create-success'), {
1192
- entity: 'Note',
1193
- });
1194
- });
1195
- }
1196
- updateNote(entry) {
1197
- this.modalService
1198
- .fromComponent(EditNoteDialogComponent, {
1199
- closable: true,
1200
- locals: {
1201
- displayPrivacyControls: true,
1202
- note: entry.data.note,
1203
- noteIsPrivate: !entry.isPublic,
1204
- },
1205
- })
1206
- .pipe(switchMap(result => {
1207
- if (result) {
1208
- return this.dataService.order.updateOrderNote({
1209
- noteId: entry.id,
1210
- isPublic: !result.isPrivate,
1211
- note: result.note,
1212
- });
1213
- }
1214
- else {
1215
- return EMPTY;
1216
- }
1217
- }))
1218
- .subscribe(result => {
1219
- this.fetchHistory.next();
1220
- this.notificationService.success(marker('common.notify-update-success'), {
1221
- entity: 'Note',
1222
- });
1223
- });
1224
- }
1225
- deleteNote(entry) {
1226
- return this.modalService
1227
- .dialog({
1228
- title: marker('common.confirm-delete-note'),
1229
- body: entry.data.note,
1230
- buttons: [
1231
- { type: 'secondary', label: marker('common.cancel') },
1232
- { type: 'danger', label: marker('common.delete'), returnValue: true },
1233
- ],
1234
- })
1235
- .pipe(switchMap(res => (res ? this.dataService.order.deleteOrderNote(entry.id) : EMPTY)))
1236
- .subscribe(() => {
1237
- this.fetchHistory.next();
1238
- this.notificationService.success(marker('common.notify-delete-success'), {
1239
- entity: 'Note',
1240
- });
1241
- });
1242
- }
1243
- orderHasSettledPayments(order) {
1244
- var _a;
1245
- return !!((_a = order.payments) === null || _a === void 0 ? void 0 : _a.find(p => p.state === 'Settled'));
1246
- }
1247
- cancelOrder(order) {
1248
- this.modalService
1249
- .fromComponent(CancelOrderDialogComponent, {
1250
- size: 'xl',
1251
- locals: {
1252
- order,
1253
- },
1254
- })
1255
- .pipe(switchMap(input => {
1256
- if (input) {
1257
- return this.dataService.order.cancelOrder(input);
1258
- }
1259
- else {
1260
- return of(undefined);
1261
- }
1262
- }), switchMap(result => this.refetchOrder(result)))
1263
- .subscribe(result => {
1264
- if (result) {
1265
- this.notificationService.success(marker('order.cancelled-order-success'));
1266
- }
1267
- });
1268
- }
1269
- refundOrder(order) {
1270
- this.modalService
1271
- .fromComponent(RefundOrderDialogComponent, {
1272
- size: 'xl',
1273
- locals: {
1274
- order,
1275
- },
1276
- })
1277
- .pipe(switchMap(input => {
1278
- var _a;
1279
- if (!input) {
1280
- return of(undefined);
1281
- }
1282
- if ((_a = input.cancel.lines) === null || _a === void 0 ? void 0 : _a.length) {
1283
- return this.dataService.order.cancelOrder(input.cancel).pipe(map(res => {
1284
- const result = res.cancelOrder;
1285
- switch (result.__typename) {
1286
- case 'Order':
1287
- this.refetchOrder(result).subscribe();
1288
- this.notificationService.success(marker('order.cancelled-order-success'));
1289
- return input;
1290
- case 'CancelActiveOrderError':
1291
- case 'QuantityTooGreatError':
1292
- case 'MultipleOrderError':
1293
- case 'OrderStateTransitionError':
1294
- case 'EmptyOrderLineSelectionError':
1295
- this.notificationService.error(result.message);
1296
- return undefined;
1297
- }
1298
- }));
1299
- }
1300
- else {
1301
- return [input];
1302
- }
1303
- }), switchMap(input => {
1304
- if (!input) {
1305
- return of(undefined);
1306
- }
1307
- if (input.refund.lines.length) {
1308
- return this.dataService.order
1309
- .refundOrder(input.refund)
1310
- .pipe(map(res => res.refundOrder));
1311
- }
1312
- else {
1313
- return [undefined];
1314
- }
1315
- }))
1316
- .subscribe(result => {
1317
- if (result) {
1318
- switch (result.__typename) {
1319
- case 'Refund':
1320
- this.refetchOrder(result).subscribe();
1321
- if (result.state === 'Failed') {
1322
- this.notificationService.error(marker('order.refund-order-failed'));
1323
- }
1324
- else {
1325
- this.notificationService.success(marker('order.refund-order-success'));
1326
- }
1327
- break;
1328
- case 'AlreadyRefundedError':
1329
- case 'NothingToRefundError':
1330
- case 'PaymentOrderMismatchError':
1331
- case 'RefundOrderStateError':
1332
- case 'RefundStateTransitionError':
1333
- this.notificationService.error(result.message);
1334
- break;
1335
- }
1336
- }
1337
- });
1338
- }
1339
- refetchOrder(result) {
1340
- this.fetchHistory.next();
1341
- if (result) {
1342
- return this.dataService.order.getOrder(this.id).single$;
1343
- }
1344
- else {
1345
- return of(undefined);
1346
- }
1347
- }
1348
- setFormValues(entity) {
1349
- // empty
1350
- }
1351
- }
1352
- OrderDetailComponent.decorators = [
1353
- { type: Component, args: [{
1354
- selector: 'vdr-order-detail',
1355
- template: "<vdr-action-bar *ngIf=\"entity$ | async as order\">\r\n <vdr-ab-left>\r\n <div class=\"flex clr-align-items-center\">\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n <vdr-order-state-label [state]=\"order.state\">\r\n <button\r\n class=\"icon-button\"\r\n (click)=\"openStateDiagram()\"\r\n [title]=\"'order.order-state-diagram' | translate\"\r\n >\r\n <clr-icon shape=\"list\"></clr-icon>\r\n </button>\r\n </vdr-order-state-label>\r\n </div>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"order-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"\r\n (order.state === 'ArrangingPayment' || order.state === 'ArrangingAdditionalPayment') &&\r\n (hasUnsettledModifications(order) || 0 < outstandingPaymentAmount(order))\r\n \"\r\n (click)=\"addManualPayment(order)\"\r\n >\r\n {{ 'order.add-payment-to-order' | translate }}\r\n ({{ outstandingPaymentAmount(order) | localeCurrency: order.currencyCode }})\r\n </button>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"\r\n order.active === false &&\r\n order.state !== 'ArrangingAdditionalPayment' &&\r\n 0 < outstandingPaymentAmount(order)\r\n \"\r\n (click)=\"transitionToState('ArrangingAdditionalPayment')\"\r\n >\r\n {{ 'order.arrange-additional-payment' | translate }}\r\n </button>\r\n <button class=\"btn btn-primary\" (click)=\"fulfillOrder()\" [disabled]=\"!canAddFulfillment(order)\">\r\n {{ 'order.fulfill-order' | translate }}\r\n </button>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <ng-container *ngIf=\"order.nextStates.includes('Modifying')\">\r\n <button type=\"button\" class=\"btn\" vdrDropdownItem (click)=\"transitionToModifying()\">\r\n <clr-icon shape=\"pencil\"></clr-icon>\r\n {{ 'order.modify-order' | translate }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n </ng-container>\r\n <button\r\n type=\"button\"\r\n class=\"btn\"\r\n vdrDropdownItem\r\n *ngIf=\"order.nextStates.includes('Cancelled')\"\r\n (click)=\"cancelOrRefund(order)\"\r\n >\r\n <clr-icon shape=\"error-standard\" class=\"is-error\"></clr-icon>\r\n <ng-container *ngIf=\"orderHasSettledPayments(order); else cancelOnly\">\r\n {{ 'order.refund-and-cancel-order' | translate }}\r\n </ng-container>\r\n <ng-template #cancelOnly>\r\n {{ 'order.cancel-order' | translate }}\r\n </ng-template>\r\n </button>\r\n\r\n <ng-container *ngIf=\"(nextStates$ | async)?.length\">\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n *ngFor=\"let nextState of nextStates$ | async\"\r\n type=\"button\"\r\n class=\"btn\"\r\n vdrDropdownItem\r\n (click)=\"transitionToState(nextState)\"\r\n >\r\n <clr-icon shape=\"step-forward-2\"></clr-icon>\r\n {{\r\n 'order.transition-to-state'\r\n | translate: { state: (nextState | stateI18nToken | translate) }\r\n }}\r\n </button>\r\n </ng-container>\r\n <div class=\"dropdown-divider\"></div>\r\n <button type=\"button\" class=\"btn\" vdrDropdownItem (click)=\"manuallyTransitionToState(order)\">\r\n <clr-icon shape=\"step-forward-2\" class=\"is-warning\"></clr-icon>\r\n {{ 'order.manually-transition-to-state' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<div *ngIf=\"entity$ | async as order\">\r\n <div class=\"clr-row\">\r\n <div class=\"clr-col-lg-8\">\r\n <vdr-order-table\r\n [order]=\"order\"\r\n [orderLineCustomFields]=\"orderLineCustomFields\"\r\n ></vdr-order-table>\r\n <h4>{{ 'order.tax-summary' | translate }}</h4>\r\n <table class=\"table\">\r\n <thead>\r\n <tr>\r\n <th>{{ 'common.description' | translate }}</th>\r\n <th>{{ 'order.tax-rate' | translate }}</th>\r\n <th>{{ 'order.tax-base' | translate }}</th>\r\n <th>{{ 'order.tax-total' | translate }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of order.taxSummary\">\r\n <td>{{ row.description }}</td>\r\n <td>{{ row.taxRate / 100 | percent }}</td>\r\n <td>{{ row.taxBase | localeCurrency: order.currencyCode }}</td>\r\n <td>{{ row.taxTotal | localeCurrency: order.currencyCode }}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <vdr-custom-detail-component-host\r\n locationId=\"order-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n\r\n <vdr-order-history\r\n [order]=\"order\"\r\n [history]=\"history$ | async\"\r\n (addNote)=\"addNote($event)\"\r\n (updateNote)=\"updateNote($event)\"\r\n (deleteNote)=\"deleteNote($event)\"\r\n ></vdr-order-history>\r\n </div>\r\n <div class=\"clr-col-lg-4 order-cards\">\r\n <vdr-order-custom-fields-card\r\n [customFieldsConfig]=\"customFields\"\r\n [customFieldValues]=\"order.customFields\"\r\n (updateClick)=\"updateCustomFields($event)\"\r\n ></vdr-order-custom-fields-card>\r\n <div class=\"card\">\r\n <div class=\"card-header\">\r\n {{ 'order.customer' | translate }}\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"card-text\">\r\n <vdr-customer-label [customer]=\"order.customer\"></vdr-customer-label>\r\n <h6 *ngIf=\"getOrderAddressLines(order.shippingAddress).length\">\r\n {{ 'order.shipping-address' | translate }}\r\n </h6>\r\n <vdr-formatted-address [address]=\"order.shippingAddress\"></vdr-formatted-address>\r\n <h6 *ngIf=\"getOrderAddressLines(order.billingAddress).length\">\r\n {{ 'order.billing-address' | translate }}\r\n </h6>\r\n <vdr-formatted-address [address]=\"order.billingAddress\"></vdr-formatted-address>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"order.payments && order.payments.length\">\r\n <vdr-order-payment-card\r\n *ngFor=\"let payment of order.payments\"\r\n [currencyCode]=\"order.currencyCode\"\r\n [payment]=\"payment\"\r\n (settlePayment)=\"settlePayment($event)\"\r\n (transitionPaymentState)=\"transitionPaymentState($event)\"\r\n (settleRefund)=\"settleRefund($event)\"\r\n ></vdr-order-payment-card>\r\n </ng-container>\r\n <ng-container *ngFor=\"let fulfillment of order.fulfillments\">\r\n <vdr-fulfillment-card\r\n [fulfillment]=\"fulfillment\"\r\n [order]=\"order\"\r\n (transitionState)=\"transitionFulfillment(fulfillment.id, $event)\"\r\n ></vdr-fulfillment-card>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n",
1356
- changeDetection: ChangeDetectionStrategy.OnPush,
1357
- styles: [".shipping-address{list-style-type:none;line-height:1.3em}.order-cards h6{margin-top:6px;color:var(--color-text-200)}\n"]
1358
- },] }
1359
- ];
1360
- OrderDetailComponent.ctorParameters = () => [
1361
- { type: Router },
1362
- { type: ActivatedRoute },
1363
- { type: ServerConfigService },
1364
- { type: ChangeDetectorRef },
1365
- { type: DataService },
1366
- { type: NotificationService },
1367
- { type: ModalService },
1368
- { type: OrderTransitionService }
1369
- ];
1370
-
1371
- var OrderEditResultType;
1372
- (function (OrderEditResultType) {
1373
- OrderEditResultType[OrderEditResultType["Refund"] = 0] = "Refund";
1374
- OrderEditResultType[OrderEditResultType["Payment"] = 1] = "Payment";
1375
- OrderEditResultType[OrderEditResultType["PriceUnchanged"] = 2] = "PriceUnchanged";
1376
- OrderEditResultType[OrderEditResultType["Cancel"] = 3] = "Cancel";
1377
- })(OrderEditResultType || (OrderEditResultType = {}));
1378
- class OrderEditsPreviewDialogComponent {
1379
- get priceDifference() {
1380
- return this.order.totalWithTax - this.originalTotalWithTax;
1381
- }
1382
- ngOnInit() {
1383
- this.refundNote = this.modifyOrderInput.note || '';
1384
- }
1385
- cancel() {
1386
- this.resolveWith({
1387
- result: OrderEditResultType.Cancel,
1388
- });
1389
- }
1390
- submit() {
1391
- if (0 < this.priceDifference) {
1392
- this.resolveWith({
1393
- result: OrderEditResultType.Payment,
1394
- });
1395
- }
1396
- else if (this.priceDifference < 0) {
1397
- this.resolveWith({
1398
- result: OrderEditResultType.Refund,
1399
- // tslint:disable-next-line:no-non-null-assertion
1400
- refundPaymentId: this.selectedPayment.id,
1401
- refundNote: this.refundNote,
1402
- });
1403
- }
1404
- else {
1405
- this.resolveWith({
1406
- result: OrderEditResultType.PriceUnchanged,
1407
- });
1408
- }
1409
- }
1410
- }
1411
- OrderEditsPreviewDialogComponent.decorators = [
1412
- { type: Component, args: [{
1413
- selector: 'vdr-order-edits-preview-dialog',
1414
- template: "<ng-template vdrDialogTitle>{{ 'order.confirm-modifications' | translate }}</ng-template>\r\n<vdr-order-table [order]=\"order\" [orderLineCustomFields]=\"orderLineCustomFields\"></vdr-order-table>\r\n\r\n<h4 class=\"h4\">\r\n {{ 'order.modify-order-price-difference' | translate }}:\r\n <strong>{{ priceDifference | localeCurrency: order.currencyCode }}</strong>\r\n</h4>\r\n<div *ngIf=\"priceDifference < 0\">\r\n<clr-select-container>\r\n <label>{{ 'order.payment-to-refund' | translate }}</label>\r\n <select clrSelect name=\"options\" [(ngModel)]=\"selectedPayment\">\r\n <option\r\n *ngFor=\"let payment of order.payments\"\r\n [ngValue]=\"payment\"\r\n >\r\n #{{ payment.id }} {{ payment.method }}:\r\n {{ payment.amount | localeCurrency: order.currencyCode }}\r\n </option>\r\n </select>\r\n</clr-select-container>\r\n <label class=\"clr-control-label\">{{ 'order.refund-cancellation-reason' | translate }}</label>\r\n <textarea [(ngModel)]=\"refundNote\" name=\"refundNote\" clrTextarea required></textarea>\r\n</div>\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"submit()\" [disabled]=\"priceDifference < 0 && !selectedPayment\" class=\"btn btn-primary\">\r\n {{ 'common.confirm' | translate }}\r\n </button>\r\n</ng-template>\r\n",
1415
- changeDetection: ChangeDetectionStrategy.OnPush,
1416
- styles: [""]
1417
- },] }
1418
- ];
1419
-
1420
- class OrderEditorComponent extends BaseDetailComponent {
1421
- constructor(router, route, serverConfigService, changeDetector, dataService, notificationService, modalService, orderTransitionService) {
1422
- super(route, router, serverConfigService, dataService);
1423
- this.changeDetector = changeDetector;
1424
- this.dataService = dataService;
1425
- this.notificationService = notificationService;
1426
- this.modalService = modalService;
1427
- this.orderTransitionService = orderTransitionService;
1428
- this.couponCodeInput$ = new Subject();
1429
- this.detailForm = new FormGroup({});
1430
- this.couponCodesControl = new FormControl();
1431
- this.modifyOrderInput = {
1432
- dryRun: true,
1433
- orderId: '',
1434
- addItems: [],
1435
- adjustOrderLines: [],
1436
- surcharges: [],
1437
- note: '',
1438
- updateShippingAddress: {},
1439
- updateBillingAddress: {},
1440
- };
1441
- this.note = '';
1442
- this.recalculateShipping = true;
1443
- this.addedVariants = new Map();
1444
- }
1445
- get addedLines() {
1446
- const getSinglePriceValue = (price) => price.__typename === 'SinglePrice' ? price.value : 0;
1447
- return (this.modifyOrderInput.addItems || [])
1448
- .map(row => {
1449
- const variantInfo = this.addedVariants.get(row.productVariantId);
1450
- if (variantInfo) {
1451
- return Object.assign(Object.assign({}, variantInfo), { price: getSinglePriceValue(variantInfo.price), priceWithTax: getSinglePriceValue(variantInfo.priceWithTax), quantity: row.quantity });
1452
- }
1453
- })
1454
- .filter(notNullOrUndefined);
1455
- }
1456
- ngOnInit() {
1457
- this.init();
1458
- this.dataService.promotion.getPromotions();
1459
- this.addressCustomFields = this.getCustomFieldConfig('Address');
1460
- this.modifyOrderInput.orderId = this.route.snapshot.paramMap.get('id');
1461
- this.orderLineCustomFields = this.getCustomFieldConfig('OrderLine');
1462
- this.entity$.pipe(takeUntil(this.destroy$)).subscribe(order => {
1463
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
1464
- if (order.couponCodes.length) {
1465
- this.couponCodesControl.setValue(order.couponCodes);
1466
- }
1467
- this.surchargeForm = new FormGroup({
1468
- description: new FormControl('', Validators.required),
1469
- sku: new FormControl(''),
1470
- price: new FormControl(0, Validators.required),
1471
- priceIncludesTax: new FormControl(true),
1472
- taxRate: new FormControl(0),
1473
- taxDescription: new FormControl(''),
1474
- });
1475
- if (!this.shippingAddressForm) {
1476
- this.shippingAddressForm = new FormGroup({
1477
- fullName: new FormControl((_a = order.shippingAddress) === null || _a === void 0 ? void 0 : _a.fullName),
1478
- company: new FormControl((_b = order.shippingAddress) === null || _b === void 0 ? void 0 : _b.company),
1479
- streetLine1: new FormControl((_c = order.shippingAddress) === null || _c === void 0 ? void 0 : _c.streetLine1),
1480
- streetLine2: new FormControl((_d = order.shippingAddress) === null || _d === void 0 ? void 0 : _d.streetLine2),
1481
- city: new FormControl((_e = order.shippingAddress) === null || _e === void 0 ? void 0 : _e.city),
1482
- province: new FormControl((_f = order.shippingAddress) === null || _f === void 0 ? void 0 : _f.province),
1483
- postalCode: new FormControl((_g = order.shippingAddress) === null || _g === void 0 ? void 0 : _g.postalCode),
1484
- countryCode: new FormControl((_h = order.shippingAddress) === null || _h === void 0 ? void 0 : _h.countryCode),
1485
- phoneNumber: new FormControl((_j = order.shippingAddress) === null || _j === void 0 ? void 0 : _j.phoneNumber),
1486
- });
1487
- this.addAddressCustomFieldsFormGroup(this.shippingAddressForm, order.shippingAddress);
1488
- }
1489
- if (!this.billingAddressForm) {
1490
- this.billingAddressForm = new FormGroup({
1491
- fullName: new FormControl((_k = order.billingAddress) === null || _k === void 0 ? void 0 : _k.fullName),
1492
- company: new FormControl((_l = order.billingAddress) === null || _l === void 0 ? void 0 : _l.company),
1493
- streetLine1: new FormControl((_m = order.billingAddress) === null || _m === void 0 ? void 0 : _m.streetLine1),
1494
- streetLine2: new FormControl((_o = order.billingAddress) === null || _o === void 0 ? void 0 : _o.streetLine2),
1495
- city: new FormControl((_p = order.billingAddress) === null || _p === void 0 ? void 0 : _p.city),
1496
- province: new FormControl((_q = order.billingAddress) === null || _q === void 0 ? void 0 : _q.province),
1497
- postalCode: new FormControl((_r = order.billingAddress) === null || _r === void 0 ? void 0 : _r.postalCode),
1498
- countryCode: new FormControl((_s = order.billingAddress) === null || _s === void 0 ? void 0 : _s.countryCode),
1499
- phoneNumber: new FormControl((_t = order.billingAddress) === null || _t === void 0 ? void 0 : _t.phoneNumber),
1500
- });
1501
- this.addAddressCustomFieldsFormGroup(this.billingAddressForm, order.billingAddress);
1502
- }
1503
- this.orderLineCustomFieldsFormArray = new FormArray([]);
1504
- for (const line of order.lines) {
1505
- const formGroup = new FormGroup({});
1506
- for (const { name } of this.orderLineCustomFields) {
1507
- formGroup.addControl(name, new FormControl(line.customFields[name]));
1508
- }
1509
- formGroup.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(value => {
1510
- let modifyRow = this.modifyOrderInput.adjustOrderLines.find(l => l.orderLineId === line.id);
1511
- if (!modifyRow) {
1512
- modifyRow = {
1513
- orderLineId: line.id,
1514
- quantity: line.quantity,
1515
- };
1516
- this.modifyOrderInput.adjustOrderLines.push(modifyRow);
1517
- }
1518
- if (this.orderLineCustomFields.length) {
1519
- modifyRow.customFields = value;
1520
- }
1521
- });
1522
- this.orderLineCustomFieldsFormArray.push(formGroup);
1523
- }
1524
- });
1525
- this.availableCouponCodes$ = concat(this.couponCodeInput$.pipe(distinctUntilChanged(), switchMap(term => this.dataService.promotion.getPromotions(10, 0, {
1526
- couponCode: { contains: term },
1527
- }).single$), map(({ promotions }) =>
1528
- // tslint:disable-next-line:no-non-null-assertion
1529
- promotions.items.map(p => ({ code: p.couponCode, promotionName: p.name }))), startWith([])));
1530
- this.addItemCustomFieldsFormArray = new FormArray([]);
1531
- this.addItemCustomFieldsForm = new FormGroup({});
1532
- for (const customField of this.orderLineCustomFields) {
1533
- this.addItemCustomFieldsForm.addControl(customField.name, new FormControl());
1534
- }
1535
- this.availableCountries$ = this.dataService.settings
1536
- .getAvailableCountries()
1537
- .mapSingle(result => result.countries.items)
1538
- .pipe(shareReplay(1));
1539
- this.dataService.order
1540
- .getOrderHistory(this.id, {
1541
- take: 1,
1542
- sort: {
1543
- createdAt: SortOrder.DESC,
1544
- },
1545
- filter: { type: { eq: HistoryEntryType.ORDER_STATE_TRANSITION } },
1546
- })
1547
- .single$.subscribe(({ order }) => {
1548
- this.previousState = order === null || order === void 0 ? void 0 : order.history.items[0].data.from;
1549
- });
1550
- }
1551
- ngOnDestroy() {
1552
- this.destroy();
1553
- }
1554
- transitionToPriorState(order) {
1555
- this.orderTransitionService
1556
- .transitionToPreModifyingState(order.id, order.nextStates)
1557
- .subscribe(result => {
1558
- this.router.navigate(['..'], { relativeTo: this.route });
1559
- });
1560
- }
1561
- canPreviewChanges() {
1562
- const { addItems, adjustOrderLines, surcharges } = this.modifyOrderInput;
1563
- return (!!(addItems === null || addItems === void 0 ? void 0 : addItems.length) ||
1564
- !!(surcharges === null || surcharges === void 0 ? void 0 : surcharges.length) ||
1565
- !!(adjustOrderLines === null || adjustOrderLines === void 0 ? void 0 : adjustOrderLines.length) ||
1566
- (this.shippingAddressForm.dirty && this.shippingAddressForm.valid) ||
1567
- (this.billingAddressForm.dirty && this.billingAddressForm.valid) ||
1568
- this.couponCodesControl.dirty);
1569
- }
1570
- isLineModified(line) {
1571
- var _a;
1572
- return !!((_a = this.modifyOrderInput.adjustOrderLines) === null || _a === void 0 ? void 0 : _a.find(l => l.orderLineId === line.id && l.quantity !== line.quantity));
1573
- }
1574
- updateLineQuantity(line, quantity) {
1575
- const { adjustOrderLines } = this.modifyOrderInput;
1576
- let row = adjustOrderLines === null || adjustOrderLines === void 0 ? void 0 : adjustOrderLines.find(l => l.orderLineId === line.id);
1577
- if (row && +quantity === line.quantity) {
1578
- // Remove the modification if the quantity is the same as
1579
- // the original order
1580
- adjustOrderLines === null || adjustOrderLines === void 0 ? void 0 : adjustOrderLines.splice(adjustOrderLines === null || adjustOrderLines === void 0 ? void 0 : adjustOrderLines.indexOf(row), 1);
1581
- }
1582
- if (!row) {
1583
- row = { orderLineId: line.id, quantity: +quantity };
1584
- adjustOrderLines === null || adjustOrderLines === void 0 ? void 0 : adjustOrderLines.push(row);
1585
- }
1586
- row.quantity = +quantity;
1587
- }
1588
- updateAddedItemQuantity(item, quantity) {
1589
- var _a;
1590
- const row = (_a = this.modifyOrderInput.addItems) === null || _a === void 0 ? void 0 : _a.find(l => l.productVariantId === item.productVariantId);
1591
- if (row) {
1592
- row.quantity = +quantity;
1593
- }
1594
- }
1595
- trackByProductVariantId(index, item) {
1596
- return item.productVariantId;
1597
- }
1598
- getSelectedItemPrice(result) {
1599
- switch (result === null || result === void 0 ? void 0 : result.priceWithTax.__typename) {
1600
- case 'SinglePrice':
1601
- return result.priceWithTax.value;
1602
- default:
1603
- return 0;
1604
- }
1605
- }
1606
- addItemToOrder(result) {
1607
- var _a, _b;
1608
- if (!result) {
1609
- return;
1610
- }
1611
- const customFields = this.orderLineCustomFields.length
1612
- ? this.addItemCustomFieldsForm.value
1613
- : undefined;
1614
- let row = (_a = this.modifyOrderInput.addItems) === null || _a === void 0 ? void 0 : _a.find(l => this.isMatchingAddItemRow(l, result, customFields));
1615
- if (!row) {
1616
- row = { productVariantId: result.productVariantId, quantity: 1 };
1617
- if (customFields) {
1618
- row.customFields = customFields;
1619
- }
1620
- (_b = this.modifyOrderInput.addItems) === null || _b === void 0 ? void 0 : _b.push(row);
1621
- }
1622
- else {
1623
- row.quantity++;
1624
- }
1625
- if (customFields) {
1626
- const formGroup = new FormGroup({});
1627
- for (const [key, value] of Object.entries(customFields)) {
1628
- formGroup.addControl(key, new FormControl(value));
1629
- }
1630
- this.addItemCustomFieldsFormArray.push(formGroup);
1631
- formGroup.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(value => {
1632
- if (row) {
1633
- row.customFields = value;
1634
- }
1635
- });
1636
- }
1637
- this.addItemCustomFieldsForm.reset({});
1638
- this.addItemSelectedVariant = undefined;
1639
- this.addedVariants.set(result.productVariantId, result);
1640
- }
1641
- isMatchingAddItemRow(row, result, customFields) {
1642
- return (row.productVariantId === result.productVariantId &&
1643
- JSON.stringify(row.customFields) === JSON.stringify(customFields));
1644
- }
1645
- removeAddedItem(index) {
1646
- this.modifyOrderInput.addItems.splice(index, 1);
1647
- if (-1 < index) {
1648
- this.addItemCustomFieldsFormArray.removeAt(index);
1649
- }
1650
- }
1651
- getSurchargePrices(surcharge) {
1652
- const priceWithTax = surcharge.priceIncludesTax
1653
- ? surcharge.price
1654
- : Math.round(surcharge.price * ((100 + (surcharge.taxRate || 0)) / 100));
1655
- const price = surcharge.priceIncludesTax
1656
- ? Math.round(surcharge.price / ((100 + (surcharge.taxRate || 0)) / 100))
1657
- : surcharge.price;
1658
- return {
1659
- price,
1660
- priceWithTax,
1661
- };
1662
- }
1663
- addSurcharge(value) {
1664
- var _a;
1665
- (_a = this.modifyOrderInput.surcharges) === null || _a === void 0 ? void 0 : _a.push(value);
1666
- this.surchargeForm.reset({
1667
- price: 0,
1668
- priceIncludesTax: true,
1669
- taxRate: 0,
1670
- });
1671
- }
1672
- removeSurcharge(index) {
1673
- var _a;
1674
- (_a = this.modifyOrderInput.surcharges) === null || _a === void 0 ? void 0 : _a.splice(index, 1);
1675
- }
1676
- previewAndModify(order) {
1677
- var _a;
1678
- const modifyOrderInput = Object.assign(Object.assign({}, this.modifyOrderInput), { adjustOrderLines: this.modifyOrderInput.adjustOrderLines.map(line => {
1679
- return transformRelationCustomFieldInputs(simpleDeepClone(line), this.orderLineCustomFields);
1680
- }) });
1681
- const input = Object.assign(Object.assign(Object.assign(Object.assign({}, modifyOrderInput), (this.billingAddressForm.dirty ? { updateBillingAddress: this.billingAddressForm.value } : {})), (this.shippingAddressForm.dirty
1682
- ? { updateShippingAddress: this.shippingAddressForm.value }
1683
- : {})), { dryRun: true, couponCodes: this.couponCodesControl.dirty ? this.couponCodesControl.value : undefined, note: (_a = this.note) !== null && _a !== void 0 ? _a : '', options: {
1684
- recalculateShipping: this.recalculateShipping,
1685
- } });
1686
- const originalTotalWithTax = order.totalWithTax;
1687
- this.dataService.order
1688
- .modifyOrder(input)
1689
- .pipe(switchMap(({ modifyOrder }) => {
1690
- switch (modifyOrder.__typename) {
1691
- case 'Order':
1692
- return this.modalService.fromComponent(OrderEditsPreviewDialogComponent, {
1693
- size: 'xl',
1694
- closable: false,
1695
- locals: {
1696
- originalTotalWithTax,
1697
- order: modifyOrder,
1698
- orderLineCustomFields: this.orderLineCustomFields,
1699
- modifyOrderInput: input,
1700
- },
1701
- });
1702
- case 'InsufficientStockError':
1703
- case 'NegativeQuantityError':
1704
- case 'NoChangesSpecifiedError':
1705
- case 'OrderLimitError':
1706
- case 'OrderModificationStateError':
1707
- case 'PaymentMethodMissingError':
1708
- case 'RefundPaymentIdMissingError':
1709
- case 'CouponCodeLimitError':
1710
- case 'CouponCodeExpiredError':
1711
- case 'CouponCodeInvalidError': {
1712
- this.notificationService.error(modifyOrder.message);
1713
- return of(false);
1714
- }
1715
- case null:
1716
- case undefined:
1717
- return of(false);
1718
- default:
1719
- assertNever(modifyOrder);
1720
- }
1721
- }), switchMap(result => {
1722
- if (!result || result.result === OrderEditResultType.Cancel) {
1723
- // re-fetch so that the preview values get overwritten in the cache.
1724
- return this.dataService.order.getOrder(this.id).mapSingle(() => false);
1725
- }
1726
- else {
1727
- // Do the modification
1728
- const wetRunInput = Object.assign(Object.assign({}, input), { dryRun: false });
1729
- if (result.result === OrderEditResultType.Refund) {
1730
- wetRunInput.refund = {
1731
- paymentId: result.refundPaymentId,
1732
- reason: result.refundNote,
1733
- };
1734
- }
1735
- return this.dataService.order.modifyOrder(wetRunInput).pipe(switchMap(({ modifyOrder }) => {
1736
- if (modifyOrder.__typename === 'Order') {
1737
- const priceDelta = modifyOrder.totalWithTax - originalTotalWithTax;
1738
- const nextState = 0 < priceDelta ? 'ArrangingAdditionalPayment' : this.previousState;
1739
- return this.dataService.order
1740
- .transitionToState(order.id, nextState)
1741
- .pipe(mapTo(true));
1742
- }
1743
- else {
1744
- this.notificationService.error(modifyOrder.message);
1745
- return EMPTY;
1746
- }
1747
- }));
1748
- }
1749
- }))
1750
- .subscribe(result => {
1751
- if (result) {
1752
- this.router.navigate(['../'], { relativeTo: this.route });
1753
- }
1754
- });
1755
- }
1756
- addAddressCustomFieldsFormGroup(parentFormGroup, address) {
1757
- var _a;
1758
- if (address && this.addressCustomFields.length) {
1759
- const addressCustomFieldsFormGroup = new FormGroup({});
1760
- for (const customFieldDef of this.addressCustomFields) {
1761
- const name = customFieldDef.name;
1762
- const value = (_a = address.customFields) === null || _a === void 0 ? void 0 : _a[name];
1763
- addressCustomFieldsFormGroup.addControl(name, new FormControl(value));
1764
- }
1765
- parentFormGroup.addControl('customFields', addressCustomFieldsFormGroup);
1766
- }
1767
- }
1768
- setFormValues(entity, languageCode) {
1769
- /* not used */
1770
- }
1771
- }
1772
- OrderEditorComponent.decorators = [
1773
- { type: Component, args: [{
1774
- selector: 'vdr-order-editor',
1775
- template: "<vdr-action-bar *ngIf=\"entity$ | async as order\">\r\n <vdr-ab-left>\r\n <div class=\"flex clr-align-items-center\">\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n <vdr-order-state-label [state]=\"order.state\"></vdr-order-state-label>\r\n </div>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <button class=\"btn btn-secondary\" (click)=\"transitionToPriorState(order)\">\r\n {{ 'order.cancel-modification' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<div *ngIf=\"entity$ | async as order\">\r\n <div class=\"clr-row\">\r\n <div class=\"clr-col-lg-8\">\r\n <table class=\"order-table table\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>{{ 'order.product-name' | translate }}</th>\r\n <th>{{ 'order.product-sku' | translate }}</th>\r\n <th>{{ 'order.unit-price' | translate }}</th>\r\n <th>{{ 'order.quantity' | translate }}</th>\r\n <th *ngIf=\"orderLineCustomFields.length\">{{ 'common.custom-fields' | translate }}</th>\r\n <th>{{ 'order.total' | translate }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"let line of order.lines; let i = index\"\r\n class=\"order-line\"\r\n [class.is-cancelled]=\"line.quantity === 0\"\r\n [class.modified]=\"isLineModified(line)\"\r\n >\r\n <td class=\"align-middle thumb\">\r\n <img\r\n *ngIf=\"line.featuredAsset\"\r\n [src]=\"line.featuredAsset | assetPreview: 'tiny'\"\r\n />\r\n </td>\r\n <td class=\"align-middle name\">{{ line.productVariant.name }}</td>\r\n <td class=\"align-middle sku\">{{ line.productVariant.sku }}</td>\r\n <td class=\"align-middle unit-price\">\r\n {{ line.unitPriceWithTax | localeCurrency: order.currencyCode }}\r\n <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\r\n {{ line.unitPrice | localeCurrency: order.currencyCode }}\r\n </div>\r\n </td>\r\n <td class=\"align-middle quantity\">\r\n <input\r\n type=\"number\"\r\n min=\"0\"\r\n [value]=\"line.quantity\"\r\n (input)=\"updateLineQuantity(line, $event.target.value)\"\r\n />\r\n <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\r\n <vdr-line-fulfillment\r\n [line]=\"line\"\r\n [orderState]=\"order.state\"\r\n ></vdr-line-fulfillment>\r\n </td>\r\n <td *ngIf=\"orderLineCustomFields.length\" class=\"order-line-custom-field align-middle\">\r\n <vdr-tabbed-custom-fields\r\n entityName=\"OrderLine\"\r\n [customFields]=\"orderLineCustomFields\"\r\n [customFieldsFormGroup]=\"orderLineCustomFieldsFormArray.get([i])\"\r\n [compact]=\"true\"\r\n ></vdr-tabbed-custom-fields>\r\n </td>\r\n <td class=\"align-middle total\">\r\n {{ line.linePriceWithTax | localeCurrency: order.currencyCode }}\r\n <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\r\n {{ line.linePrice | localeCurrency: order.currencyCode }}\r\n </div>\r\n </td>\r\n </tr>\r\n <tr\r\n *ngFor=\"let addedLine of addedLines; trackBy: trackByProductVariantId; let i = index\"\r\n class=\"modified\"\r\n >\r\n <td class=\"align-middle thumb\">\r\n <img\r\n *ngIf=\"addedLine.productAsset\"\r\n [src]=\"addedLine.productAsset | assetPreview: 'tiny'\"\r\n />\r\n </td>\r\n <td class=\"align-middle name\">{{ addedLine.productVariantName }}</td>\r\n <td class=\"align-middle sku\">{{ addedLine.sku }}</td>\r\n <td class=\"align-middle unit-price\">\r\n {{ addedLine.priceWithTax | localeCurrency: order.currencyCode }}\r\n <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\r\n {{ addedLine.price | localeCurrency: order.currencyCode }}\r\n </div>\r\n </td>\r\n <td class=\"align-middle quantity\">\r\n <input\r\n type=\"number\"\r\n min=\"0\"\r\n [value]=\"addedLine.quantity\"\r\n (input)=\"updateAddedItemQuantity(addedLine, $event.target.value)\"\r\n />\r\n <button class=\"icon-button\" (click)=\"removeAddedItem(i)\">\r\n <clr-icon shape=\"trash\"></clr-icon>\r\n </button>\r\n </td>\r\n <td *ngIf=\"orderLineCustomFields.length\" class=\"order-line-custom-field align-middle\">\r\n <ng-container *ngFor=\"let customField of orderLineCustomFields\">\r\n <vdr-custom-field-control\r\n [customField]=\"customField\"\r\n [customFieldsFormGroup]=\"addItemCustomFieldsFormArray.get([i])\"\r\n entityName=\"OrderLine\"\r\n [compact]=\"true\"\r\n ></vdr-custom-field-control>\r\n </ng-container>\r\n </td>\r\n <td class=\"align-middle total\">\r\n {{\r\n (addedLine.priceWithTax * addedLine.quantity) / 100\r\n | currency: order.currencyCode\r\n }}\r\n <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\r\n {{\r\n (addedLine.price * addedLine.quantity) / 100\r\n | currency: order.currencyCode\r\n }}\r\n </div>\r\n </td>\r\n </tr>\r\n <tr class=\"surcharge\" *ngFor=\"let surcharge of order.surcharges\">\r\n <td class=\"align-middle name left\" colspan=\"2\">{{ surcharge.description }}</td>\r\n <td class=\"align-middle sku\">{{ surcharge.sku }}</td>\r\n <td class=\"align-middle\"></td>\r\n <td></td>\r\n <td *ngIf=\"orderLineCustomFields.length\"></td>\r\n <td class=\"align-middle total\">\r\n {{ surcharge.priceWithTax | localeCurrency: order.currencyCode }}\r\n <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\r\n {{ surcharge.price | localeCurrency: order.currencyCode }}\r\n </div>\r\n </td>\r\n </tr>\r\n <tr\r\n class=\"surcharge modified\"\r\n *ngFor=\"let surcharge of modifyOrderInput.surcharges; let i = index\"\r\n >\r\n <td class=\"align-middle name left\" colspan=\"2\">\r\n {{ surcharge.description }}\r\n <button class=\"icon-button\" (click)=\"removeSurcharge(i)\">\r\n <clr-icon shape=\"trash\"></clr-icon>\r\n </button>\r\n </td>\r\n <td class=\"align-middle sku\">{{ surcharge.sku }}</td>\r\n <td class=\"align-middle\"></td>\r\n <td></td>\r\n <td *ngIf=\"orderLineCustomFields.length\"></td>\r\n <td class=\"align-middle total\">\r\n <ng-container *ngIf=\"getSurchargePrices(surcharge) as surchargePrice\">\r\n {{ surchargePrice.priceWithTax | localeCurrency: order.currencyCode }}\r\n <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\r\n {{ surchargePrice.price | localeCurrency: order.currencyCode }}\r\n </div>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n <tr class=\"shipping\">\r\n <td class=\"left clr-align-middle\">{{ 'order.shipping' | translate }}</td>\r\n <td class=\"clr-align-middle\">{{ order.shippingLines[0]?.shippingMethod?.name }}</td>\r\n <td colspan=\"3\"></td>\r\n <td *ngIf=\"orderLineCustomFields.length\"></td>\r\n <td class=\"clr-align-middle\">\r\n {{ order.shippingWithTax | localeCurrency: order.currencyCode }}\r\n <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\r\n {{ order.shipping | localeCurrency: order.currencyCode }}\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <h4 class=\"mb2\">{{ 'order.modifications' | translate }}</h4>\r\n <clr-accordion>\r\n <clr-accordion-panel>\r\n <clr-accordion-title>{{ 'order.add-item-to-order' | translate }}</clr-accordion-title>\r\n <clr-accordion-content *clrIfExpanded>\r\n <vdr-product-selector class=\"mb4\" (productSelected)=\"addItemSelectedVariant = $event\">\r\n </vdr-product-selector>\r\n <div *ngIf=\"addItemSelectedVariant\" class=\"flex mb4\">\r\n <img\r\n *ngIf=\"addItemSelectedVariant.productAsset as asset\"\r\n [src]=\"asset | assetPreview: 'tiny'\"\r\n class=\"mr4\"\r\n />\r\n <div>\r\n <strong class=\"mr4\">{{ addItemSelectedVariant.productVariantName }}</strong>\r\n <small>{{ addItemSelectedVariant.sku }}</small>\r\n <div>\r\n {{\r\n getSelectedItemPrice(addItemSelectedVariant)\r\n | localeCurrency: order.currencyCode\r\n }}\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngFor=\"let customField of orderLineCustomFields\">\r\n <vdr-custom-field-control\r\n [readonly]=\"!addItemSelectedVariant\"\r\n [customField]=\"customField\"\r\n [customFieldsFormGroup]=\"addItemCustomFieldsForm\"\r\n entityName=\"OrderLine\"\r\n [compact]=\"true\"\r\n ></vdr-custom-field-control>\r\n </ng-container>\r\n <button\r\n class=\"btn btn-secondary\"\r\n [disabled]=\"!addItemSelectedVariant || addItemCustomFieldsForm.invalid\"\r\n (click)=\"addItemToOrder(addItemSelectedVariant)\"\r\n >\r\n {{ 'order.add-item-to-order' | translate }}\r\n </button>\r\n </clr-accordion-content>\r\n </clr-accordion-panel>\r\n <clr-accordion-panel>\r\n <clr-accordion-title>{{ 'order.set-coupon-codes' | translate }}</clr-accordion-title>\r\n <clr-accordion-content *clrIfExpanded>\r\n <ng-select\r\n [items]=\"availableCouponCodes$ | async\"\r\n appendTo=\"body\"\r\n bindLabel=\"code\"\r\n bindValue=\"code\"\r\n [addTag]=\"false\"\r\n [multiple]=\"true\"\r\n [hideSelected]=\"true\"\r\n [minTermLength]=\"2\"\r\n typeToSearchText=\"\"\r\n [typeahead]=\"couponCodeInput$\"\r\n [formControl]=\"couponCodesControl\"\r\n >\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n <vdr-chip>{{ item.code }}</vdr-chip>\r\n {{ item.promotionName }}\r\n </ng-template>\r\n </ng-select>\r\n </clr-accordion-content>\r\n </clr-accordion-panel>\r\n\r\n <clr-accordion-panel>\r\n <clr-accordion-title>{{ 'order.add-surcharge' | translate }}</clr-accordion-title>\r\n <clr-accordion-content *clrIfExpanded>\r\n <form [formGroup]=\"surchargeForm\" (submit)=\"addSurcharge(surchargeForm.value)\">\r\n <vdr-form-field [label]=\"'common.description' | translate\" for=\"description\"\r\n ><input id=\"description\" type=\"text\" formControlName=\"description\"\r\n /></vdr-form-field>\r\n <vdr-form-field [label]=\"'order.product-sku' | translate\" for=\"sku\"\r\n ><input id=\"sku\" type=\"text\" formControlName=\"sku\"\r\n /></vdr-form-field>\r\n <vdr-form-field [label]=\"'common.price' | translate\" for=\"price\">\r\n <vdr-currency-input\r\n [currencyCode]=\"order.currencyCode\"\r\n id=\"price\"\r\n formControlName=\"price\"\r\n ></vdr-currency-input>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"\r\n 'catalog.price-includes-tax-at'\r\n | translate: { rate: surchargeForm.get('taxRate')?.value }\r\n \"\r\n for=\"priceIncludesTax\"\r\n ><input\r\n id=\"priceIncludesTax\"\r\n type=\"checkbox\"\r\n clrCheckbox\r\n formControlName=\"priceIncludesTax\"\r\n /></vdr-form-field>\r\n <vdr-form-field [label]=\"'order.tax-rate' | translate\" for=\"taxRate\">\r\n <vdr-affixed-input suffix=\"%\"\r\n ><input\r\n id=\"taxRate\"\r\n type=\"number\"\r\n min=\"0\"\r\n max=\"100\"\r\n formControlName=\"taxRate\"\r\n /></vdr-affixed-input>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'order.tax-description' | translate\" for=\"taxDescription\"\r\n ><input id=\"taxDescription\" type=\"text\" formControlName=\"taxDescription\"\r\n /></vdr-form-field>\r\n <button\r\n class=\"btn btn-secondary\"\r\n [disabled]=\"\r\n surchargeForm.invalid ||\r\n surchargeForm.pristine ||\r\n surchargeForm.get('price')?.value === 0\r\n \"\r\n >\r\n {{ 'order.add-surcharge' | translate }}\r\n </button>\r\n </form>\r\n </clr-accordion-content>\r\n </clr-accordion-panel>\r\n <clr-accordion-panel>\r\n <clr-accordion-title>{{ 'order.edit-shipping-address' | translate }}</clr-accordion-title>\r\n <clr-accordion-content *clrIfExpanded>\r\n <vdr-address-form\r\n [formGroup]=\"shippingAddressForm\"\r\n [availableCountries]=\"availableCountries$ | async\"\r\n [customFields]=\"addressCustomFields\"\r\n ></vdr-address-form>\r\n </clr-accordion-content>\r\n </clr-accordion-panel>\r\n <clr-accordion-panel>\r\n <clr-accordion-title>{{ 'order.edit-billing-address' | translate }}</clr-accordion-title>\r\n <clr-accordion-content *clrIfExpanded>\r\n <vdr-address-form\r\n [formGroup]=\"billingAddressForm\"\r\n [availableCountries]=\"availableCountries$ | async\"\r\n [customFields]=\"addressCustomFields\"\r\n ></vdr-address-form>\r\n </clr-accordion-content>\r\n </clr-accordion-panel>\r\n </clr-accordion>\r\n </div>\r\n <div class=\"clr-col-lg-4 order-cards\">\r\n <div class=\"card\">\r\n <div class=\"card-header\">\r\n {{ 'order.modification-summary' | translate }}\r\n </div>\r\n <div class=\"card-block\">\r\n <ul>\r\n <li *ngIf=\"modifyOrderInput.addItems?.length\">\r\n {{\r\n 'order.modification-adding-items'\r\n | translate: { count: modifyOrderInput.addItems?.length }\r\n }}\r\n </li>\r\n <li *ngIf=\"modifyOrderInput.adjustOrderLines?.length\">\r\n {{\r\n 'order.modification-adjusting-lines'\r\n | translate: { count: modifyOrderInput.adjustOrderLines?.length }\r\n }}\r\n </li>\r\n <li *ngIf=\"modifyOrderInput.surcharges?.length\">\r\n {{\r\n 'order.modification-adding-surcharges'\r\n | translate: { count: modifyOrderInput.surcharges?.length }\r\n }}\r\n </li>\r\n <li *ngIf=\"shippingAddressForm.dirty\">\r\n {{ 'order.modification-updating-shipping-address' | translate }}\r\n </li>\r\n <li *ngIf=\"billingAddressForm.dirty\">\r\n {{ 'order.modification-updating-billing-address' | translate }}\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"card-block\">\r\n <label class=\"clr-control-label\">{{ 'order.note' | translate }}</label>\r\n <textarea [(ngModel)]=\"note\" name=\"note\" clrTextarea required></textarea>\r\n <clr-checkbox-wrapper class=\"\">\r\n <input type=\"checkbox\" clrCheckbox [(ngModel)]=\"recalculateShipping\" />\r\n <label>{{ 'order.modification-recalculate-shipping' | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n </div>\r\n <div class=\"card-footer\">\r\n <button\r\n class=\"btn btn-primary\"\r\n [disabled]=\"!canPreviewChanges()\"\r\n (click)=\"previewAndModify(order)\"\r\n >\r\n {{ 'order.preview-changes' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1776
- changeDetection: ChangeDetectionStrategy.OnPush,
1777
- styles: [".order-table .is-cancelled td{text-decoration:line-through;background-color:var(--color-component-bg-200)}.order-table .sub-total td{border-top:1px dashed var(--color-component-border-200)}.order-table .total td{font-weight:bold;border-top:1px dashed var(--color-component-border-200)}.order-table td.custom-fields-row{border-top-style:dashed;border-top-color:var(--color-grey-200)}.order-table .order-line-custom-fields{display:flex;flex-wrap:wrap}.order-table .order-line-custom-fields .custom-field{text-align:start;max-width:200px;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px;margin-right:18px}.order-table .order-line-custom-field{background-color:var(--color-component-bg-100)}.order-table .order-line-custom-field .custom-field-ellipsis{color:var(--color-text-300)}.order-table .net-price{font-size:11px;color:var(--color-text-300)}.order-table .promotions-label{-webkit-text-decoration:underline dotted var(--color-text-200);text-decoration:underline dotted var(--color-text-200);font-size:11px;margin-top:6px;cursor:pointer;text-transform:lowercase}.order-table .thumb img{width:50px;height:50px}.order-table tr.modified td{background-color:var(--color-warning-100)}.order-table .order-line-custom-field{text-align:start}\n"]
1778
- },] }
1779
- ];
1780
- OrderEditorComponent.ctorParameters = () => [
1781
- { type: Router },
1782
- { type: ActivatedRoute },
1783
- { type: ServerConfigService },
1784
- { type: ChangeDetectorRef },
1785
- { type: DataService },
1786
- { type: NotificationService },
1787
- { type: ModalService },
1788
- { type: OrderTransitionService }
1789
- ];
1790
-
1791
- class OrderHistoryComponent {
1792
- constructor() {
1793
- this.addNote = new EventEmitter();
1794
- this.updateNote = new EventEmitter();
1795
- this.deleteNote = new EventEmitter();
1796
- this.note = '';
1797
- this.noteIsPrivate = true;
1798
- this.expanded = false;
1799
- this.type = HistoryEntryType;
1800
- }
1801
- getDisplayType(entry) {
1802
- if (entry.type === HistoryEntryType.ORDER_STATE_TRANSITION) {
1803
- if (entry.data.to === 'Delivered') {
1804
- return 'success';
1805
- }
1806
- if (entry.data.to === 'Cancelled') {
1807
- return 'error';
1808
- }
1809
- }
1810
- if (entry.type === HistoryEntryType.ORDER_FULFILLMENT_TRANSITION) {
1811
- if (entry.data.to === 'Delivered') {
1812
- return 'success';
1813
- }
1814
- }
1815
- if (entry.type === HistoryEntryType.ORDER_PAYMENT_TRANSITION) {
1816
- if (entry.data.to === 'Declined' || entry.data.to === 'Cancelled') {
1817
- return 'error';
1818
- }
1819
- }
1820
- if (entry.type === HistoryEntryType.ORDER_CANCELLATION) {
1821
- return 'error';
1822
- }
1823
- if (entry.type === HistoryEntryType.ORDER_REFUND_TRANSITION) {
1824
- return 'warning';
1825
- }
1826
- return 'default';
1827
- }
1828
- getTimelineIcon(entry) {
1829
- if (entry.type === HistoryEntryType.ORDER_STATE_TRANSITION) {
1830
- if (entry.data.to === 'Delivered') {
1831
- return ['success-standard', 'is-solid'];
1832
- }
1833
- if (entry.data.to === 'Cancelled') {
1834
- return 'ban';
1835
- }
1836
- }
1837
- if (entry.type === HistoryEntryType.ORDER_PAYMENT_TRANSITION) {
1838
- if (entry.data.to === 'Settled') {
1839
- return 'credit-card';
1840
- }
1841
- }
1842
- if (entry.type === HistoryEntryType.ORDER_NOTE) {
1843
- return 'note';
1844
- }
1845
- if (entry.type === HistoryEntryType.ORDER_MODIFIED) {
1846
- return 'pencil';
1847
- }
1848
- if (entry.type === HistoryEntryType.ORDER_FULFILLMENT_TRANSITION) {
1849
- if (entry.data.to === 'Shipped') {
1850
- return 'truck';
1851
- }
1852
- if (entry.data.to === 'Delivered') {
1853
- return 'truck';
1854
- }
1855
- }
1856
- }
1857
- isFeatured(entry) {
1858
- switch (entry.type) {
1859
- case HistoryEntryType.ORDER_STATE_TRANSITION: {
1860
- return (entry.data.to === 'Delivered' ||
1861
- entry.data.to === 'Cancelled' ||
1862
- entry.data.to === 'Settled');
1863
- }
1864
- case HistoryEntryType.ORDER_PAYMENT_TRANSITION:
1865
- return entry.data.to === 'Settled' || entry.data.to === 'Cancelled';
1866
- case HistoryEntryType.ORDER_FULFILLMENT_TRANSITION:
1867
- return entry.data.to === 'Delivered' || entry.data.to === 'Shipped';
1868
- case HistoryEntryType.ORDER_NOTE:
1869
- case HistoryEntryType.ORDER_MODIFIED:
1870
- return true;
1871
- default:
1872
- return false;
1873
- }
1874
- }
1875
- getFulfillment(entry) {
1876
- if ((entry.type === HistoryEntryType.ORDER_FULFILLMENT ||
1877
- entry.type === HistoryEntryType.ORDER_FULFILLMENT_TRANSITION) &&
1878
- this.order.fulfillments) {
1879
- return this.order.fulfillments.find(f => f.id === entry.data.fulfillmentId);
1880
- }
1881
- }
1882
- getPayment(entry) {
1883
- if (entry.type === HistoryEntryType.ORDER_PAYMENT_TRANSITION && this.order.payments) {
1884
- return this.order.payments.find(p => p.id === entry.data.paymentId);
1885
- }
1886
- }
1887
- getCancelledItems(entry) {
1888
- const itemMap = new Map();
1889
- const cancelledItemIds = entry.data.orderItemIds;
1890
- for (const line of this.order.lines) {
1891
- for (const item of line.items) {
1892
- if (cancelledItemIds.includes(item.id)) {
1893
- const count = itemMap.get(line.productVariant.name);
1894
- if (count != null) {
1895
- itemMap.set(line.productVariant.name, count + 1);
1896
- }
1897
- else {
1898
- itemMap.set(line.productVariant.name, 1);
1899
- }
1900
- }
1901
- }
1902
- }
1903
- return Array.from(itemMap.entries()).map(([name, quantity]) => ({ name, quantity }));
1904
- }
1905
- getModification(id) {
1906
- return this.order.modifications.find(m => m.id === id);
1907
- }
1908
- getName(entry) {
1909
- const { administrator } = entry;
1910
- if (administrator) {
1911
- return `${administrator.firstName} ${administrator.lastName}`;
1912
- }
1913
- else {
1914
- const customer = this.order.customer;
1915
- if (customer) {
1916
- return `${customer.firstName} ${customer.lastName}`;
1917
- }
1918
- }
1919
- return '';
1920
- }
1921
- addNoteToOrder() {
1922
- this.addNote.emit({ note: this.note, isPublic: !this.noteIsPrivate });
1923
- this.note = '';
1924
- this.noteIsPrivate = true;
1925
- }
1926
- }
1927
- OrderHistoryComponent.decorators = [
1928
- { type: Component, args: [{
1929
- selector: 'vdr-order-history',
1930
- template: "<h4>{{ 'order.order-history' | translate }}</h4>\r\n<div class=\"entry-list\" [class.expanded]=\"expanded\">\r\n <vdr-timeline-entry iconShape=\"note\" displayType=\"muted\" [featured]=\"true\">\r\n <div class=\"note-entry\">\r\n <textarea [(ngModel)]=\"note\" name=\"note\" class=\"note\"></textarea>\r\n <button class=\"btn btn-secondary\" [disabled]=\"!note\" (click)=\"addNoteToOrder()\">\r\n {{ 'common.add-note' | translate }}\r\n </button>\r\n </div>\r\n <div class=\"visibility-select\">\r\n <clr-checkbox-wrapper>\r\n <input type=\"checkbox\" clrCheckbox [(ngModel)]=\"noteIsPrivate\" />\r\n <label>{{ 'order.note-is-private' | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n <span *ngIf=\"noteIsPrivate\" class=\"private\">\r\n {{ 'order.note-only-visible-to-administrators' | translate }}\r\n </span>\r\n <span *ngIf=\"!noteIsPrivate\" class=\"public\">\r\n {{ 'order.note-visible-to-customer' | translate }}\r\n </span>\r\n </div>\r\n </vdr-timeline-entry>\r\n <vdr-timeline-entry\r\n *ngFor=\"let entry of history\"\r\n [displayType]=\"getDisplayType(entry)\"\r\n [iconShape]=\"getTimelineIcon(entry)\"\r\n [createdAt]=\"entry.createdAt\"\r\n [name]=\"getName(entry)\"\r\n [featured]=\"isFeatured(entry)\"\r\n [collapsed]=\"!expanded && !isFeatured(entry)\"\r\n (expandClick)=\"expanded = !expanded\"\r\n >\r\n <ng-container [ngSwitch]=\"entry.type\">\r\n <ng-container *ngSwitchCase=\"type.ORDER_STATE_TRANSITION\">\r\n <div class=\"title\" *ngIf=\"entry.data.to === 'Delivered'\">\r\n {{ 'order.history-order-fulfilled' | translate }}\r\n </div>\r\n <div class=\"title\" *ngIf=\"entry.data.to === 'Cancelled'\">\r\n {{ 'order.history-order-cancelled' | translate }}\r\n </div>\r\n <ng-template [ngIf]=\"entry.data.to !== 'Cancelled' && entry.data.to !== 'Delivered'\">\r\n {{\r\n 'order.history-order-transition'\r\n | translate: { from: entry.data.from, to: entry.data.to }\r\n }}\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_MODIFIED\">\r\n <div class=\"title\">\r\n {{ 'order.history-order-modified' | translate }}\r\n </div>\r\n <ng-container *ngIf=\"getModification(entry.data.modificationId) as modification\">\r\n {{ 'order.modify-order-price-difference' | translate }}:\r\n <strong>{{ modification.priceChange | localeCurrency: order.currencyCode }}</strong>\r\n <vdr-chip colorType=\"success\" *ngIf=\"modification.isSettled\">{{\r\n 'order.modification-settled' | translate\r\n }}</vdr-chip>\r\n <vdr-chip colorType=\"error\" *ngIf=\"!modification.isSettled\">{{\r\n 'order.modification-not-settled' | translate\r\n }}</vdr-chip>\r\n <vdr-history-entry-detail>\r\n <vdr-modification-detail\r\n [order]=\"order\"\r\n [modification]=\"modification\"\r\n ></vdr-modification-detail>\r\n </vdr-history-entry-detail>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_PAYMENT_TRANSITION\">\r\n <ng-container *ngIf=\"entry.data.to === 'Settled'; else regularPaymentTransition\">\r\n <div class=\"title\">\r\n {{ 'order.history-payment-settled' | translate }}\r\n </div>\r\n {{ 'order.transaction-id' | translate }}: {{ getPayment(entry)?.transactionId }}\r\n <vdr-history-entry-detail *ngIf=\"getPayment(entry) as payment\">\r\n <vdr-payment-detail\r\n [payment]=\"payment\"\r\n [currencyCode]=\"order.currencyCode\"\r\n ></vdr-payment-detail>\r\n </vdr-history-entry-detail>\r\n </ng-container>\r\n <ng-template #regularPaymentTransition>\r\n {{\r\n 'order.history-payment-transition'\r\n | translate\r\n : {\r\n from: entry.data.from,\r\n to: entry.data.to,\r\n id: getPayment(entry)?.transactionId\r\n }\r\n }}\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_REFUND_TRANSITION\">\r\n {{\r\n 'order.history-refund-transition'\r\n | translate: { from: entry.data.from, to: entry.data.to, id: entry.data.refundId }\r\n }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_CANCELLATION\">\r\n {{ 'order.history-items-cancelled' | translate: { count: entry.data.orderItemIds.length } }}\r\n <vdr-history-entry-detail *ngIf=\"getCancelledItems(entry) as items\">\r\n <vdr-labeled-data [label]=\"'order.cancellation-reason' | translate\">\r\n {{ entry.data.reason }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.contents' | translate\">\r\n <vdr-simple-item-list [items]=\"items\"></vdr-simple-item-list>\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.shipping-cancelled' | translate\">\r\n {{ entry.data.shippingCancelled }}\r\n </vdr-labeled-data>\r\n </vdr-history-entry-detail>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_FULFILLMENT\">\r\n {{ 'order.history-fulfillment-created' | translate }}\r\n <vdr-history-entry-detail *ngIf=\"getFulfillment(entry) as fulfillment\">\r\n <vdr-fulfillment-detail\r\n [fulfillmentId]=\"fulfillment.id\"\r\n [order]=\"order\"\r\n ></vdr-fulfillment-detail>\r\n </vdr-history-entry-detail>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_FULFILLMENT_TRANSITION\">\r\n <ng-container *ngIf=\"entry.data.to === 'Delivered'\">\r\n <div class=\"title\">\r\n {{ 'order.history-fulfillment-delivered' | translate }}\r\n </div>\r\n {{ 'order.tracking-code' | translate }}: {{ getFulfillment(entry)?.trackingCode }}\r\n </ng-container>\r\n <ng-container *ngIf=\"entry.data.to === 'Shipped'\">\r\n <div class=\"title\">\r\n {{ 'order.history-fulfillment-shipped' | translate }}\r\n </div>\r\n {{ 'order.tracking-code' | translate }}: {{ getFulfillment(entry)?.trackingCode }}\r\n </ng-container>\r\n <ng-container *ngIf=\"entry.data.to !== 'Delivered' && entry.data.to !== 'Shipped'\">\r\n {{\r\n 'order.history-fulfillment-transition'\r\n | translate: { from: entry.data.from, to: entry.data.to }\r\n }}\r\n </ng-container>\r\n <vdr-history-entry-detail *ngIf=\"getFulfillment(entry) as fulfillment\">\r\n <vdr-fulfillment-detail\r\n [fulfillmentId]=\"fulfillment.id\"\r\n [order]=\"order\"\r\n ></vdr-fulfillment-detail>\r\n </vdr-history-entry-detail>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_NOTE\">\r\n <div class=\"flex\">\r\n <div class=\"note-text\">\r\n <span *ngIf=\"entry.isPublic\" class=\"note-visibility public\">{{\r\n 'common.public' | translate\r\n }}</span>\r\n <span *ngIf=\"!entry.isPublic\" class=\"note-visibility private\">{{\r\n 'common.private' | translate\r\n }}</span>\r\n {{ entry.data.note }}\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n class=\"button\"\r\n vdrDropdownItem\r\n (click)=\"updateNote.emit(entry)\"\r\n [disabled]=\"!('UpdateOrder' | hasPermission)\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n class=\"button\"\r\n vdrDropdownItem\r\n (click)=\"deleteNote.emit(entry)\"\r\n [disabled]=\"!('UpdateOrder' | hasPermission)\"\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 </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_COUPON_APPLIED\">\r\n {{ 'order.history-coupon-code-applied' | translate }}:\r\n <vdr-chip>\r\n <a [routerLink]=\"['/marketing', 'promotions', entry.data.promotionId]\">{{\r\n entry.data.couponCode\r\n }}</a>\r\n </vdr-chip>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"type.ORDER_COUPON_REMOVED\">\r\n {{ 'order.history-coupon-code-removed' | translate }}:\r\n <vdr-chip\r\n ><span class=\"cancelled-coupon-code\">{{ entry.data.couponCode }}</span></vdr-chip\r\n >\r\n </ng-container>\r\n </ng-container>\r\n </vdr-timeline-entry>\r\n <vdr-timeline-entry [isLast]=\"true\" [createdAt]=\"order.createdAt\" [featured]=\"true\">\r\n <div class=\"title\">\r\n {{ 'order.history-order-created' | translate }}\r\n </div>\r\n </vdr-timeline-entry>\r\n</div>\r\n",
1931
- changeDetection: ChangeDetectionStrategy.OnPush,
1932
- styles: [":host{margin-top:48px;display:block}.entry-list{margin-top:24px;margin-left:24px;margin-right:12px}.note-entry{display:flex;align-items:center}.note-entry .note{flex:1}.note-entry button{margin:0}.visibility-select{display:flex;justify-content:space-between;align-items:baseline}.visibility-select .public{color:var(--color-warning-500)}.visibility-select .private{color:var(--color-success-500)}textarea.note{flex:1;height:36px;border-radius:3px;margin-right:6px}.note-text{color:var(--color-grey-800);white-space:pre-wrap}.cancelled-coupon-code{text-decoration:line-through}.note-visibility{text-transform:lowercase}.note-visibility.public{color:var(--color-warning-500)}.note-visibility.private{color:var(--color-success-500)}\n"]
1933
- },] }
1934
- ];
1935
- OrderHistoryComponent.propDecorators = {
1936
- order: [{ type: Input }],
1937
- history: [{ type: Input }],
1938
- addNote: [{ type: Output }],
1939
- updateNote: [{ type: Output }],
1940
- deleteNote: [{ type: Output }]
1941
- };
1942
-
1943
- class OrderListComponent extends BaseListComponent {
1944
- constructor(serverConfigService, dataService, localStorageService, router, route) {
1945
- super(router, route);
1946
- this.serverConfigService = serverConfigService;
1947
- this.dataService = dataService;
1948
- this.localStorageService = localStorageService;
1949
- this.searchControl = new FormControl('');
1950
- this.searchOrderCodeControl = new FormControl('');
1951
- this.searchLastNameControl = new FormControl('');
1952
- this.orderStates = this.serverConfigService.getOrderProcessStates().map(item => item.name);
1953
- this.filterPresets = [
1954
- {
1955
- name: 'open',
1956
- label: marker('order.filter-preset-open'),
1957
- config: {
1958
- active: false,
1959
- states: this.orderStates.filter(s => s !== 'Delivered' && s !== 'Cancelled' && s !== 'Shipped'),
1960
- },
1961
- },
1962
- {
1963
- name: 'shipped',
1964
- label: marker('order.filter-preset-shipped'),
1965
- config: {
1966
- active: false,
1967
- states: ['Shipped'],
1968
- },
1969
- },
1970
- {
1971
- name: 'completed',
1972
- label: marker('order.filter-preset-completed'),
1973
- config: {
1974
- active: false,
1975
- states: ['Delivered', 'Cancelled'],
1976
- },
1977
- },
1978
- {
1979
- name: 'active',
1980
- label: marker('order.filter-preset-active'),
1981
- config: {
1982
- active: true,
1983
- },
1984
- },
1985
- ];
1986
- super.setQueryFn(
1987
- // tslint:disable-next-line:no-shadowed-variable
1988
- (take, skip) => this.dataService.order.getOrders({ take, skip }).refetchOnChannelChange(), data => data.orders,
1989
- // tslint:disable-next-line:no-shadowed-variable
1990
- (skip, take) => this.createQueryOptions(skip, take, this.searchControl.value, this.route.snapshot.queryParamMap.get('filter') || 'open'));
1991
- const lastFilters = this.localStorageService.get('orderListLastCustomFilters');
1992
- if (lastFilters) {
1993
- this.setQueryParam(lastFilters, { replaceUrl: true });
1994
- }
1995
- }
1996
- ngOnInit() {
1997
- var _a;
1998
- super.ngOnInit();
1999
- this.activePreset$ = this.route.queryParamMap.pipe(map(qpm => qpm.get('filter') || 'open'), distinctUntilChanged());
2000
- const searchTerms$ = merge(this.searchControl.valueChanges).pipe(filter(value => 2 < value.length || value.length === 0), debounceTime(250));
2001
- merge(searchTerms$, this.route.queryParamMap)
2002
- .pipe(takeUntil(this.destroy$))
2003
- .subscribe(val => {
2004
- this.refresh();
2005
- });
2006
- const queryParamMap = this.route.snapshot.queryParamMap;
2007
- this.customFilterForm = new FormGroup({
2008
- states: new FormControl((_a = queryParamMap.getAll('states')) !== null && _a !== void 0 ? _a : []),
2009
- placedAtStart: new FormControl(queryParamMap.get('placedAtStart')),
2010
- placedAtEnd: new FormControl(queryParamMap.get('placedAtEnd')),
2011
- });
2012
- }
2013
- selectFilterPreset(presetName) {
2014
- var _a;
2015
- const lastCustomFilters = (_a = this.localStorageService.get('orderListLastCustomFilters')) !== null && _a !== void 0 ? _a : {};
2016
- const emptyCustomFilters = { states: undefined, placedAtStart: undefined, placedAtEnd: undefined };
2017
- const filters = presetName === 'custom' ? lastCustomFilters : emptyCustomFilters;
2018
- this.setQueryParam(Object.assign({ filter: presetName, page: 1 }, filters), { replaceUrl: true });
2019
- }
2020
- applyCustomFilters() {
2021
- const formValue = this.customFilterForm.value;
2022
- const customFilters = {
2023
- states: formValue.states,
2024
- placedAtStart: formValue.placedAtStart,
2025
- placedAtEnd: formValue.placedAtEnd,
2026
- };
2027
- this.setQueryParam(Object.assign({ filter: 'custom' }, customFilters));
2028
- this.customFilterForm.markAsPristine();
2029
- this.localStorageService.set('orderListLastCustomFilters', customFilters);
2030
- }
2031
- createQueryOptions(
2032
- // tslint:disable-next-line:no-shadowed-variable
2033
- skip, take, searchTerm, activeFilterPreset) {
2034
- var _a;
2035
- const filterConfig = this.filterPresets.find(p => p.name === activeFilterPreset);
2036
- // tslint:disable-next-line:no-shadowed-variable
2037
- let filter = {};
2038
- let filterOperator = LogicalOperator.AND;
2039
- if (filterConfig) {
2040
- if (filterConfig.config.active != null) {
2041
- filter.active = {
2042
- eq: filterConfig.config.active,
2043
- };
2044
- }
2045
- if (filterConfig.config.states) {
2046
- filter.state = {
2047
- in: filterConfig.config.states,
2048
- };
2049
- }
2050
- }
2051
- else if (activeFilterPreset === 'custom') {
2052
- const queryParams = this.route.snapshot.queryParamMap;
2053
- const states = (_a = queryParams.getAll('states')) !== null && _a !== void 0 ? _a : [];
2054
- const placedAtStart = queryParams.get('placedAtStart');
2055
- const placedAtEnd = queryParams.get('placedAtEnd');
2056
- if (states.length) {
2057
- filter.state = {
2058
- in: states,
2059
- };
2060
- }
2061
- if (placedAtStart && placedAtEnd) {
2062
- filter.orderPlacedAt = {
2063
- between: {
2064
- start: placedAtStart,
2065
- end: placedAtEnd,
2066
- },
2067
- };
2068
- }
2069
- else if (placedAtStart) {
2070
- filter.orderPlacedAt = {
2071
- after: placedAtStart,
2072
- };
2073
- }
2074
- else if (placedAtEnd) {
2075
- filter.orderPlacedAt = {
2076
- before: placedAtEnd,
2077
- };
2078
- }
2079
- }
2080
- if (searchTerm) {
2081
- filter = {
2082
- customerLastName: {
2083
- contains: searchTerm,
2084
- },
2085
- transactionId: {
2086
- contains: searchTerm,
2087
- },
2088
- code: {
2089
- contains: searchTerm,
2090
- },
2091
- };
2092
- filterOperator = LogicalOperator.OR;
2093
- }
2094
- return {
2095
- options: {
2096
- skip,
2097
- take,
2098
- filter: Object.assign({}, (filter !== null && filter !== void 0 ? filter : {})),
2099
- sort: {
2100
- updatedAt: SortOrder.DESC,
2101
- },
2102
- filterOperator,
2103
- },
2104
- };
2105
- }
2106
- getShippingNames(order) {
2107
- if (order.shippingLines.length) {
2108
- return order.shippingLines.map(shippingLine => shippingLine.shippingMethod.name).join(', ');
2109
- }
2110
- else {
2111
- return '';
2112
- }
2113
- }
2114
- }
2115
- OrderListComponent.decorators = [
2116
- { type: Component, args: [{
2117
- selector: 'vdr-order-list',
2118
- template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <div class=\"search-form\">\r\n <div class=\"btn-group btn-outline-primary\" *ngIf=\"activePreset$ | async as activePreset\">\r\n <button\r\n class=\"btn\"\r\n *ngFor=\"let preset of filterPresets\"\r\n [class.btn-primary]=\"activePreset === preset.name\"\r\n (click)=\"selectFilterPreset(preset.name)\"\r\n >\r\n {{ preset.label | translate }}\r\n </button>\r\n <button\r\n class=\"btn\"\r\n [class.btn-primary]=\"activePreset === 'custom'\"\r\n (click)=\"selectFilterPreset('custom')\"\r\n >\r\n {{ 'order.filter-custom' | translate }}\r\n <clr-icon shape=\"angle down\"></clr-icon>\r\n </button>\r\n </div>\r\n <input\r\n type=\"text\"\r\n name=\"searchTerm\"\r\n [formControl]=\"searchControl\"\r\n [placeholder]=\"'order.search-by-order-filters' | translate\"\r\n class=\"search-input\"\r\n />\r\n </div>\r\n <div class=\"custom-filters\" [class.expanded]=\"(activePreset$ | async) === 'custom'\">\r\n <form [formGroup]=\"customFilterForm\">\r\n <div class=\"flex align-center\">\r\n <ng-select\r\n [items]=\"orderStates\"\r\n appendTo=\"body\"\r\n [addTag]=\"false\"\r\n [multiple]=\"true\"\r\n formControlName=\"states\"\r\n [placeholder]=\"'state.all-orders' | translate\"\r\n [clearable]=\"true\"\r\n [searchable]=\"false\"\r\n >\r\n <ng-template ng-option-tmp let-item=\"item\">{{ item | stateI18nToken | translate }}</ng-template>\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <span class=\"ng-value-label\"> {{ item | stateI18nToken | translate }}</span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\" aria-hidden=\"true\">\u00D7</span>\r\n </ng-template>\r\n </ng-select>\r\n <button\r\n class=\"btn btn-secondary\"\r\n [disabled]=\"customFilterForm.pristine\"\r\n (click)=\"applyCustomFilters()\"\r\n >\r\n {{ 'order.apply-filters' | translate }}\r\n <clr-icon shape=\"filter\"></clr-icon>\r\n </button>\r\n </div>\r\n <div class=\"flex\">\r\n <div>\r\n <label>{{ 'order.placed-at-start' | translate }}</label>\r\n <vdr-datetime-picker formControlName=\"placedAtStart\"></vdr-datetime-picker>\r\n </div>\r\n <div>\r\n <label>{{ 'order.placed-at-end' | translate }}</label>\r\n <vdr-datetime-picker formControlName=\"placedAtEnd\"></vdr-datetime-picker>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"order-list\"></vdr-action-bar-items>\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.code' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'order.customer' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'order.state' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'order.total' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'common.updated-at' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'order.placed-at' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'order.shipping' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-order=\"item\">\r\n <td class=\"left align-middle\">{{ order.code }}</td>\r\n <td class=\"left align-middle\">\r\n <vdr-customer-label [customer]=\"order.customer\"></vdr-customer-label>\r\n </td>\r\n <td class=\"left align-middle\">\r\n <vdr-order-state-label [state]=\"order.state\"></vdr-order-state-label>\r\n </td>\r\n <td class=\"left align-middle\">{{ order.totalWithTax | localeCurrency: order.currencyCode }}</td>\r\n <td class=\"left align-middle\">{{ order.updatedAt | timeAgo }}</td>\r\n <td class=\"left align-middle\">{{ order.orderPlacedAt | localeDate: 'medium' }}</td>\r\n <td class=\"left align-middle\">{{ getShippingNames(order) }}</td>\r\n <td class=\"right align-middle\">\r\n <vdr-table-row-action\r\n iconShape=\"shopping-cart\"\r\n [label]=\"'common.open' | translate\"\r\n [linkTo]=\"order.state === 'Modifying' ? ['./', order.id, 'modify'] : ['./', order.id]\"\r\n ></vdr-table-row-action>\r\n </td>\r\n </ng-template>\r\n</vdr-data-table>\r\n",
2119
- changeDetection: ChangeDetectionStrategy.OnPush,
2120
- styles: [".search-form{display:flex;flex-direction:column;align-items:baseline;width:100%;margin-bottom:6px}@media screen and (min-width: 768px){.search-form{flex-direction:row}}.search-input{margin-left:6px;margin-top:6px;min-width:300px}.custom-filters{overflow:hidden;max-height:0;padding-bottom:6px}.custom-filters.expanded{max-height:initial}.custom-filters>form{display:flex;flex-direction:column;align-items:center}.custom-filters>form>div{width:100%}ng-select{flex:1;min-width:200px;height:36px}ng-select ::ng-deep .ng-select-container{height:36px}\n"]
2121
- },] }
2122
- ];
2123
- OrderListComponent.ctorParameters = () => [
2124
- { type: ServerConfigService },
2125
- { type: DataService },
2126
- { type: LocalStorageService },
2127
- { type: Router },
2128
- { type: ActivatedRoute }
2129
- ];
2130
-
2131
- class OrderPaymentCardComponent {
2132
- constructor() {
2133
- this.settlePayment = new EventEmitter();
2134
- this.transitionPaymentState = new EventEmitter();
2135
- this.settleRefund = new EventEmitter();
2136
- }
2137
- refundHasMetadata(refund) {
2138
- return !!refund && Object.keys(refund.metadata).length > 0;
2139
- }
2140
- nextOtherStates() {
2141
- if (!this.payment) {
2142
- return [];
2143
- }
2144
- return this.payment.nextStates.filter(s => s !== 'Settled' && s !== 'Error');
2145
- }
2146
- }
2147
- OrderPaymentCardComponent.decorators = [
2148
- { type: Component, args: [{
2149
- selector: 'vdr-order-payment-card',
2150
- template: "<div class=\"card\">\r\n <div class=\"card-header payment-header\">\r\n <div>\r\n {{ 'order.payment' | translate }}\r\n <ng-container *ngIf=\"payment.transactionId\">#{{ payment.transactionId }}</ng-container>\r\n </div>\r\n <div class=\"payment-state\">\r\n <vdr-payment-state-label [state]=\"payment.state\"></vdr-payment-state-label>\r\n </div>\r\n </div>\r\n <div class=\"card-block\">\r\n <vdr-payment-detail [payment]=\"payment\" [currencyCode]=\"currencyCode\"></vdr-payment-detail>\r\n </div>\r\n <ng-container *ngFor=\"let refund of payment.refunds\">\r\n <div class=\"card-header payment-header\">\r\n <clr-icon shape=\"redo\" class=\"refund-icon\" dir=\"down\"></clr-icon>\r\n {{ 'order.refund' | translate }} #{{ refund.id }}\r\n <div class=\"clr-flex-fill\"></div>\r\n <vdr-refund-state-label [state]=\"refund.state\"></vdr-refund-state-label>\r\n </div>\r\n <div class=\"card-block\">\r\n <vdr-labeled-data [label]=\"'common.created-at' | translate\">\r\n {{ refund.createdAt | localeDate: 'medium' }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.refund-total' | translate\">\r\n {{ refund.total | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.transaction-id' | translate\" *ngIf=\"refund.transactionId\">\r\n {{ refund.transactionId }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.refund-reason' | translate\" *ngIf=\"refund.reason\">\r\n {{ refund.reason }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.refund-metadata' | translate\" *ngIf=\"refundHasMetadata(refund)\">\r\n <vdr-object-tree [value]=\"refund.metadata\"></vdr-object-tree>\r\n </vdr-labeled-data>\r\n </div>\r\n <div class=\"card-footer\" *ngIf=\"refund.state === 'Pending'\">\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"settleRefund.emit(refund)\">\r\n {{ 'order.settle-refund' | translate }}\r\n </button>\r\n </div>\r\n </ng-container>\r\n <div class=\"card-footer\" *ngIf=\"payment.nextStates.length\">\r\n <button\r\n class=\"btn btn-sm btn-primary\"\r\n *ngIf=\"payment.nextStates.includes('Settled')\"\r\n (click)=\"settlePayment.emit(payment)\"\r\n >\r\n {{ 'order.settle-payment' | translate }}\r\n </button>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <ng-container *ngFor=\"let nextState of nextOtherStates()\">\r\n <button\r\n type=\"button\"\r\n class=\"btn\"\r\n vdrDropdownItem\r\n (click)=\"transitionPaymentState.emit({ payment: payment, state: nextState })\"\r\n >\r\n <ng-container *ngIf=\"nextState !== 'Cancelled'; else cancel\">\r\n <clr-icon shape=\"step-forward-2\"></clr-icon>\r\n {{\r\n 'order.transition-to-state'\r\n | translate: { state: (nextState | stateI18nToken | translate) }\r\n }}\r\n </ng-container>\r\n <ng-template #cancel>\r\n <clr-icon shape=\"error-standard\" class=\"is-error\"></clr-icon>\r\n {{ 'order.cancel-payment' | translate }}\r\n </ng-template>\r\n </button>\r\n </ng-container>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n</div>\r\n",
2151
- changeDetection: ChangeDetectionStrategy.OnPush,
2152
- styles: [".payment-header{display:flex;justify-content:space-between;align-items:center}.refund-icon{margin-right:6px;color:var(--color-grey-400)}.card-footer{display:flex;align-items:center;justify-content:flex-end}\n"]
2153
- },] }
2154
- ];
2155
- OrderPaymentCardComponent.propDecorators = {
2156
- payment: [{ type: Input }],
2157
- currencyCode: [{ type: Input }],
2158
- settlePayment: [{ type: Output }],
2159
- transitionPaymentState: [{ type: Output }],
2160
- settleRefund: [{ type: Output }]
2161
- };
2162
-
2163
- const NODE_HEIGHT = 72;
2164
-
2165
- class OrderProcessEdgeComponent {
2166
- ngOnInit() {
2167
- this.active$ = this.from.active$
2168
- .asObservable()
2169
- .pipe(tap((active) => this.to.activeTarget$.next(active)));
2170
- }
2171
- getStyle() {
2172
- const direction = this.from.index < this.to.index ? 'down' : 'up';
2173
- const startPos = this.from.getPos(direction === 'down' ? 'bottom' : 'top');
2174
- const endPos = this.to.getPos(direction === 'down' ? 'top' : 'bottom');
2175
- const dX = Math.abs(startPos.x - endPos.x);
2176
- const dY = Math.abs(startPos.y - endPos.y);
2177
- const length = Math.sqrt(Math.pow(dX, 2) + Math.pow(dY, 2));
2178
- return Object.assign({ 'top.px': startPos.y, 'left.px': startPos.x + (direction === 'down' ? 10 : 40) + this.index * 12, 'height.px': length, 'width.px': 1 }, (direction === 'up'
2179
- ? {
2180
- transform: 'rotateZ(180deg)',
2181
- 'transform-origin': 'top',
2182
- }
2183
- : {}));
2184
- }
2185
- }
2186
- OrderProcessEdgeComponent.decorators = [
2187
- { type: Component, args: [{
2188
- selector: 'vdr-order-process-edge',
2189
- template: "<div\r\n [attr.data-from]=\"from.node.name\"\r\n [attr.data-to]=\"to.node.name\"\r\n [ngStyle]=\"getStyle()\"\r\n [class.active]=\"active$ | async\"\r\n class=\"edge\">\r\n <clr-icon shape=\"arrow\" flip=\"vertical\" class=\"arrow\"></clr-icon>\r\n</div>\r\n",
2190
- changeDetection: ChangeDetectionStrategy.OnPush,
2191
- styles: [".edge{position:absolute;border:1px solid var(--color-component-border-200);background-color:var(--color-component-bg-300);opacity:.3;transition:border .2s,opacity .2s,background-color .2s}.edge.active{border-color:var(--color-primary-500);background-color:var(--color-primary-500);opacity:1}.edge.active .arrow{color:var(--color-primary-500)}.edge .arrow{position:absolute;bottom:-4px;left:-8px;color:var(--color-grey-300)}\n"]
2192
- },] }
2193
- ];
2194
- OrderProcessEdgeComponent.propDecorators = {
2195
- from: [{ type: Input }],
2196
- to: [{ type: Input }],
2197
- index: [{ type: Input }]
2198
- };
2199
-
2200
- class OrderProcessNodeComponent {
2201
- constructor(elementRef) {
2202
- this.elementRef = elementRef;
2203
- this.active$ = new BehaviorSubject(false);
2204
- this.activeTarget$ = new BehaviorSubject(false);
2205
- this.isCancellable = false;
2206
- // We use a class field here to prevent the
2207
- // i18n extractor from extracting a "Cancelled" key
2208
- this.cancelledState = 'Cancelled';
2209
- }
2210
- ngOnChanges(changes) {
2211
- this.isCancellable = !!this.node.to.find((s) => s.name === 'Cancelled');
2212
- if (changes.active) {
2213
- this.active$.next(this.active);
2214
- }
2215
- }
2216
- getPos(origin = 'top') {
2217
- var _a, _b;
2218
- const rect = this.elementRef.nativeElement.getBoundingClientRect();
2219
- const nodeHeight = (_b = (_a = this.elementRef.nativeElement.querySelector('.node')) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().height) !== null && _b !== void 0 ? _b : 0;
2220
- return {
2221
- x: 10,
2222
- y: this.index * NODE_HEIGHT + (origin === 'bottom' ? nodeHeight : 0),
2223
- };
2224
- }
2225
- getStyle() {
2226
- const pos = this.getPos();
2227
- return {
2228
- 'top.px': pos.y,
2229
- 'left.px': pos.x,
2230
- };
2231
- }
2232
- }
2233
- OrderProcessNodeComponent.decorators = [
2234
- { type: Component, args: [{
2235
- selector: 'vdr-order-process-node',
2236
- template: "<div class=\"node-wrapper\" [ngStyle]=\"getStyle()\" [class.active]=\"active$ | async\">\r\n <div\r\n class=\"node\"\r\n [class.active-target]=\"activeTarget$ | async\"\r\n >\r\n {{ node.name | stateI18nToken | translate }}\r\n </div>\r\n <div class=\"cancelled-wrapper\" *ngIf=\"isCancellable\">\r\n <div class=\"cancelled-edge\">\r\n </div>\r\n <clr-icon shape=\"dot-circle\"></clr-icon>\r\n <div class=\"cancelled-node\">\r\n {{ cancelledState | stateI18nToken | translate }}\r\n </div>\r\n </div>\r\n</div>\r\n",
2237
- changeDetection: ChangeDetectionStrategy.OnPush,
2238
- styles: [":host{display:block}.node-wrapper{position:absolute;z-index:1;display:flex;align-items:center}.node{display:inline-block;border:2px solid var(--color-component-border-200);border-radius:3px;padding:3px 6px;z-index:1;background-color:var(--color-component-bg-100);opacity:.7;transition:opacity .2s,background-color .2s,color .2s;cursor:default}.node.active-target{border-color:var(--color-primary-500);opacity:.9}.cancelled-wrapper{display:flex;align-items:center;color:var(--color-grey-300);transition:color .2s,opacity .2s;opacity:.7}.cancelled-edge{width:48px;height:2px;background-color:var(--color-component-bg-300);transition:background-color .2s}clr-icon{margin-left:-1px}.cancelled-node{margin-left:6px}.active .cancelled-wrapper{opacity:1}.active .node{opacity:1;background-color:var(--color-primary-600);border-color:var(--color-primary-600);color:var(--color-primary-100)}.active .cancelled-wrapper{color:var(--color-error-500)}.active .cancelled-edge{background-color:var(--color-error-500)}\n"]
2239
- },] }
2240
- ];
2241
- OrderProcessNodeComponent.ctorParameters = () => [
2242
- { type: ElementRef }
2243
- ];
2244
- OrderProcessNodeComponent.propDecorators = {
2245
- node: [{ type: Input }],
2246
- index: [{ type: Input }],
2247
- active: [{ type: Input }]
2248
- };
2249
-
2250
- class OrderProcessGraphComponent {
2251
- constructor(changeDetector) {
2252
- this.changeDetector = changeDetector;
2253
- this.setActiveState$ = new BehaviorSubject(undefined);
2254
- this.nodes = [];
2255
- this.edges = [];
2256
- }
2257
- get outerHeight() {
2258
- return this.nodes.length * NODE_HEIGHT;
2259
- }
2260
- ngOnInit() {
2261
- this.setActiveState$.next(this.initialState);
2262
- this.activeState$ = this.setActiveState$.pipe(debounceTime(150));
2263
- }
2264
- ngOnChanges(changes) {
2265
- this.populateNodes();
2266
- }
2267
- ngAfterViewInit() {
2268
- setTimeout(() => this.populateEdges());
2269
- }
2270
- onMouseOver(stateName) {
2271
- this.setActiveState$.next(stateName);
2272
- }
2273
- onMouseOut() {
2274
- this.setActiveState$.next(this.initialState);
2275
- }
2276
- getNodeFor(state) {
2277
- if (this.nodeComponents) {
2278
- return this.nodeComponents.find((n) => n.node.name === state);
2279
- }
2280
- }
2281
- populateNodes() {
2282
- var _a, _b;
2283
- const stateNodeMap = new Map();
2284
- for (const state of this.states) {
2285
- stateNodeMap.set(state.name, {
2286
- name: state.name,
2287
- to: [],
2288
- });
2289
- }
2290
- for (const [name, stateNode] of stateNodeMap.entries()) {
2291
- const targets = (_b = (_a = this.states.find((s) => s.name === name)) === null || _a === void 0 ? void 0 : _a.to) !== null && _b !== void 0 ? _b : [];
2292
- for (const target of targets) {
2293
- const targetNode = stateNodeMap.get(target);
2294
- if (targetNode) {
2295
- stateNode.to.push(targetNode);
2296
- }
2297
- }
2298
- }
2299
- this.nodes = [...stateNodeMap.values()].filter((n) => n.name !== 'Cancelled');
2300
- }
2301
- populateEdges() {
2302
- for (const node of this.nodes) {
2303
- const nodeCmp = this.getNodeFor(node.name);
2304
- let index = 0;
2305
- for (const to of node.to) {
2306
- const toCmp = this.getNodeFor(to.name);
2307
- if (nodeCmp && toCmp && nodeCmp !== toCmp) {
2308
- this.edges.push({
2309
- to: toCmp,
2310
- from: nodeCmp,
2311
- index,
2312
- });
2313
- index++;
2314
- }
2315
- }
2316
- }
2317
- this.edges = [...this.edges];
2318
- this.changeDetector.markForCheck();
2319
- }
2320
- }
2321
- OrderProcessGraphComponent.decorators = [
2322
- { type: Component, args: [{
2323
- selector: 'vdr-order-process-graph',
2324
- template: "<ng-container *ngFor=\"let state of nodes; let i = index\">\r\n <vdr-order-process-node\r\n [node]=\"state\"\r\n [index]=\"i\"\r\n [active]=\"(activeState$ | async) === state.name\"\r\n (mouseenter)=\"onMouseOver(state.name)\"\r\n (mouseleave)=\"onMouseOut()\"\r\n ></vdr-order-process-node>\r\n</ng-container>\r\n<ng-container *ngFor=\"let edge of edges\">\r\n <vdr-order-process-edge [from]=\"edge.from\" [to]=\"edge.to\" [index]=\"edge.index\"></vdr-order-process-edge>\r\n</ng-container>\r\n",
2325
- changeDetection: ChangeDetectionStrategy.OnPush,
2326
- styles: [":host{display:block;border:1px hotpink;margin:20px;padding:12px;position:relative}.state-row{display:flex}\n"]
2327
- },] }
2328
- ];
2329
- OrderProcessGraphComponent.ctorParameters = () => [
2330
- { type: ChangeDetectorRef }
2331
- ];
2332
- OrderProcessGraphComponent.propDecorators = {
2333
- states: [{ type: Input }],
2334
- initialState: [{ type: Input }],
2335
- nodeComponents: [{ type: ViewChildren, args: [OrderProcessNodeComponent,] }],
2336
- outerHeight: [{ type: HostBinding, args: ['style.height.px',] }]
2337
- };
2338
-
2339
- class OrderTableComponent {
2340
- constructor() {
2341
- this.orderLineCustomFieldsVisible = false;
2342
- this.customFieldsForLine = {};
2343
- }
2344
- get visibleOrderLineCustomFields() {
2345
- return this.orderLineCustomFieldsVisible ? this.orderLineCustomFields : [];
2346
- }
2347
- get showElided() {
2348
- return !this.orderLineCustomFieldsVisible && 0 < this.orderLineCustomFields.length;
2349
- }
2350
- ngOnInit() {
2351
- this.orderLineCustomFieldsVisible = this.orderLineCustomFields.length < 2;
2352
- this.getLineCustomFields();
2353
- }
2354
- toggleOrderLineCustomFields() {
2355
- this.orderLineCustomFieldsVisible = !this.orderLineCustomFieldsVisible;
2356
- }
2357
- getLineDiscounts(line) {
2358
- return line.discounts.filter(a => a.type === AdjustmentType.PROMOTION);
2359
- }
2360
- getLineCustomFields() {
2361
- for (const line of this.order.lines) {
2362
- const formGroup = new FormGroup({});
2363
- const result = this.orderLineCustomFields
2364
- .map(config => {
2365
- const value = line.customFields[config.name];
2366
- formGroup.addControl(config.name, new FormControl(value));
2367
- return {
2368
- config,
2369
- formGroup,
2370
- value,
2371
- };
2372
- })
2373
- .filter(field => {
2374
- return this.orderLineCustomFieldsVisible ? true : field.value != null;
2375
- });
2376
- this.customFieldsForLine[line.id] = result;
2377
- }
2378
- }
2379
- getPromotionLink(promotion) {
2380
- const id = promotion.adjustmentSource.split(':')[1];
2381
- return ['/marketing', 'promotions', id];
2382
- }
2383
- getCouponCodeForAdjustment(order, promotionAdjustment) {
2384
- const id = promotionAdjustment.adjustmentSource.split(':')[1];
2385
- const promotion = order.promotions.find(p => p.id === id);
2386
- if (promotion) {
2387
- return promotion.couponCode || undefined;
2388
- }
2389
- }
2390
- getShippingNames(order) {
2391
- if (order.shippingLines.length) {
2392
- return order.shippingLines.map(shippingLine => shippingLine.shippingMethod.name).join(', ');
2393
- }
2394
- else {
2395
- return '';
2396
- }
2397
- }
2398
- }
2399
- OrderTableComponent.decorators = [
2400
- { type: Component, args: [{
2401
- selector: 'vdr-order-table',
2402
- template: "<table class=\"order-table table\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>{{ 'order.product-name' | translate }}</th>\r\n <th>{{ 'order.product-sku' | translate }}</th>\r\n <th>{{ 'order.unit-price' | translate }}</th>\r\n <th>{{ 'order.quantity' | translate }}</th>\r\n <th>{{ 'order.total' | translate }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngFor=\"let line of order.lines\">\r\n <tr class=\"order-line\" [class.is-cancelled]=\"line.quantity === 0\">\r\n <td class=\"align-middle thumb\">\r\n <img *ngIf=\"line.featuredAsset\" [src]=\"line.featuredAsset | assetPreview: 'tiny'\" />\r\n </td>\r\n <td class=\"align-middle name\">{{ line.productVariant.name }}</td>\r\n <td class=\"align-middle sku\">{{ line.productVariant.sku }}</td>\r\n <td class=\"align-middle unit-price\">\r\n {{ line.unitPriceWithTax | localeCurrency: order.currencyCode }}\r\n <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\r\n {{ line.unitPrice | localeCurrency: order.currencyCode }}\r\n </div>\r\n </td>\r\n <td class=\"align-middle quantity\">\r\n {{ line.quantity }}\r\n <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\r\n <vdr-line-fulfillment [line]=\"line\" [orderState]=\"order.state\"></vdr-line-fulfillment>\r\n </td>\r\n <td class=\"align-middle total\">\r\n {{ line.linePriceWithTax | localeCurrency: order.currencyCode }}\r\n <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\r\n {{ line.linePrice | localeCurrency: order.currencyCode }}\r\n </div>\r\n\r\n <ng-container *ngIf=\"getLineDiscounts(line) as discounts\">\r\n <vdr-dropdown *ngIf=\"discounts.length\">\r\n <div class=\"promotions-label\" vdrDropdownTrigger>\r\n {{ 'order.promotions-applied' | translate }}\r\n </div>\r\n <vdr-dropdown-menu>\r\n <div class=\"line-promotion\" *ngFor=\"let discount of discounts\">\r\n <a class=\"promotion-name\" [routerLink]=\"getPromotionLink(discount)\">{{\r\n discount.description\r\n }}</a>\r\n <div class=\"promotion-amount\">\r\n {{ discount.amountWithTax | localeCurrency: order.currencyCode }}\r\n <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\r\n {{ discount.amount | localeCurrency: order.currencyCode }}\r\n </div>\r\n </div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"customFieldsForLine[line.id] as customFields\">\r\n <tr *ngIf=\"customFields.length\">\r\n <td colspan=\"6\" class=\"custom-fields-row\">\r\n <div class=\"order-line-custom-fields\">\r\n <div class=\"custom-field\" *ngFor=\"let field of customFields\">\r\n <vdr-custom-field-control\r\n [compact]=\"true\"\r\n [readonly]=\"true\"\r\n [customField]=\"field.config\"\r\n [customFieldsFormGroup]=\"field.formGroup\"\r\n ></vdr-custom-field-control>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n <tr class=\"surcharge\" *ngFor=\"let surcharge of order.surcharges\">\r\n <td class=\"align-middle name left\" colspan=\"2\">{{ surcharge.description }}</td>\r\n <td class=\"align-middle sku\">{{ surcharge.sku }}</td>\r\n <td class=\"align-middle\" colspan=\"2\"></td>\r\n <td class=\"align-middle total\">\r\n {{ surcharge.priceWithTax | localeCurrency: order.currencyCode }}\r\n <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\r\n {{ surcharge.price | localeCurrency: order.currencyCode }}\r\n </div>\r\n </td>\r\n </tr>\r\n <ng-container *ngFor=\"let discount of order.discounts\">\r\n <tr class=\"order-adjustment\" *ngIf=\"discount.type !== 'OTHER'\">\r\n <td colspan=\"5\" class=\"left clr-align-middle\">\r\n <a [routerLink]=\"getPromotionLink(discount)\">{{ discount.description }}</a>\r\n <vdr-chip *ngIf=\"getCouponCodeForAdjustment(order, discount) as couponCode\">{{\r\n couponCode\r\n }}</vdr-chip>\r\n </td>\r\n <td class=\"clr-align-middle\">\r\n {{ discount.amountWithTax | localeCurrency: order.currencyCode }}\r\n <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\r\n {{ discount.amount | localeCurrency: order.currencyCode }}\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <tr class=\"sub-total\">\r\n <td class=\"left clr-align-middle\">{{ 'order.sub-total' | translate }}</td>\r\n <td colspan=\"4\"></td>\r\n <td class=\"clr-align-middle\">\r\n {{ order.subTotalWithTax | localeCurrency: order.currencyCode }}\r\n <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\r\n {{ order.subTotal | localeCurrency: order.currencyCode }}\r\n </div>\r\n </td>\r\n </tr>\r\n <tr class=\"shipping\">\r\n <td class=\"left clr-align-middle\">{{ 'order.shipping' | translate }}</td>\r\n <td class=\"clr-align-middle\">{{ getShippingNames(order) }}</td>\r\n <td colspan=\"3\"></td>\r\n <td class=\"clr-align-middle\">\r\n {{ order.shippingWithTax | localeCurrency: order.currencyCode }}\r\n <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\r\n {{ order.shipping | localeCurrency: order.currencyCode }}\r\n </div>\r\n </td>\r\n </tr>\r\n <tr class=\"total\">\r\n <td class=\"left clr-align-middle\">{{ 'order.total' | translate }}</td>\r\n <td colspan=\"4\"></td>\r\n <td class=\"clr-align-middle\">\r\n {{ order.totalWithTax | localeCurrency: order.currencyCode }}\r\n <div class=\"net-price\" [title]=\"'order.net-price' | translate\">\r\n {{ order.total | localeCurrency: order.currencyCode }}\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n",
2403
- changeDetection: ChangeDetectionStrategy.OnPush,
2404
- styles: [".order-table .is-cancelled td{text-decoration:line-through;background-color:var(--color-component-bg-200)}.order-table .sub-total td{border-top:1px dashed var(--color-component-border-200)}.order-table .total td{font-weight:bold;border-top:1px dashed var(--color-component-border-200)}.order-table td.custom-fields-row{border-top-style:dashed;border-top-color:var(--color-grey-200)}.order-table .order-line-custom-fields{display:flex;flex-wrap:wrap}.order-table .order-line-custom-fields .custom-field{text-align:start;max-width:200px;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px;margin-right:18px}.order-table .order-line-custom-field{background-color:var(--color-component-bg-100)}.order-table .order-line-custom-field .custom-field-ellipsis{color:var(--color-text-300)}.order-table .net-price{font-size:11px;color:var(--color-text-300)}.order-table .promotions-label{-webkit-text-decoration:underline dotted var(--color-text-200);text-decoration:underline dotted var(--color-text-200);font-size:11px;margin-top:6px;cursor:pointer;text-transform:lowercase}.order-table .thumb img{width:50px;height:50px}::ng-deep .line-promotion{display:flex;justify-content:space-between;padding:6px 12px}::ng-deep .line-promotion .promotion-amount{margin-left:12px}::ng-deep .line-promotion .net-price{font-size:11px;color:var(--color-text-300)}\n"]
2405
- },] }
2406
- ];
2407
- OrderTableComponent.propDecorators = {
2408
- order: [{ type: Input }],
2409
- orderLineCustomFields: [{ type: Input }]
2410
- };
2411
-
2412
- class PaymentDetailComponent {
2413
- }
2414
- PaymentDetailComponent.decorators = [
2415
- { type: Component, args: [{
2416
- selector: 'vdr-payment-detail',
2417
- template: "<vdr-labeled-data [label]=\"'order.payment-method' | translate\">\r\n {{ payment.method }}\r\n</vdr-labeled-data>\r\n<vdr-labeled-data [label]=\"'order.amount' | translate\">\r\n {{ payment.amount | localeCurrency: currencyCode }}\r\n</vdr-labeled-data>\r\n<vdr-labeled-data *ngIf=\"payment.errorMessage\" [label]=\"'order.error-message' | translate\">\r\n {{ payment.errorMessage }}\r\n</vdr-labeled-data>\r\n<vdr-labeled-data *ngIf=\"payment.transactionId\" [label]=\"'order.transaction-id' | translate\">\r\n {{ payment.transactionId }}\r\n</vdr-labeled-data>\r\n<vdr-labeled-data [label]=\"'order.payment-metadata' | translate\">\r\n <vdr-object-tree [value]=\"payment.metadata\"></vdr-object-tree>\r\n</vdr-labeled-data>\r\n",
2418
- changeDetection: ChangeDetectionStrategy.OnPush,
2419
- styles: [""]
2420
- },] }
2421
- ];
2422
- PaymentDetailComponent.propDecorators = {
2423
- payment: [{ type: Input }],
2424
- currencyCode: [{ type: Input }]
2425
- };
2426
-
2427
- class PaymentStateLabelComponent {
2428
- get chipColorType() {
2429
- switch (this.state) {
2430
- case 'Authorized':
2431
- return 'warning';
2432
- case 'Settled':
2433
- return 'success';
2434
- case 'Declined':
2435
- case 'Cancelled':
2436
- return 'error';
2437
- }
2438
- }
2439
- }
2440
- PaymentStateLabelComponent.decorators = [
2441
- { type: Component, args: [{
2442
- selector: 'vdr-payment-state-label',
2443
- template: "<vdr-chip [title]=\"'order.payment-state' | translate\" [colorType]=\"chipColorType\">\r\n <clr-icon shape=\"check-circle\" *ngIf=\"state === 'Settled'\"></clr-icon>\r\n {{ state | stateI18nToken | translate }}\r\n</vdr-chip>\r\n",
2444
- changeDetection: ChangeDetectionStrategy.OnPush,
2445
- styles: [":host{font-size:14px}\n"]
2446
- },] }
2447
- ];
2448
- PaymentStateLabelComponent.propDecorators = {
2449
- state: [{ type: Input }]
2450
- };
2451
-
2452
- class RefundStateLabelComponent {
2453
- get chipColorType() {
2454
- switch (this.state) {
2455
- case 'Pending':
2456
- return 'warning';
2457
- case 'Settled':
2458
- return 'success';
2459
- case 'Failed':
2460
- return 'error';
2461
- }
2462
- }
2463
- }
2464
- RefundStateLabelComponent.decorators = [
2465
- { type: Component, args: [{
2466
- selector: 'vdr-refund-state-label',
2467
- template: "<vdr-chip [title]=\"'order.payment-state' | translate\" [colorType]=\"chipColorType\">\r\n <clr-icon shape=\"check-circle\" *ngIf=\"state === 'Settled'\"></clr-icon>\r\n {{ state | stateI18nToken | translate }}\r\n</vdr-chip>\r\n",
2468
- changeDetection: ChangeDetectionStrategy.OnPush,
2469
- styles: [":host{font-size:14px}\n"]
2470
- },] }
2471
- ];
2472
- RefundStateLabelComponent.propDecorators = {
2473
- state: [{ type: Input }]
2474
- };
2475
-
2476
- class SimpleItemListComponent {
2477
- }
2478
- SimpleItemListComponent.decorators = [
2479
- { type: Component, args: [{
2480
- selector: 'vdr-simple-item-list',
2481
- template: "<div class=\"items-list\">\r\n <ul>\r\n <li *ngFor=\"let item of items\" [title]=\"item.name\">\r\n <div class=\"quantity\">{{ item.quantity }}</div>\r\n <clr-icon shape=\"times\" size=\"12\"></clr-icon>\r\n {{ item.name }}\r\n </li>\r\n </ul>\r\n</div>\r\n",
2482
- changeDetection: ChangeDetectionStrategy.OnPush,
2483
- styles: [".items-list{font-size:12px}.items-list ul{margin-top:6px;list-style-type:none;margin-left:2px}.items-list ul li{line-height:14px;text-overflow:ellipsis;overflow:hidden}.items-list .quantity{min-width:16px;display:inline-block}\n"]
2484
- },] }
2485
- ];
2486
- SimpleItemListComponent.propDecorators = {
2487
- items: [{ type: Input }]
2488
- };
2489
-
2490
- /**
2491
- * Resolves the id from the path into a Customer entity.
2492
- */
2493
- class OrderResolver extends BaseEntityResolver {
2494
- constructor(router, dataService) {
2495
- super(router, {
2496
- __typename: 'Order',
2497
- id: '',
2498
- code: '',
2499
- createdAt: '',
2500
- updatedAt: '',
2501
- total: 0,
2502
- }, id => dataService.order.getOrder(id).mapStream(data => data.order));
2503
- }
2504
- }
2505
- OrderResolver.ɵprov = i0.ɵɵdefineInjectable({ factory: function OrderResolver_Factory() { return new OrderResolver(i0.ɵɵinject(i1$1.Router), i0.ɵɵinject(i1.DataService)); }, token: OrderResolver, providedIn: "root" });
2506
- OrderResolver.decorators = [
2507
- { type: Injectable, args: [{
2508
- providedIn: 'root',
2509
- },] }
2510
- ];
2511
- OrderResolver.ctorParameters = () => [
2512
- { type: Router },
2513
- { type: DataService }
2514
- ];
2515
-
2516
- const ɵ0 = {
2517
- breadcrumb: marker('breadcrumb.orders'),
2518
- }, ɵ1 = {
2519
- breadcrumb: orderBreadcrumb,
2520
- }, ɵ2 = {
2521
- breadcrumb: modifyingOrderBreadcrumb,
2522
- };
2523
- const orderRoutes = [
2524
- {
2525
- path: '',
2526
- component: OrderListComponent,
2527
- data: ɵ0,
2528
- },
2529
- {
2530
- path: ':id',
2531
- component: OrderDetailComponent,
2532
- resolve: createResolveData(OrderResolver),
2533
- canDeactivate: [CanDeactivateDetailGuard],
2534
- data: ɵ1,
2535
- },
2536
- {
2537
- path: ':id/modify',
2538
- component: OrderEditorComponent,
2539
- resolve: createResolveData(OrderResolver),
2540
- // canDeactivate: [CanDeactivateDetailGuard],
2541
- data: ɵ2,
2542
- },
2543
- ];
2544
- function orderBreadcrumb(data, params) {
2545
- return detailBreadcrumb({
2546
- entity: data.entity,
2547
- id: params.id,
2548
- breadcrumbKey: 'breadcrumb.orders',
2549
- getName: order => order.code,
2550
- route: '',
2551
- });
2552
- }
2553
- function modifyingOrderBreadcrumb(data, params) {
2554
- return orderBreadcrumb(data, params).pipe(map((breadcrumbs) => {
2555
- const modifiedBreadcrumbs = breadcrumbs.slice();
2556
- modifiedBreadcrumbs[0].link[0] = '../';
2557
- modifiedBreadcrumbs[1].link[0] = '../orders';
2558
- return modifiedBreadcrumbs.concat({ label: marker('breadcrumb.modifying'), link: [''] });
2559
- }));
2560
- }
2561
-
2562
- class OrderModule {
2563
- }
2564
- OrderModule.decorators = [
2565
- { type: NgModule, args: [{
2566
- imports: [SharedModule, RouterModule.forChild(orderRoutes)],
2567
- declarations: [
2568
- OrderListComponent,
2569
- OrderDetailComponent,
2570
- FulfillOrderDialogComponent,
2571
- LineFulfillmentComponent,
2572
- RefundOrderDialogComponent,
2573
- CancelOrderDialogComponent,
2574
- PaymentStateLabelComponent,
2575
- LineRefundsComponent,
2576
- OrderPaymentCardComponent,
2577
- RefundStateLabelComponent,
2578
- SettleRefundDialogComponent,
2579
- OrderHistoryComponent,
2580
- FulfillmentDetailComponent,
2581
- PaymentDetailComponent,
2582
- SimpleItemListComponent,
2583
- OrderCustomFieldsCardComponent,
2584
- OrderProcessGraphComponent,
2585
- OrderProcessNodeComponent,
2586
- OrderProcessEdgeComponent,
2587
- OrderProcessGraphDialogComponent,
2588
- FulfillmentStateLabelComponent,
2589
- FulfillmentCardComponent,
2590
- OrderEditorComponent,
2591
- OrderTableComponent,
2592
- OrderEditsPreviewDialogComponent,
2593
- ModificationDetailComponent,
2594
- AddManualPaymentDialogComponent,
2595
- OrderStateSelectDialogComponent,
2596
- ],
2597
- },] }
2598
- ];
2599
-
2600
- // This file was generated by the build-public-api.ts script
2601
-
2602
- /**
2603
- * Generated bundle index. Do not edit.
2604
- */
2605
-
2606
- export { AddManualPaymentDialogComponent, CancelOrderDialogComponent, FulfillOrderDialogComponent, FulfillmentCardComponent, FulfillmentDetailComponent, FulfillmentStateLabelComponent, LineFulfillmentComponent, LineRefundsComponent, ModificationDetailComponent, NODE_HEIGHT, OrderCustomFieldsCardComponent, OrderDetailComponent, OrderEditResultType, OrderEditorComponent, OrderEditsPreviewDialogComponent, OrderHistoryComponent, OrderListComponent, OrderModule, OrderPaymentCardComponent, OrderProcessEdgeComponent, OrderProcessGraphComponent, OrderProcessGraphDialogComponent, OrderProcessNodeComponent, OrderResolver, OrderStateSelectDialogComponent, OrderTableComponent, OrderTransitionService, PaymentDetailComponent, PaymentStateLabelComponent, RefundOrderDialogComponent, RefundStateLabelComponent, SettleRefundDialogComponent, SimpleItemListComponent, modifyingOrderBreadcrumb, orderBreadcrumb, orderRoutes, ɵ0, ɵ1, ɵ2 };
2607
- //# sourceMappingURL=vendure-admin-ui-order.js.map