@vendure/admin-ui 1.5.0 → 2.0.0-next.2

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