@vendure/admin-ui 1.7.4 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1099) hide show
  1. package/README.md +49 -0
  2. package/angular.json +196 -0
  3. package/i18n-coverage.json +71 -0
  4. package/package/bundles/vendure-admin-ui-catalog.umd.js +5689 -0
  5. package/package/bundles/vendure-admin-ui-catalog.umd.js.map +1 -0
  6. package/package/bundles/vendure-admin-ui-core.umd.js +16863 -0
  7. package/package/bundles/vendure-admin-ui-core.umd.js.map +1 -0
  8. package/package/bundles/vendure-admin-ui-customer.umd.js +1680 -0
  9. package/package/bundles/vendure-admin-ui-customer.umd.js.map +1 -0
  10. package/package/bundles/vendure-admin-ui-dashboard.umd.js +759 -0
  11. package/package/bundles/vendure-admin-ui-dashboard.umd.js.map +1 -0
  12. package/{bundles → package/bundles}/vendure-admin-ui-login.umd.js +0 -0
  13. package/{bundles → package/bundles}/vendure-admin-ui-login.umd.js.map +0 -0
  14. package/{bundles → package/bundles}/vendure-admin-ui-marketing.umd.js +0 -0
  15. package/{bundles → package/bundles}/vendure-admin-ui-marketing.umd.js.map +0 -0
  16. package/package/bundles/vendure-admin-ui-order.umd.js +4028 -0
  17. package/package/bundles/vendure-admin-ui-order.umd.js.map +1 -0
  18. package/package/bundles/vendure-admin-ui-settings.umd.js +3700 -0
  19. package/package/bundles/vendure-admin-ui-settings.umd.js.map +1 -0
  20. package/package/bundles/vendure-admin-ui-system.umd.js +524 -0
  21. package/{bundles → package/bundles}/vendure-admin-ui-system.umd.js.map +0 -0
  22. package/{bundles → package/bundles}/vendure-admin-ui.umd.js +0 -0
  23. package/{bundles → package/bundles}/vendure-admin-ui.umd.js.map +0 -0
  24. package/package/catalog/catalog.module.d.ts +5 -0
  25. package/{catalog → package/catalog}/catalog.routes.d.ts +0 -0
  26. package/{catalog → package/catalog}/components/apply-facet-dialog/apply-facet-dialog.component.d.ts +0 -0
  27. package/{catalog → package/catalog}/components/asset-detail/asset-detail.component.d.ts +0 -0
  28. package/{catalog → package/catalog}/components/asset-list/asset-list.component.d.ts +0 -0
  29. package/{catalog → package/catalog}/components/assets/assets.component.d.ts +0 -0
  30. package/{catalog → package/catalog}/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.d.ts +0 -0
  31. package/package/catalog/components/assign-to-channel-dialog/assign-to-channel-dialog.component.d.ts +17 -0
  32. package/package/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.d.ts +38 -0
  33. package/package/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.graphql.d.ts +4 -0
  34. package/{catalog → package/catalog}/components/collection-contents/collection-contents.component.d.ts +0 -0
  35. package/{catalog → package/catalog}/components/collection-detail/collection-detail.component.d.ts +0 -0
  36. package/package/catalog/components/collection-list/collection-list-bulk-actions.d.ts +6 -0
  37. package/package/catalog/components/collection-list/collection-list.component.d.ts +35 -0
  38. package/{catalog → package/catalog}/components/collection-tree/array-to-tree.d.ts +0 -0
  39. package/package/catalog/components/collection-tree/collection-tree-node.component.d.ts +40 -0
  40. package/package/catalog/components/collection-tree/collection-tree.component.d.ts +36 -0
  41. package/{catalog → package/catalog}/components/confirm-variant-deletion-dialog/confirm-variant-deletion-dialog.component.d.ts +0 -0
  42. package/{catalog → package/catalog}/components/facet-detail/facet-detail.component.d.ts +0 -0
  43. package/package/catalog/components/facet-list/facet-list-bulk-actions.d.ts +5 -0
  44. package/package/catalog/components/facet-list/facet-list.component.d.ts +25 -0
  45. package/{catalog → package/catalog}/components/generate-product-variants/generate-product-variants.component.d.ts +0 -0
  46. package/{catalog → package/catalog}/components/option-value-input/option-value-input.component.d.ts +0 -0
  47. package/{catalog → package/catalog}/components/product-detail/product-detail.component.d.ts +0 -0
  48. package/package/catalog/components/product-list/product-list-bulk-actions.d.ts +6 -0
  49. package/package/catalog/components/product-list/product-list.component.d.ts +30 -0
  50. package/{catalog → package/catalog}/components/product-options-editor/product-options-editor.component.d.ts +0 -0
  51. package/{catalog → package/catalog}/components/product-variants-editor/product-variants-editor.component.d.ts +0 -0
  52. package/{catalog → package/catalog}/components/product-variants-list/product-variants-list.component.d.ts +0 -0
  53. package/{catalog → package/catalog}/components/product-variants-table/product-variants-table.component.d.ts +0 -0
  54. package/{catalog → package/catalog}/components/update-product-option-dialog/update-product-option-dialog.component.d.ts +0 -0
  55. package/{catalog → package/catalog}/components/variant-price-detail/variant-price-detail.component.d.ts +0 -0
  56. package/{catalog → package/catalog}/package.json +0 -0
  57. package/{catalog → package/catalog}/providers/product-detail/product-detail.service.d.ts +0 -0
  58. package/{catalog → package/catalog}/providers/product-detail/replace-last.d.ts +0 -0
  59. package/{catalog → package/catalog}/providers/routing/asset-resolver.d.ts +0 -0
  60. package/{catalog → package/catalog}/providers/routing/collection-resolver.d.ts +0 -0
  61. package/{catalog → package/catalog}/providers/routing/facet-resolver.d.ts +0 -0
  62. package/{catalog → package/catalog}/providers/routing/product-resolver.d.ts +0 -0
  63. package/{catalog → package/catalog}/providers/routing/product-variants-resolver.d.ts +0 -0
  64. package/package/catalog/public_api.d.ts +39 -0
  65. package/{catalog → package/catalog}/vendure-admin-ui-catalog.d.ts +0 -0
  66. package/package/catalog/vendure-admin-ui-catalog.metadata.json +1 -0
  67. package/{core → package/core}/app.component.d.ts +0 -0
  68. package/{core → package/core}/app.component.module.d.ts +0 -0
  69. package/{core → package/core}/app.config.d.ts +0 -0
  70. package/{core → package/core}/common/base-detail.component.d.ts +0 -0
  71. package/{core → package/core}/common/base-entity-resolver.d.ts +0 -0
  72. package/{core → package/core}/common/base-list.component.d.ts +0 -0
  73. package/package/core/common/component-registry-types.d.ts +56 -0
  74. package/{core → package/core}/common/deactivate-aware.d.ts +0 -0
  75. package/{core → package/core}/common/detail-breadcrumb.d.ts +0 -0
  76. package/package/core/common/generated-types.d.ts +9748 -0
  77. package/{core → package/core}/common/introspection-result-wrapper.d.ts +0 -0
  78. package/{core → package/core}/common/introspection-result.d.ts +0 -0
  79. package/{core → package/core}/common/single-search-selection-model.d.ts +0 -0
  80. package/package/core/common/utilities/bulk-action-utils.d.ts +19 -0
  81. package/{core → package/core}/common/utilities/configurable-operation-utils.d.ts +0 -0
  82. package/{core → package/core}/common/utilities/create-updated-translatable.d.ts +0 -0
  83. package/{core → package/core}/common/utilities/find-translation.d.ts +0 -0
  84. package/{core → package/core}/common/utilities/flatten-facet-values.d.ts +0 -0
  85. package/{core → package/core}/common/utilities/get-default-ui-language.d.ts +0 -0
  86. package/{core → package/core}/common/utilities/interpolate-description.d.ts +0 -0
  87. package/package/core/common/utilities/selection-manager.d.ts +30 -0
  88. package/{core → package/core}/common/utilities/string-to-color.d.ts +0 -0
  89. package/package/core/common/version.d.ts +1 -0
  90. package/{core → package/core}/components/app-shell/app-shell.component.d.ts +0 -0
  91. package/{core → package/core}/components/breadcrumb/breadcrumb.component.d.ts +0 -0
  92. package/{core → package/core}/components/channel-switcher/channel-switcher.component.d.ts +0 -0
  93. package/{core → package/core}/components/main-nav/main-nav.component.d.ts +0 -0
  94. package/{core → package/core}/components/notification/notification.component.d.ts +0 -0
  95. package/{core → package/core}/components/overlay-host/overlay-host.component.d.ts +0 -0
  96. package/{core → package/core}/components/theme-switcher/theme-switcher.component.d.ts +0 -0
  97. package/{core → package/core}/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.d.ts +0 -0
  98. package/{core → package/core}/components/user-menu/user-menu.component.d.ts +0 -0
  99. package/{core → package/core}/core.module.d.ts +0 -0
  100. package/{core → package/core}/data/check-jobs-link.d.ts +0 -0
  101. package/{core → package/core}/data/client-state/client-defaults.d.ts +0 -0
  102. package/{core → package/core}/data/client-state/client-resolvers.d.ts +0 -0
  103. package/{core → package/core}/data/data.module.d.ts +0 -0
  104. package/{core → package/core}/data/definitions/administrator-definitions.d.ts +0 -0
  105. package/{core → package/core}/data/definitions/auth-definitions.d.ts +0 -0
  106. package/{core → package/core}/data/definitions/client-definitions.d.ts +0 -0
  107. package/package/core/data/definitions/collection-definitions.d.ts +13 -0
  108. package/{core → package/core}/data/definitions/customer-definitions.d.ts +0 -0
  109. package/package/core/data/definitions/facet-definitions.d.ts +13 -0
  110. package/package/core/data/definitions/order-definitions.d.ts +39 -0
  111. package/package/core/data/definitions/product-definitions.d.ts +46 -0
  112. package/{core → package/core}/data/definitions/promotion-definitions.d.ts +0 -0
  113. package/{core → package/core}/data/definitions/settings-definitions.d.ts +0 -0
  114. package/{core → package/core}/data/definitions/shared-definitions.d.ts +0 -0
  115. package/{core → package/core}/data/definitions/shipping-definitions.d.ts +0 -0
  116. package/{core → package/core}/data/omit-typename-link.d.ts +0 -0
  117. package/{core → package/core}/data/providers/administrator-data.service.d.ts +0 -0
  118. package/{core → package/core}/data/providers/auth-data.service.d.ts +0 -0
  119. package/{core → package/core}/data/providers/base-data.service.d.ts +0 -0
  120. package/{core → package/core}/data/providers/client-data.service.d.ts +0 -0
  121. package/package/core/data/providers/collection-data.service.d.ts +28 -0
  122. package/{core → package/core}/data/providers/customer-data.service.d.ts +0 -0
  123. package/{core → package/core}/data/providers/data.service.d.ts +0 -0
  124. package/package/core/data/providers/facet-data.service.d.ts +24 -0
  125. package/{core → package/core}/data/providers/fetch-adapter.d.ts +0 -0
  126. package/{core → package/core}/data/providers/interceptor.d.ts +0 -0
  127. package/package/core/data/providers/order-data.service.d.ts +52 -0
  128. package/package/core/data/providers/product-data.service.d.ts +82 -0
  129. package/{core → package/core}/data/providers/promotion-data.service.d.ts +0 -0
  130. package/{core → package/core}/data/providers/settings-data.service.d.ts +0 -0
  131. package/{core → package/core}/data/providers/shipping-method-data.service.d.ts +0 -0
  132. package/{core → package/core}/data/query-result.d.ts +0 -0
  133. package/{core → package/core}/data/server-config.d.ts +0 -0
  134. package/{core → package/core}/data/utils/add-custom-fields.d.ts +0 -0
  135. package/{core → package/core}/data/utils/get-server-location.d.ts +0 -0
  136. package/{core → package/core}/data/utils/remove-readonly-custom-fields.d.ts +0 -0
  137. package/{core → package/core}/data/utils/transform-relation-custom-field-inputs.d.ts +0 -0
  138. package/{core → package/core}/package.json +0 -0
  139. package/{core → package/core}/providers/auth/auth.service.d.ts +0 -0
  140. package/package/core/providers/bulk-action-registry/bulk-action-registry.service.d.ts +6 -0
  141. package/package/core/providers/bulk-action-registry/bulk-action-types.d.ts +149 -0
  142. package/package/core/providers/bulk-action-registry/register-bulk-action.d.ts +53 -0
  143. package/{core → package/core}/providers/component-registry/component-registry.service.d.ts +0 -0
  144. package/{core → package/core}/providers/custom-detail-component/custom-detail-component-types.d.ts +0 -0
  145. package/{core → package/core}/providers/custom-detail-component/custom-detail-component.service.d.ts +0 -0
  146. package/{core → package/core}/providers/custom-field-component/custom-field-component.service.d.ts +0 -0
  147. package/{core → package/core}/providers/dashboard-widget/dashboard-widget-types.d.ts +0 -0
  148. package/{core → package/core}/providers/dashboard-widget/dashboard-widget.service.d.ts +0 -0
  149. package/{core → package/core}/providers/dashboard-widget/register-dashboard-widget.d.ts +0 -0
  150. package/{core → package/core}/providers/guard/auth.guard.d.ts +0 -0
  151. package/{core → package/core}/providers/health-check/health-check.service.d.ts +0 -0
  152. package/{core → package/core}/providers/i18n/custom-http-loader.d.ts +0 -0
  153. package/{core → package/core}/providers/i18n/custom-message-format-compiler.d.ts +0 -0
  154. package/{core → package/core}/providers/i18n/i18n.service.d.ts +0 -0
  155. package/{core → package/core}/providers/job-queue/job-queue.service.d.ts +0 -0
  156. package/{core → package/core}/providers/local-storage/local-storage.service.d.ts +0 -0
  157. package/package/core/providers/modal/modal.service.d.ts +134 -0
  158. package/package/core/providers/nav-builder/nav-builder-types.d.ts +92 -0
  159. package/{core → package/core}/providers/nav-builder/nav-builder.service.d.ts +0 -0
  160. package/{core → package/core}/providers/notification/notification.service.d.ts +0 -0
  161. package/{core → package/core}/providers/overlay-host/overlay-host.service.d.ts +0 -0
  162. package/package/core/public_api.d.ts +239 -0
  163. package/{core → package/core}/shared/components/action-bar/action-bar.component.d.ts +0 -0
  164. package/{core → package/core}/shared/components/action-bar-items/action-bar-items.component.d.ts +0 -0
  165. package/{core → package/core}/shared/components/address-form/address-form.component.d.ts +0 -0
  166. package/{core → package/core}/shared/components/affixed-input/affixed-input.component.d.ts +0 -0
  167. package/{core → package/core}/shared/components/affixed-input/percentage-suffix-input.component.d.ts +0 -0
  168. package/{core → package/core}/shared/components/asset-file-input/asset-file-input.component.d.ts +0 -0
  169. package/package/core/shared/components/asset-gallery/asset-gallery.component.d.ts +67 -0
  170. package/{core → package/core}/shared/components/asset-picker-dialog/asset-picker-dialog.component.d.ts +0 -0
  171. package/{core → package/core}/shared/components/asset-preview/asset-preview.component.d.ts +0 -0
  172. package/{core → package/core}/shared/components/asset-preview-dialog/asset-preview-dialog.component.d.ts +0 -0
  173. package/{core → package/core}/shared/components/asset-preview-links/asset-preview-links.component.d.ts +0 -0
  174. package/{core → package/core}/shared/components/asset-search-input/asset-search-input.component.d.ts +0 -0
  175. package/package/core/shared/components/bulk-action-menu/bulk-action-menu.component.d.ts +29 -0
  176. package/{core → package/core}/shared/components/channel-assignment-control/channel-assignment-control.component.d.ts +0 -0
  177. package/{core → package/core}/shared/components/channel-badge/channel-badge.component.d.ts +0 -0
  178. package/{core → package/core}/shared/components/chip/chip.component.d.ts +0 -0
  179. package/{core → package/core}/shared/components/configurable-input/configurable-input.component.d.ts +0 -0
  180. package/{core → package/core}/shared/components/currency-input/currency-input.component.d.ts +0 -0
  181. package/{core → package/core}/shared/components/custom-detail-component-host/custom-detail-component-host.component.d.ts +0 -0
  182. package/{core → package/core}/shared/components/custom-field-control/custom-field-control.component.d.ts +0 -0
  183. package/{core → package/core}/shared/components/customer-label/customer-label.component.d.ts +0 -0
  184. package/{core → package/core}/shared/components/data-table/data-table-column.component.d.ts +0 -0
  185. package/package/core/shared/components/data-table/data-table.component.d.ts +101 -0
  186. package/{core → package/core}/shared/components/datetime-picker/constants.d.ts +0 -0
  187. package/{core → package/core}/shared/components/datetime-picker/datetime-picker.component.d.ts +0 -0
  188. package/{core → package/core}/shared/components/datetime-picker/datetime-picker.service.d.ts +0 -0
  189. package/{core → package/core}/shared/components/datetime-picker/types.d.ts +0 -0
  190. package/{core → package/core}/shared/components/dropdown/dropdown-item.directive.d.ts +0 -0
  191. package/package/core/shared/components/dropdown/dropdown-menu.component.d.ts +31 -0
  192. package/{core → package/core}/shared/components/dropdown/dropdown-trigger.directive.d.ts +0 -0
  193. package/{core → package/core}/shared/components/dropdown/dropdown.component.d.ts +0 -0
  194. package/{core → package/core}/shared/components/edit-note-dialog/edit-note-dialog.component.d.ts +0 -0
  195. package/{core → package/core}/shared/components/empty-placeholder/empty-placeholder.component.d.ts +0 -0
  196. package/{core → package/core}/shared/components/entity-info/entity-info.component.d.ts +0 -0
  197. package/{core → package/core}/shared/components/extension-host/extension-host-config.d.ts +0 -0
  198. package/{core → package/core}/shared/components/extension-host/extension-host.component.d.ts +0 -0
  199. package/{core → package/core}/shared/components/extension-host/extension-host.service.d.ts +0 -0
  200. package/{core → package/core}/shared/components/extension-host/host-external-frame.d.ts +0 -0
  201. package/{core → package/core}/shared/components/facet-value-chip/facet-value-chip.component.d.ts +0 -0
  202. package/{core → package/core}/shared/components/facet-value-selector/facet-value-selector.component.d.ts +0 -0
  203. package/{core → package/core}/shared/components/focal-point-control/focal-point-control.component.d.ts +0 -0
  204. package/{core → package/core}/shared/components/form-field/form-field-control.directive.d.ts +0 -0
  205. package/{core → package/core}/shared/components/form-field/form-field.component.d.ts +0 -0
  206. package/{core → package/core}/shared/components/form-item/form-item.component.d.ts +0 -0
  207. package/{core → package/core}/shared/components/formatted-address/formatted-address.component.d.ts +0 -0
  208. package/{core → package/core}/shared/components/help-tooltip/help-tooltip.component.d.ts +0 -0
  209. package/{core → package/core}/shared/components/history-entry-detail/history-entry-detail.component.d.ts +0 -0
  210. package/{core → package/core}/shared/components/items-per-page-controls/items-per-page-controls.component.d.ts +0 -0
  211. package/{core → package/core}/shared/components/labeled-data/labeled-data.component.d.ts +0 -0
  212. package/{core → package/core}/shared/components/language-selector/language-selector.component.d.ts +0 -0
  213. package/{core → package/core}/shared/components/manage-tags-dialog/manage-tags-dialog.component.d.ts +0 -0
  214. package/{core → package/core}/shared/components/modal-dialog/dialog-buttons.directive.d.ts +0 -0
  215. package/{core → package/core}/shared/components/modal-dialog/dialog-component-outlet.component.d.ts +0 -0
  216. package/{core → package/core}/shared/components/modal-dialog/dialog-title.directive.d.ts +0 -0
  217. package/{core → package/core}/shared/components/modal-dialog/modal-dialog.component.d.ts +0 -0
  218. package/{core → package/core}/shared/components/object-tree/object-tree.component.d.ts +0 -0
  219. package/{core → package/core}/shared/components/order-state-label/order-state-label.component.d.ts +0 -0
  220. package/{core → package/core}/shared/components/pagination-controls/pagination-controls.component.d.ts +0 -0
  221. package/{core → package/core}/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.d.ts +0 -0
  222. package/{core → package/core}/shared/components/product-search-input/product-search-input.component.d.ts +0 -0
  223. package/{core → package/core}/shared/components/product-selector/product-selector.component.d.ts +0 -0
  224. package/package/core/shared/components/radio-card/radio-card-fieldset.component.d.ts +21 -0
  225. package/package/core/shared/components/radio-card/radio-card.component.d.ts +19 -0
  226. package/{core → package/core}/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.d.ts +0 -0
  227. package/{core → package/core}/shared/components/rich-text-editor/link-dialog/link-dialog.component.d.ts +0 -0
  228. package/package/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.d.ts +28 -0
  229. package/package/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.d.ts +31 -0
  230. package/package/core/shared/components/rich-text-editor/prosemirror/custom-nodes.d.ts +4 -0
  231. package/package/core/shared/components/rich-text-editor/prosemirror/inputrules.d.ts +8 -0
  232. package/{core → package/core}/shared/components/rich-text-editor/prosemirror/keymap.d.ts +0 -0
  233. package/package/core/shared/components/rich-text-editor/prosemirror/menu/links.d.ts +4 -0
  234. package/package/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.d.ts +16 -0
  235. package/package/core/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.d.ts +9 -0
  236. package/{core → package/core}/shared/components/rich-text-editor/prosemirror/menu/menu.d.ts +0 -0
  237. package/package/core/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.d.ts +14 -0
  238. package/package/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.d.ts +7 -0
  239. package/package/core/shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin.d.ts +5 -0
  240. package/package/core/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.d.ts +7 -0
  241. package/package/core/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.d.ts +13 -0
  242. package/package/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.d.ts +25 -0
  243. package/package/core/shared/components/rich-text-editor/prosemirror/types.d.ts +9 -0
  244. package/{core → package/core}/shared/components/rich-text-editor/prosemirror/utils.d.ts +0 -0
  245. package/package/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.d.ts +18 -0
  246. package/package/core/shared/components/rich-text-editor/rich-text-editor.component.d.ts +39 -0
  247. package/{core → package/core}/shared/components/select-toggle/select-toggle.component.d.ts +0 -0
  248. package/{core → package/core}/shared/components/simple-dialog/simple-dialog.component.d.ts +0 -0
  249. package/{core → package/core}/shared/components/status-badge/status-badge.component.d.ts +0 -0
  250. package/{core → package/core}/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.d.ts +0 -0
  251. package/{core → package/core}/shared/components/table-row-action/table-row-action.component.d.ts +0 -0
  252. package/{core → package/core}/shared/components/tag-selector/tag-selector.component.d.ts +0 -0
  253. package/{core → package/core}/shared/components/timeline-entry/timeline-entry.component.d.ts +0 -0
  254. package/{core → package/core}/shared/components/title-input/title-input.component.d.ts +0 -0
  255. package/{core → package/core}/shared/components/ui-extension-point/ui-extension-point.component.d.ts +0 -0
  256. package/{core → package/core}/shared/directives/disabled.directive.d.ts +0 -0
  257. package/{core → package/core}/shared/directives/if-default-channel-active.directive.d.ts +0 -0
  258. package/{core → package/core}/shared/directives/if-directive-base.d.ts +0 -0
  259. package/{core → package/core}/shared/directives/if-multichannel.directive.d.ts +0 -0
  260. package/{core → package/core}/shared/directives/if-permissions.directive.d.ts +0 -0
  261. package/{core → package/core}/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.d.ts +0 -0
  262. package/package/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.d.ts +27 -0
  263. package/package/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.d.ts +19 -0
  264. package/package/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.d.ts +20 -0
  265. package/{core → package/core}/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.d.ts +0 -0
  266. package/{core → package/core}/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.d.ts +0 -0
  267. package/{core → package/core}/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.d.ts +0 -0
  268. package/{core → package/core}/shared/dynamic-form-inputs/date-form-input/date-form-input.component.d.ts +0 -0
  269. package/{core → package/core}/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.d.ts +0 -0
  270. package/{core → package/core}/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.d.ts +0 -0
  271. package/{core → package/core}/shared/dynamic-form-inputs/number-form-input/number-form-input.component.d.ts +0 -0
  272. package/{core → package/core}/shared/dynamic-form-inputs/password-form-input/password-form-input.component.d.ts +0 -0
  273. package/{core → package/core}/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.d.ts +0 -0
  274. package/{core → package/core}/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.d.ts +0 -0
  275. package/package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +90 -0
  276. package/{core → package/core}/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.d.ts +0 -0
  277. package/{core → package/core}/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.d.ts +0 -0
  278. package/{core → package/core}/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.d.ts +0 -0
  279. package/{core → package/core}/shared/dynamic-form-inputs/relation-form-input/product/relation-product-input.component.d.ts +0 -0
  280. package/{core → package/core}/shared/dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component.d.ts +0 -0
  281. package/{core → package/core}/shared/dynamic-form-inputs/relation-form-input/relation-card/relation-card.component.d.ts +0 -0
  282. package/{core → package/core}/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.d.ts +0 -0
  283. package/{core → package/core}/shared/dynamic-form-inputs/relation-form-input/relation-selector-dialog/relation-selector-dialog.component.d.ts +0 -0
  284. package/{core → package/core}/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.d.ts +0 -0
  285. package/{core → package/core}/shared/dynamic-form-inputs/select-form-input/select-form-input.component.d.ts +0 -0
  286. package/{core → package/core}/shared/dynamic-form-inputs/text-form-input/text-form-input.component.d.ts +0 -0
  287. package/{core → package/core}/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.d.ts +0 -0
  288. package/{core → package/core}/shared/pipes/asset-preview.pipe.d.ts +0 -0
  289. package/{core → package/core}/shared/pipes/channel-label.pipe.d.ts +0 -0
  290. package/{core → package/core}/shared/pipes/custom-field-label.pipe.d.ts +0 -0
  291. package/{core → package/core}/shared/pipes/duration.pipe.d.ts +0 -0
  292. package/{core → package/core}/shared/pipes/file-size.pipe.d.ts +0 -0
  293. package/{core → package/core}/shared/pipes/has-permission.pipe.d.ts +0 -0
  294. package/{core → package/core}/shared/pipes/locale-base.pipe.d.ts +0 -0
  295. package/{core → package/core}/shared/pipes/locale-currency-name.pipe.d.ts +0 -0
  296. package/{core → package/core}/shared/pipes/locale-currency.pipe.d.ts +0 -0
  297. package/{core → package/core}/shared/pipes/locale-date.pipe.d.ts +0 -0
  298. package/{core → package/core}/shared/pipes/locale-language-name.pipe.d.ts +0 -0
  299. package/{core → package/core}/shared/pipes/locale-region-name.pipe.d.ts +0 -0
  300. package/{core → package/core}/shared/pipes/sentence-case.pipe.d.ts +0 -0
  301. package/{core → package/core}/shared/pipes/sort.pipe.d.ts +0 -0
  302. package/{core → package/core}/shared/pipes/state-i18n-token.pipe.d.ts +0 -0
  303. package/{core → package/core}/shared/pipes/string-to-color.pipe.d.ts +0 -0
  304. package/{core → package/core}/shared/pipes/time-ago.pipe.d.ts +0 -0
  305. package/{core → package/core}/shared/providers/routing/can-deactivate-detail-guard.d.ts +0 -0
  306. package/{core → package/core}/shared/shared.module.d.ts +0 -0
  307. package/{core → package/core}/validators/unicode-pattern.validator.d.ts +0 -0
  308. package/{core → package/core}/vendure-admin-ui-core.d.ts +0 -0
  309. package/package/core/vendure-admin-ui-core.metadata.json +1 -0
  310. package/{customer → package/customer}/components/add-customer-to-group-dialog/add-customer-to-group-dialog.component.d.ts +0 -0
  311. package/{customer → package/customer}/components/address-card/address-card.component.d.ts +0 -0
  312. package/{customer → package/customer}/components/address-detail-dialog/address-detail-dialog.component.d.ts +0 -0
  313. package/{customer → package/customer}/components/customer-detail/customer-detail.component.d.ts +0 -0
  314. package/{customer → package/customer}/components/customer-group-detail-dialog/customer-group-detail-dialog.component.d.ts +0 -0
  315. package/{customer → package/customer}/components/customer-group-list/customer-group-list.component.d.ts +0 -0
  316. package/package/customer/components/customer-group-member-list/customer-group-member-list.component.d.ts +44 -0
  317. package/{customer → package/customer}/components/customer-history/customer-history.component.d.ts +0 -0
  318. package/{customer → package/customer}/components/customer-list/customer-list.component.d.ts +0 -0
  319. package/{customer → package/customer}/components/customer-status-label/customer-status-label.component.d.ts +0 -0
  320. package/{customer → package/customer}/components/select-customer-group-dialog/select-customer-group-dialog.component.d.ts +0 -0
  321. package/{customer → package/customer}/customer.module.d.ts +0 -0
  322. package/{customer → package/customer}/customer.routes.d.ts +0 -0
  323. package/{customer → package/customer}/package.json +0 -0
  324. package/{customer → package/customer}/providers/routing/customer-resolver.d.ts +0 -0
  325. package/{customer → package/customer}/public_api.d.ts +0 -0
  326. package/{customer → package/customer}/vendure-admin-ui-customer.d.ts +0 -0
  327. package/package/customer/vendure-admin-ui-customer.metadata.json +1 -0
  328. package/{dashboard → package/dashboard}/components/dashboard/dashboard.component.d.ts +0 -0
  329. package/{dashboard → package/dashboard}/components/dashboard-widget/dashboard-widget.component.d.ts +0 -0
  330. package/{dashboard → package/dashboard}/dashboard.module.d.ts +0 -0
  331. package/{dashboard → package/dashboard}/dashboard.routes.d.ts +0 -0
  332. package/{dashboard → package/dashboard}/default-widgets.d.ts +0 -0
  333. package/{dashboard → package/dashboard}/package.json +0 -0
  334. package/{dashboard → package/dashboard}/public_api.d.ts +0 -0
  335. package/{dashboard → package/dashboard}/vendure-admin-ui-dashboard.d.ts +0 -0
  336. package/{dashboard → package/dashboard}/vendure-admin-ui-dashboard.metadata.json +0 -0
  337. package/{dashboard → package/dashboard}/widgets/latest-orders-widget/latest-orders-widget.component.d.ts +0 -0
  338. package/{dashboard → package/dashboard}/widgets/order-summary-widget/order-summary-widget.component.d.ts +0 -0
  339. package/{dashboard → package/dashboard}/widgets/test-widget/test-widget.component.d.ts +0 -0
  340. package/{dashboard → package/dashboard}/widgets/welcome-widget/welcome-widget.component.d.ts +0 -0
  341. package/package/esm2015/catalog/catalog.module.js +85 -0
  342. package/{esm2015 → package/esm2015}/catalog/catalog.routes.js +0 -0
  343. package/{esm2015 → package/esm2015}/catalog/components/apply-facet-dialog/apply-facet-dialog.component.js +0 -0
  344. package/{esm2015 → package/esm2015}/catalog/components/asset-detail/asset-detail.component.js +0 -0
  345. package/{esm2015 → package/esm2015}/catalog/components/asset-list/asset-list.component.js +0 -0
  346. package/{esm2015 → package/esm2015}/catalog/components/assets/assets.component.js +0 -0
  347. package/package/esm2015/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.js +112 -0
  348. package/package/esm2015/catalog/components/assign-to-channel-dialog/assign-to-channel-dialog.component.js +51 -0
  349. package/package/esm2015/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.js +89 -0
  350. package/package/esm2015/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.graphql.js +69 -0
  351. package/{esm2015 → package/esm2015}/catalog/components/collection-contents/collection-contents.component.js +0 -0
  352. package/package/esm2015/catalog/components/collection-detail/collection-detail.component.js +244 -0
  353. package/package/esm2015/catalog/components/collection-list/collection-list-bulk-actions.js +147 -0
  354. package/package/esm2015/catalog/components/collection-list/collection-list.component.js +154 -0
  355. package/{esm2015 → package/esm2015}/catalog/components/collection-tree/array-to-tree.js +0 -0
  356. package/package/esm2015/catalog/components/collection-tree/collection-tree-node.component.js +126 -0
  357. package/package/esm2015/catalog/components/collection-tree/collection-tree.component.js +77 -0
  358. package/{esm2015 → package/esm2015}/catalog/components/confirm-variant-deletion-dialog/confirm-variant-deletion-dialog.component.js +0 -0
  359. package/{esm2015 → package/esm2015}/catalog/components/facet-detail/facet-detail.component.js +0 -0
  360. package/package/esm2015/catalog/components/facet-list/facet-list-bulk-actions.js +208 -0
  361. package/package/esm2015/catalog/components/facet-list/facet-list.component.js +116 -0
  362. package/{esm2015 → package/esm2015}/catalog/components/generate-product-variants/generate-product-variants.component.js +0 -0
  363. package/{esm2015 → package/esm2015}/catalog/components/option-value-input/option-value-input.component.js +0 -0
  364. package/package/esm2015/catalog/components/product-detail/product-detail.component.js +527 -0
  365. package/package/esm2015/catalog/components/product-list/product-list-bulk-actions.js +173 -0
  366. package/package/esm2015/catalog/components/product-list/product-list.component.js +158 -0
  367. package/{esm2015 → package/esm2015}/catalog/components/product-options-editor/product-options-editor.component.js +0 -0
  368. package/{esm2015 → package/esm2015}/catalog/components/product-variants-editor/product-variants-editor.component.js +0 -0
  369. package/package/esm2015/catalog/components/product-variants-list/product-variants-list.component.js +214 -0
  370. package/{esm2015 → package/esm2015}/catalog/components/product-variants-table/product-variants-table.component.js +0 -0
  371. package/{esm2015 → package/esm2015}/catalog/components/update-product-option-dialog/update-product-option-dialog.component.js +0 -0
  372. package/{esm2015 → package/esm2015}/catalog/components/variant-price-detail/variant-price-detail.component.js +0 -0
  373. package/{esm2015 → package/esm2015}/catalog/providers/product-detail/product-detail.service.js +0 -0
  374. package/{esm2015 → package/esm2015}/catalog/providers/product-detail/replace-last.js +0 -0
  375. package/{esm2015 → package/esm2015}/catalog/providers/routing/asset-resolver.js +0 -0
  376. package/package/esm2015/catalog/providers/routing/collection-resolver.js +39 -0
  377. package/{esm2015 → package/esm2015}/catalog/providers/routing/facet-resolver.js +0 -0
  378. package/{esm2015 → package/esm2015}/catalog/providers/routing/product-resolver.js +0 -0
  379. package/{esm2015 → package/esm2015}/catalog/providers/routing/product-variants-resolver.js +0 -0
  380. package/package/esm2015/catalog/public_api.js +41 -0
  381. package/{esm2015 → package/esm2015}/catalog/vendure-admin-ui-catalog.js +0 -0
  382. package/{esm2015 → package/esm2015}/core/app.component.js +0 -0
  383. package/{esm2015 → package/esm2015}/core/app.component.module.js +0 -0
  384. package/{esm2015 → package/esm2015}/core/app.config.js +0 -0
  385. package/{esm2015 → package/esm2015}/core/common/base-detail.component.js +0 -0
  386. package/{esm2015 → package/esm2015}/core/common/base-entity-resolver.js +0 -0
  387. package/{esm2015 → package/esm2015}/core/common/base-list.component.js +0 -0
  388. package/package/esm2015/core/common/component-registry-types.js +2 -0
  389. package/{esm2015 → package/esm2015}/core/common/deactivate-aware.js +0 -0
  390. package/{esm2015 → package/esm2015}/core/common/detail-breadcrumb.js +0 -0
  391. package/package/esm2015/core/common/generated-types.js +987 -0
  392. package/{esm2015 → package/esm2015}/core/common/introspection-result-wrapper.js +0 -0
  393. package/package/esm2015/core/common/introspection-result.js +300 -0
  394. package/{esm2015 → package/esm2015}/core/common/single-search-selection-model.js +0 -0
  395. package/package/esm2015/core/common/utilities/bulk-action-utils.js +44 -0
  396. package/{esm2015 → package/esm2015}/core/common/utilities/configurable-operation-utils.js +0 -0
  397. package/{esm2015 → package/esm2015}/core/common/utilities/create-updated-translatable.js +0 -0
  398. package/{esm2015 → package/esm2015}/core/common/utilities/find-translation.js +0 -0
  399. package/{esm2015 → package/esm2015}/core/common/utilities/flatten-facet-values.js +0 -0
  400. package/{esm2015 → package/esm2015}/core/common/utilities/get-default-ui-language.js +0 -0
  401. package/{esm2015 → package/esm2015}/core/common/utilities/interpolate-description.js +0 -0
  402. package/package/esm2015/core/common/utilities/selection-manager.js +96 -0
  403. package/{esm2015 → package/esm2015}/core/common/utilities/string-to-color.js +0 -0
  404. package/package/esm2015/core/common/version.js +3 -0
  405. package/{esm2015 → package/esm2015}/core/components/app-shell/app-shell.component.js +0 -0
  406. package/package/esm2015/core/components/breadcrumb/breadcrumb.component.js +126 -0
  407. package/{esm2015 → package/esm2015}/core/components/channel-switcher/channel-switcher.component.js +0 -0
  408. package/{esm2015 → package/esm2015}/core/components/main-nav/main-nav.component.js +0 -0
  409. package/{esm2015 → package/esm2015}/core/components/notification/notification.component.js +0 -0
  410. package/{esm2015 → package/esm2015}/core/components/overlay-host/overlay-host.component.js +0 -0
  411. package/{esm2015 → package/esm2015}/core/components/theme-switcher/theme-switcher.component.js +0 -0
  412. package/{esm2015 → package/esm2015}/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.js +0 -0
  413. package/{esm2015 → package/esm2015}/core/components/user-menu/user-menu.component.js +0 -0
  414. package/{esm2015 → package/esm2015}/core/core.module.js +0 -0
  415. package/{esm2015 → package/esm2015}/core/data/check-jobs-link.js +0 -0
  416. package/{esm2015 → package/esm2015}/core/data/client-state/client-defaults.js +0 -0
  417. package/{esm2015 → package/esm2015}/core/data/client-state/client-resolvers.js +0 -0
  418. package/{esm2015 → package/esm2015}/core/data/data.module.js +0 -0
  419. package/{esm2015 → package/esm2015}/core/data/definitions/administrator-definitions.js +0 -0
  420. package/{esm2015 → package/esm2015}/core/data/definitions/auth-definitions.js +0 -0
  421. package/{esm2015 → package/esm2015}/core/data/definitions/client-definitions.js +0 -0
  422. package/package/esm2015/core/data/definitions/collection-definitions.js +173 -0
  423. package/{esm2015 → package/esm2015}/core/data/definitions/customer-definitions.js +0 -0
  424. package/package/esm2015/core/data/definitions/facet-definitions.js +140 -0
  425. package/package/esm2015/core/data/definitions/order-definitions.js +585 -0
  426. package/package/esm2015/core/data/definitions/product-definitions.js +759 -0
  427. package/{esm2015 → package/esm2015}/core/data/definitions/promotion-definitions.js +0 -0
  428. package/{esm2015 → package/esm2015}/core/data/definitions/settings-definitions.js +0 -0
  429. package/{esm2015 → package/esm2015}/core/data/definitions/shared-definitions.js +0 -0
  430. package/{esm2015 → package/esm2015}/core/data/definitions/shipping-definitions.js +0 -0
  431. package/{esm2015 → package/esm2015}/core/data/omit-typename-link.js +0 -0
  432. package/{esm2015 → package/esm2015}/core/data/providers/administrator-data.service.js +0 -0
  433. package/{esm2015 → package/esm2015}/core/data/providers/auth-data.service.js +0 -0
  434. package/{esm2015 → package/esm2015}/core/data/providers/base-data.service.js +0 -0
  435. package/{esm2015 → package/esm2015}/core/data/providers/client-data.service.js +0 -0
  436. package/package/esm2015/core/data/providers/collection-data.service.js +90 -0
  437. package/package/esm2015/core/data/providers/customer-data.service.js +121 -0
  438. package/{esm2015 → package/esm2015}/core/data/providers/data.service.js +0 -0
  439. package/package/esm2015/core/data/providers/facet-data.service.js +76 -0
  440. package/{esm2015 → package/esm2015}/core/data/providers/fetch-adapter.js +0 -0
  441. package/{esm2015 → package/esm2015}/core/data/providers/interceptor.js +0 -0
  442. package/package/esm2015/core/data/providers/order-data.service.js +139 -0
  443. package/package/esm2015/core/data/providers/product-data.service.js +240 -0
  444. package/{esm2015 → package/esm2015}/core/data/providers/promotion-data.service.js +0 -0
  445. package/{esm2015 → package/esm2015}/core/data/providers/settings-data.service.js +0 -0
  446. package/{esm2015 → package/esm2015}/core/data/providers/shipping-method-data.service.js +0 -0
  447. package/{esm2015 → package/esm2015}/core/data/query-result.js +0 -0
  448. package/{esm2015 → package/esm2015}/core/data/server-config.js +0 -0
  449. package/{esm2015 → package/esm2015}/core/data/utils/add-custom-fields.js +0 -0
  450. package/{esm2015 → package/esm2015}/core/data/utils/get-server-location.js +0 -0
  451. package/package/esm2015/core/data/utils/remove-readonly-custom-fields.js +95 -0
  452. package/{esm2015 → package/esm2015}/core/data/utils/transform-relation-custom-field-inputs.js +0 -0
  453. package/{esm2015 → package/esm2015}/core/providers/auth/auth.service.js +0 -0
  454. package/package/esm2015/core/providers/bulk-action-registry/bulk-action-registry.service.js +27 -0
  455. package/package/esm2015/core/providers/bulk-action-registry/bulk-action-types.js +2 -0
  456. package/package/esm2015/core/providers/bulk-action-registry/register-bulk-action.js +63 -0
  457. package/{esm2015 → package/esm2015}/core/providers/component-registry/component-registry.service.js +0 -0
  458. package/{esm2015 → package/esm2015}/core/providers/custom-detail-component/custom-detail-component-types.js +0 -0
  459. package/{esm2015 → package/esm2015}/core/providers/custom-detail-component/custom-detail-component.service.js +0 -0
  460. package/{esm2015 → package/esm2015}/core/providers/custom-field-component/custom-field-component.service.js +0 -0
  461. package/{esm2015 → package/esm2015}/core/providers/dashboard-widget/dashboard-widget-types.js +0 -0
  462. package/package/esm2015/core/providers/dashboard-widget/dashboard-widget.service.js +94 -0
  463. package/{esm2015 → package/esm2015}/core/providers/dashboard-widget/register-dashboard-widget.js +0 -0
  464. package/{esm2015 → package/esm2015}/core/providers/guard/auth.guard.js +0 -0
  465. package/{esm2015 → package/esm2015}/core/providers/health-check/health-check.service.js +0 -0
  466. package/{esm2015 → package/esm2015}/core/providers/i18n/custom-http-loader.js +0 -0
  467. package/{esm2015 → package/esm2015}/core/providers/i18n/custom-message-format-compiler.js +0 -0
  468. package/{esm2015 → package/esm2015}/core/providers/i18n/i18n.service.js +0 -0
  469. package/{esm2015 → package/esm2015}/core/providers/job-queue/job-queue.service.js +0 -0
  470. package/{esm2015 → package/esm2015}/core/providers/local-storage/local-storage.service.js +0 -0
  471. package/package/esm2015/core/providers/modal/modal.service.js +101 -0
  472. package/package/esm2015/core/providers/nav-builder/nav-builder-types.js +2 -0
  473. package/{esm2015 → package/esm2015}/core/providers/nav-builder/nav-builder.service.js +0 -0
  474. package/{esm2015 → package/esm2015}/core/providers/notification/notification.service.js +0 -0
  475. package/{esm2015 → package/esm2015}/core/providers/overlay-host/overlay-host.service.js +0 -0
  476. package/package/esm2015/core/public_api.js +241 -0
  477. package/package/esm2015/core/shared/components/action-bar/action-bar.component.js +43 -0
  478. package/{esm2015 → package/esm2015}/core/shared/components/action-bar-items/action-bar-items.component.js +0 -0
  479. package/{esm2015 → package/esm2015}/core/shared/components/address-form/address-form.component.js +0 -0
  480. package/{esm2015 → package/esm2015}/core/shared/components/affixed-input/affixed-input.component.js +0 -0
  481. package/{esm2015 → package/esm2015}/core/shared/components/affixed-input/percentage-suffix-input.component.js +0 -0
  482. package/{esm2015 → package/esm2015}/core/shared/components/asset-file-input/asset-file-input.component.js +0 -0
  483. package/package/esm2015/core/shared/components/asset-gallery/asset-gallery.component.js +84 -0
  484. package/{esm2015 → package/esm2015}/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.js +0 -0
  485. package/{esm2015 → package/esm2015}/core/shared/components/asset-preview/asset-preview.component.js +0 -0
  486. package/{esm2015 → package/esm2015}/core/shared/components/asset-preview-dialog/asset-preview-dialog.component.js +0 -0
  487. package/{esm2015 → package/esm2015}/core/shared/components/asset-preview-links/asset-preview-links.component.js +0 -0
  488. package/{esm2015 → package/esm2015}/core/shared/components/asset-search-input/asset-search-input.component.js +0 -0
  489. package/package/esm2015/core/shared/components/bulk-action-menu/bulk-action-menu.component.js +99 -0
  490. package/{esm2015 → package/esm2015}/core/shared/components/channel-assignment-control/channel-assignment-control.component.js +0 -0
  491. package/{esm2015 → package/esm2015}/core/shared/components/channel-badge/channel-badge.component.js +0 -0
  492. package/{esm2015 → package/esm2015}/core/shared/components/chip/chip.component.js +0 -0
  493. package/{esm2015 → package/esm2015}/core/shared/components/configurable-input/configurable-input.component.js +0 -0
  494. package/{esm2015 → package/esm2015}/core/shared/components/currency-input/currency-input.component.js +0 -0
  495. package/{esm2015 → package/esm2015}/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.js +0 -0
  496. package/{esm2015 → package/esm2015}/core/shared/components/custom-field-control/custom-field-control.component.js +0 -0
  497. package/{esm2015 → package/esm2015}/core/shared/components/customer-label/customer-label.component.js +0 -0
  498. package/{esm2015 → package/esm2015}/core/shared/components/data-table/data-table-column.component.js +0 -0
  499. package/package/esm2015/core/shared/components/data-table/data-table.component.js +162 -0
  500. package/{esm2015 → package/esm2015}/core/shared/components/datetime-picker/constants.js +0 -0
  501. package/{esm2015 → package/esm2015}/core/shared/components/datetime-picker/datetime-picker.component.js +0 -0
  502. package/{esm2015 → package/esm2015}/core/shared/components/datetime-picker/datetime-picker.service.js +0 -0
  503. package/{esm2015 → package/esm2015}/core/shared/components/datetime-picker/types.js +0 -0
  504. package/{esm2015 → package/esm2015}/core/shared/components/dropdown/dropdown-item.directive.js +0 -0
  505. package/package/esm2015/core/shared/components/dropdown/dropdown-menu.component.js +122 -0
  506. package/{esm2015 → package/esm2015}/core/shared/components/dropdown/dropdown-trigger.directive.js +0 -0
  507. package/{esm2015 → package/esm2015}/core/shared/components/dropdown/dropdown.component.js +0 -0
  508. package/{esm2015 → package/esm2015}/core/shared/components/edit-note-dialog/edit-note-dialog.component.js +0 -0
  509. package/{esm2015 → package/esm2015}/core/shared/components/empty-placeholder/empty-placeholder.component.js +0 -0
  510. package/{esm2015 → package/esm2015}/core/shared/components/entity-info/entity-info.component.js +0 -0
  511. package/{esm2015 → package/esm2015}/core/shared/components/extension-host/extension-host-config.js +0 -0
  512. package/{esm2015 → package/esm2015}/core/shared/components/extension-host/extension-host.component.js +0 -0
  513. package/{esm2015 → package/esm2015}/core/shared/components/extension-host/extension-host.service.js +0 -0
  514. package/{esm2015 → package/esm2015}/core/shared/components/extension-host/host-external-frame.js +0 -0
  515. package/{esm2015 → package/esm2015}/core/shared/components/facet-value-chip/facet-value-chip.component.js +0 -0
  516. package/package/esm2015/core/shared/components/facet-value-selector/facet-value-selector.component.js +117 -0
  517. package/{esm2015 → package/esm2015}/core/shared/components/focal-point-control/focal-point-control.component.js +0 -0
  518. package/{esm2015 → package/esm2015}/core/shared/components/form-field/form-field-control.directive.js +0 -0
  519. package/{esm2015 → package/esm2015}/core/shared/components/form-field/form-field.component.js +0 -0
  520. package/{esm2015 → package/esm2015}/core/shared/components/form-item/form-item.component.js +0 -0
  521. package/{esm2015 → package/esm2015}/core/shared/components/formatted-address/formatted-address.component.js +0 -0
  522. package/{esm2015 → package/esm2015}/core/shared/components/help-tooltip/help-tooltip.component.js +0 -0
  523. package/{esm2015 → package/esm2015}/core/shared/components/history-entry-detail/history-entry-detail.component.js +0 -0
  524. package/{esm2015 → package/esm2015}/core/shared/components/items-per-page-controls/items-per-page-controls.component.js +0 -0
  525. package/{esm2015 → package/esm2015}/core/shared/components/labeled-data/labeled-data.component.js +0 -0
  526. package/package/esm2015/core/shared/components/language-selector/language-selector.component.js +21 -0
  527. package/{esm2015 → package/esm2015}/core/shared/components/manage-tags-dialog/manage-tags-dialog.component.js +0 -0
  528. package/{esm2015 → package/esm2015}/core/shared/components/modal-dialog/dialog-buttons.directive.js +0 -0
  529. package/{esm2015 → package/esm2015}/core/shared/components/modal-dialog/dialog-component-outlet.component.js +0 -0
  530. package/{esm2015 → package/esm2015}/core/shared/components/modal-dialog/dialog-title.directive.js +0 -0
  531. package/{esm2015 → package/esm2015}/core/shared/components/modal-dialog/modal-dialog.component.js +0 -0
  532. package/{esm2015 → package/esm2015}/core/shared/components/object-tree/object-tree.component.js +0 -0
  533. package/package/esm2015/core/shared/components/order-state-label/order-state-label.component.js +44 -0
  534. package/{esm2015 → package/esm2015}/core/shared/components/pagination-controls/pagination-controls.component.js +0 -0
  535. package/{esm2015 → package/esm2015}/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.js +0 -0
  536. package/package/esm2015/core/shared/components/product-search-input/product-search-input.component.js +104 -0
  537. package/package/esm2015/core/shared/components/product-selector/product-selector.component.js +61 -0
  538. package/package/esm2015/core/shared/components/radio-card/radio-card-fieldset.component.js +57 -0
  539. package/package/esm2015/core/shared/components/radio-card/radio-card.component.js +54 -0
  540. package/package/esm2015/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.js +32 -0
  541. package/{esm2015 → package/esm2015}/core/shared/components/rich-text-editor/link-dialog/link-dialog.component.js +0 -0
  542. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.js +140 -0
  543. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.js +45 -0
  544. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/custom-nodes.js +60 -0
  545. package/{esm2015 → package/esm2015}/core/shared/components/rich-text-editor/prosemirror/inputrules.js +0 -0
  546. package/{esm2015 → package/esm2015}/core/shared/components/rich-text-editor/prosemirror/keymap.js +0 -0
  547. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/links.js +69 -0
  548. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.js +42 -0
  549. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.js +12 -0
  550. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/menu.js +247 -0
  551. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.js +16 -0
  552. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.js +100 -0
  553. package/{esm2015 → package/esm2015}/core/shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin.js +0 -0
  554. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.js +97 -0
  555. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.js +166 -0
  556. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.js +142 -0
  557. package/package/esm2015/core/shared/components/rich-text-editor/prosemirror/types.js +2 -0
  558. package/{esm2015 → package/esm2015}/core/shared/components/rich-text-editor/prosemirror/utils.js +0 -0
  559. package/package/esm2015/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.js +57 -0
  560. package/package/esm2015/core/shared/components/rich-text-editor/rich-text-editor.component.js +97 -0
  561. package/{esm2015 → package/esm2015}/core/shared/components/select-toggle/select-toggle.component.js +0 -0
  562. package/package/esm2015/core/shared/components/simple-dialog/simple-dialog.component.js +21 -0
  563. package/{esm2015 → package/esm2015}/core/shared/components/status-badge/status-badge.component.js +0 -0
  564. package/{esm2015 → package/esm2015}/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.js +0 -0
  565. package/{esm2015 → package/esm2015}/core/shared/components/table-row-action/table-row-action.component.js +0 -0
  566. package/{esm2015 → package/esm2015}/core/shared/components/tag-selector/tag-selector.component.js +0 -0
  567. package/{esm2015 → package/esm2015}/core/shared/components/timeline-entry/timeline-entry.component.js +0 -0
  568. package/{esm2015 → package/esm2015}/core/shared/components/title-input/title-input.component.js +0 -0
  569. package/{esm2015 → package/esm2015}/core/shared/components/ui-extension-point/ui-extension-point.component.js +0 -0
  570. package/{esm2015 → package/esm2015}/core/shared/directives/disabled.directive.js +0 -0
  571. package/{esm2015 → package/esm2015}/core/shared/directives/if-default-channel-active.directive.js +0 -0
  572. package/{esm2015 → package/esm2015}/core/shared/directives/if-directive-base.js +0 -0
  573. package/{esm2015 → package/esm2015}/core/shared/directives/if-multichannel.directive.js +0 -0
  574. package/{esm2015 → package/esm2015}/core/shared/directives/if-permissions.directive.js +0 -0
  575. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.js +0 -0
  576. package/package/esm2015/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.js +59 -0
  577. package/package/esm2015/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.js +66 -0
  578. package/package/esm2015/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.js +88 -0
  579. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.js +0 -0
  580. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.js +0 -0
  581. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.js +0 -0
  582. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/date-form-input/date-form-input.component.js +0 -0
  583. package/package/esm2015/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.js +266 -0
  584. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.js +0 -0
  585. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.js +0 -0
  586. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.js +0 -0
  587. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.js +0 -0
  588. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.js +0 -0
  589. package/package/esm2015/core/shared/dynamic-form-inputs/register-dynamic-input-components.js +136 -0
  590. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.js +0 -0
  591. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.js +0 -0
  592. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.js +0 -0
  593. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/relation-form-input/product/relation-product-input.component.js +0 -0
  594. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component.js +0 -0
  595. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/relation-form-input/relation-card/relation-card.component.js +0 -0
  596. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.js +0 -0
  597. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/relation-form-input/relation-selector-dialog/relation-selector-dialog.component.js +0 -0
  598. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.js +0 -0
  599. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.js +0 -0
  600. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.js +0 -0
  601. package/{esm2015 → package/esm2015}/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.js +0 -0
  602. package/{esm2015 → package/esm2015}/core/shared/pipes/asset-preview.pipe.js +0 -0
  603. package/{esm2015 → package/esm2015}/core/shared/pipes/channel-label.pipe.js +0 -0
  604. package/{esm2015 → package/esm2015}/core/shared/pipes/custom-field-label.pipe.js +0 -0
  605. package/{esm2015 → package/esm2015}/core/shared/pipes/duration.pipe.js +0 -0
  606. package/{esm2015 → package/esm2015}/core/shared/pipes/file-size.pipe.js +0 -0
  607. package/{esm2015 → package/esm2015}/core/shared/pipes/has-permission.pipe.js +0 -0
  608. package/{esm2015 → package/esm2015}/core/shared/pipes/locale-base.pipe.js +0 -0
  609. package/{esm2015 → package/esm2015}/core/shared/pipes/locale-currency-name.pipe.js +0 -0
  610. package/{esm2015 → package/esm2015}/core/shared/pipes/locale-currency.pipe.js +0 -0
  611. package/{esm2015 → package/esm2015}/core/shared/pipes/locale-date.pipe.js +0 -0
  612. package/{esm2015 → package/esm2015}/core/shared/pipes/locale-language-name.pipe.js +0 -0
  613. package/{esm2015 → package/esm2015}/core/shared/pipes/locale-region-name.pipe.js +0 -0
  614. package/{esm2015 → package/esm2015}/core/shared/pipes/sentence-case.pipe.js +0 -0
  615. package/{esm2015 → package/esm2015}/core/shared/pipes/sort.pipe.js +0 -0
  616. package/package/esm2015/core/shared/pipes/state-i18n-token.pipe.js +47 -0
  617. package/{esm2015 → package/esm2015}/core/shared/pipes/string-to-color.pipe.js +0 -0
  618. package/{esm2015 → package/esm2015}/core/shared/pipes/time-ago.pipe.js +0 -0
  619. package/{esm2015 → package/esm2015}/core/shared/providers/routing/can-deactivate-detail-guard.js +0 -0
  620. package/package/esm2015/core/shared/shared.module.js +287 -0
  621. package/{esm2015 → package/esm2015}/core/validators/unicode-pattern.validator.js +0 -0
  622. package/{esm2015 → package/esm2015}/core/vendure-admin-ui-core.js +0 -0
  623. package/{esm2015 → package/esm2015}/customer/components/add-customer-to-group-dialog/add-customer-to-group-dialog.component.js +0 -0
  624. package/{esm2015 → package/esm2015}/customer/components/address-card/address-card.component.js +0 -0
  625. package/{esm2015 → package/esm2015}/customer/components/address-detail-dialog/address-detail-dialog.component.js +0 -0
  626. package/{esm2015 → package/esm2015}/customer/components/customer-detail/customer-detail.component.js +0 -0
  627. package/{esm2015 → package/esm2015}/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.js +0 -0
  628. package/package/esm2015/customer/components/customer-group-list/customer-group-list.component.js +198 -0
  629. package/package/esm2015/customer/components/customer-group-member-list/customer-group-member-list.component.js +101 -0
  630. package/{esm2015 → package/esm2015}/customer/components/customer-history/customer-history.component.js +0 -0
  631. package/package/esm2015/customer/components/customer-list/customer-list.component.js +81 -0
  632. package/{esm2015 → package/esm2015}/customer/components/customer-status-label/customer-status-label.component.js +0 -0
  633. package/{esm2015 → package/esm2015}/customer/components/select-customer-group-dialog/select-customer-group-dialog.component.js +0 -0
  634. package/{esm2015 → package/esm2015}/customer/customer.module.js +0 -0
  635. package/{esm2015 → package/esm2015}/customer/customer.routes.js +0 -0
  636. package/{esm2015 → package/esm2015}/customer/providers/routing/customer-resolver.js +0 -0
  637. package/{esm2015 → package/esm2015}/customer/public_api.js +0 -0
  638. package/{esm2015 → package/esm2015}/customer/vendure-admin-ui-customer.js +0 -0
  639. package/{esm2015 → package/esm2015}/dashboard/components/dashboard/dashboard.component.js +0 -0
  640. package/{esm2015 → package/esm2015}/dashboard/components/dashboard-widget/dashboard-widget.component.js +0 -0
  641. package/package/esm2015/dashboard/dashboard.module.js +29 -0
  642. package/{esm2015 → package/esm2015}/dashboard/dashboard.routes.js +0 -0
  643. package/{esm2015 → package/esm2015}/dashboard/default-widgets.js +0 -0
  644. package/{esm2015 → package/esm2015}/dashboard/public_api.js +0 -0
  645. package/{esm2015 → package/esm2015}/dashboard/vendure-admin-ui-dashboard.js +0 -0
  646. package/{esm2015 → package/esm2015}/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.js +0 -0
  647. package/{esm2015 → package/esm2015}/dashboard/widgets/order-summary-widget/order-summary-widget.component.js +0 -0
  648. package/{esm2015 → package/esm2015}/dashboard/widgets/test-widget/test-widget.component.js +0 -0
  649. package/{esm2015 → package/esm2015}/dashboard/widgets/welcome-widget/welcome-widget.component.js +0 -0
  650. package/{esm2015 → package/esm2015}/login/components/login/login.component.js +0 -0
  651. package/{esm2015 → package/esm2015}/login/login.module.js +0 -0
  652. package/{esm2015 → package/esm2015}/login/login.routes.js +0 -0
  653. package/{esm2015 → package/esm2015}/login/providers/login.guard.js +0 -0
  654. package/{esm2015 → package/esm2015}/login/public_api.js +0 -0
  655. package/{esm2015 → package/esm2015}/login/vendure-admin-ui-login.js +0 -0
  656. package/{esm2015 → package/esm2015}/marketing/components/promotion-detail/promotion-detail.component.js +0 -0
  657. package/{esm2015 → package/esm2015}/marketing/components/promotion-list/promotion-list.component.js +0 -0
  658. package/{esm2015 → package/esm2015}/marketing/marketing.module.js +0 -0
  659. package/{esm2015 → package/esm2015}/marketing/marketing.routes.js +0 -0
  660. package/{esm2015 → package/esm2015}/marketing/providers/routing/promotion-resolver.js +0 -0
  661. package/{esm2015 → package/esm2015}/marketing/public_api.js +0 -0
  662. package/{esm2015 → package/esm2015}/marketing/vendure-admin-ui-marketing.js +0 -0
  663. package/{esm2015 → package/esm2015}/order/components/add-manual-payment-dialog/add-manual-payment-dialog.component.js +0 -0
  664. package/{esm2015 → package/esm2015}/order/components/cancel-order-dialog/cancel-order-dialog.component.js +0 -0
  665. package/package/esm2015/order/components/coupon-code-selector/coupon-code-selector.component.js +42 -0
  666. package/package/esm2015/order/components/draft-order-detail/draft-order-detail.component.js +195 -0
  667. package/package/esm2015/order/components/draft-order-variant-selector/draft-order-variant-selector.component.js +59 -0
  668. package/{esm2015 → package/esm2015}/order/components/fulfill-order-dialog/fulfill-order-dialog.component.js +0 -0
  669. package/{esm2015 → package/esm2015}/order/components/fulfillment-card/fulfillment-card.component.js +0 -0
  670. package/{esm2015 → package/esm2015}/order/components/fulfillment-detail/fulfillment-detail.component.js +0 -0
  671. package/{esm2015 → package/esm2015}/order/components/fulfillment-state-label/fulfillment-state-label.component.js +0 -0
  672. package/{esm2015 → package/esm2015}/order/components/line-fulfillment/line-fulfillment.component.js +0 -0
  673. package/{esm2015 → package/esm2015}/order/components/line-refunds/line-refunds.component.js +0 -0
  674. package/{esm2015 → package/esm2015}/order/components/modification-detail/modification-detail.component.js +0 -0
  675. package/{esm2015 → package/esm2015}/order/components/order-custom-fields-card/order-custom-fields-card.component.js +0 -0
  676. package/package/esm2015/order/components/order-detail/order-detail.component.js +550 -0
  677. package/package/esm2015/order/components/order-editor/order-editor.component.js +375 -0
  678. package/{esm2015 → package/esm2015}/order/components/order-edits-preview-dialog/order-edits-preview-dialog.component.js +0 -0
  679. package/{esm2015 → package/esm2015}/order/components/order-history/order-history.component.js +0 -0
  680. package/package/esm2015/order/components/order-list/order-list.component.js +211 -0
  681. package/{esm2015 → package/esm2015}/order/components/order-payment-card/order-payment-card.component.js +0 -0
  682. package/{esm2015 → package/esm2015}/order/components/order-process-graph/constants.js +0 -0
  683. package/{esm2015 → package/esm2015}/order/components/order-process-graph/order-process-edge.component.js +0 -0
  684. package/{esm2015 → package/esm2015}/order/components/order-process-graph/order-process-graph.component.js +0 -0
  685. package/{esm2015 → package/esm2015}/order/components/order-process-graph/order-process-node.component.js +0 -0
  686. package/{esm2015 → package/esm2015}/order/components/order-process-graph/types.js +0 -0
  687. package/{esm2015 → package/esm2015}/order/components/order-process-graph-dialog/order-process-graph-dialog.component.js +0 -0
  688. package/{esm2015 → package/esm2015}/order/components/order-state-select-dialog/order-state-select-dialog.component.js +0 -0
  689. package/package/esm2015/order/components/order-table/order-table.component.js +87 -0
  690. package/{esm2015 → package/esm2015}/order/components/payment-detail/payment-detail.component.js +0 -0
  691. package/{esm2015 → package/esm2015}/order/components/payment-state-label/payment-state-label.component.js +0 -0
  692. package/{esm2015 → package/esm2015}/order/components/refund-order-dialog/refund-order-dialog.component.js +0 -0
  693. package/{esm2015 → package/esm2015}/order/components/refund-state-label/refund-state-label.component.js +0 -0
  694. package/package/esm2015/order/components/select-address-dialog/select-address-dialog.component.js +91 -0
  695. package/package/esm2015/order/components/select-address-dialog/select-address-dialog.graphql.js +14 -0
  696. package/package/esm2015/order/components/select-customer-dialog/select-customer-dialog.component.js +59 -0
  697. package/package/esm2015/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.js +30 -0
  698. package/{esm2015 → package/esm2015}/order/components/settle-refund-dialog/settle-refund-dialog.component.js +0 -0
  699. package/{esm2015 → package/esm2015}/order/components/simple-item-list/simple-item-list.component.js +0 -0
  700. package/package/esm2015/order/order.module.js +82 -0
  701. package/package/esm2015/order/order.routes.js +73 -0
  702. package/{esm2015 → package/esm2015}/order/providers/order-transition.service.js +0 -0
  703. package/package/esm2015/order/providers/routing/order-resolver.js +50 -0
  704. package/package/esm2015/order/providers/routing/order.guard.js +41 -0
  705. package/package/esm2015/order/public_api.js +44 -0
  706. package/{esm2015 → package/esm2015}/order/vendure-admin-ui-order.js +0 -0
  707. package/{esm2015 → package/esm2015}/public_api.js +0 -0
  708. package/{esm2015 → package/esm2015}/settings/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.js +0 -0
  709. package/{esm2015 → package/esm2015}/settings/components/admin-detail/admin-detail.component.js +0 -0
  710. package/{esm2015 → package/esm2015}/settings/components/administrator-list/administrator-list.component.js +0 -0
  711. package/{esm2015 → package/esm2015}/settings/components/channel-detail/channel-detail.component.js +0 -0
  712. package/{esm2015 → package/esm2015}/settings/components/channel-list/channel-list.component.js +0 -0
  713. package/{esm2015 → package/esm2015}/settings/components/country-detail/country-detail.component.js +0 -0
  714. package/package/esm2015/settings/components/country-list/country-list.component.js +82 -0
  715. package/{esm2015 → package/esm2015}/settings/components/global-settings/global-settings.component.js +0 -0
  716. package/{esm2015 → package/esm2015}/settings/components/payment-method-detail/payment-method-detail.component.js +0 -0
  717. package/{esm2015 → package/esm2015}/settings/components/payment-method-list/payment-method-list.component.js +0 -0
  718. package/{esm2015 → package/esm2015}/settings/components/permission-grid/permission-grid.component.js +0 -0
  719. package/package/esm2015/settings/components/profile/profile.component.js +82 -0
  720. package/{esm2015 → package/esm2015}/settings/components/role-detail/role-detail.component.js +0 -0
  721. package/{esm2015 → package/esm2015}/settings/components/role-list/role-list.component.js +0 -0
  722. package/{esm2015 → package/esm2015}/settings/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.js +0 -0
  723. package/{esm2015 → package/esm2015}/settings/components/shipping-method-detail/shipping-method-detail.component.js +0 -0
  724. package/{esm2015 → package/esm2015}/settings/components/shipping-method-list/shipping-method-list.component.js +0 -0
  725. package/{esm2015 → package/esm2015}/settings/components/shipping-method-test-result/shipping-method-test-result.component.js +0 -0
  726. package/{esm2015 → package/esm2015}/settings/components/tax-category-detail/tax-category-detail.component.js +0 -0
  727. package/{esm2015 → package/esm2015}/settings/components/tax-category-list/tax-category-list.component.js +0 -0
  728. package/{esm2015 → package/esm2015}/settings/components/tax-rate-detail/tax-rate-detail.component.js +0 -0
  729. package/{esm2015 → package/esm2015}/settings/components/tax-rate-list/tax-rate-list.component.js +0 -0
  730. package/{esm2015 → package/esm2015}/settings/components/test-address-form/test-address-form.component.js +0 -0
  731. package/{esm2015 → package/esm2015}/settings/components/test-order-builder/test-order-builder.component.js +0 -0
  732. package/{esm2015 → package/esm2015}/settings/components/zone-detail-dialog/zone-detail-dialog.component.js +0 -0
  733. package/package/esm2015/settings/components/zone-list/zone-list.component.js +160 -0
  734. package/{esm2015 → package/esm2015}/settings/components/zone-member-list/zone-member-controls.directive.js +0 -0
  735. package/{esm2015 → package/esm2015}/settings/components/zone-member-list/zone-member-list-header.directive.js +0 -0
  736. package/package/esm2015/settings/components/zone-member-list/zone-member-list.component.js +63 -0
  737. package/{esm2015 → package/esm2015}/settings/providers/routing/administrator-resolver.js +0 -0
  738. package/{esm2015 → package/esm2015}/settings/providers/routing/channel-resolver.js +0 -0
  739. package/{esm2015 → package/esm2015}/settings/providers/routing/country-resolver.js +0 -0
  740. package/{esm2015 → package/esm2015}/settings/providers/routing/global-settings-resolver.js +0 -0
  741. package/{esm2015 → package/esm2015}/settings/providers/routing/payment-method-resolver.js +0 -0
  742. package/{esm2015 → package/esm2015}/settings/providers/routing/profile-resolver.js +0 -0
  743. package/{esm2015 → package/esm2015}/settings/providers/routing/role-resolver.js +0 -0
  744. package/{esm2015 → package/esm2015}/settings/providers/routing/shipping-method-resolver.js +0 -0
  745. package/{esm2015 → package/esm2015}/settings/providers/routing/tax-category-resolver.js +0 -0
  746. package/{esm2015 → package/esm2015}/settings/providers/routing/tax-rate-resolver.js +0 -0
  747. package/{esm2015 → package/esm2015}/settings/public_api.js +0 -0
  748. package/{esm2015 → package/esm2015}/settings/settings.module.js +0 -0
  749. package/{esm2015 → package/esm2015}/settings/settings.routes.js +0 -0
  750. package/{esm2015 → package/esm2015}/settings/vendure-admin-ui-settings.js +0 -0
  751. package/package/esm2015/system/components/health-check/health-check.component.js +19 -0
  752. package/{esm2015 → package/esm2015}/system/components/job-list/job-list.component.js +0 -0
  753. package/{esm2015 → package/esm2015}/system/components/job-state-label/job-state-label.component.js +0 -0
  754. package/{esm2015 → package/esm2015}/system/public_api.js +0 -0
  755. package/{esm2015 → package/esm2015}/system/system.module.js +0 -0
  756. package/{esm2015 → package/esm2015}/system/system.routes.js +0 -0
  757. package/{esm2015 → package/esm2015}/system/vendure-admin-ui-system.js +0 -0
  758. package/{esm2015 → package/esm2015}/vendure-admin-ui.js +0 -0
  759. package/package/fesm2015/vendure-admin-ui-catalog.js +4768 -0
  760. package/package/fesm2015/vendure-admin-ui-catalog.js.map +1 -0
  761. package/package/fesm2015/vendure-admin-ui-core.js +17900 -0
  762. package/package/fesm2015/vendure-admin-ui-core.js.map +1 -0
  763. package/package/fesm2015/vendure-admin-ui-customer.js +1184 -0
  764. package/package/fesm2015/vendure-admin-ui-customer.js.map +1 -0
  765. package/package/fesm2015/vendure-admin-ui-dashboard.js +375 -0
  766. package/package/fesm2015/vendure-admin-ui-dashboard.js.map +1 -0
  767. package/{fesm2015 → package/fesm2015}/vendure-admin-ui-login.js +0 -0
  768. package/{fesm2015 → package/fesm2015}/vendure-admin-ui-login.js.map +0 -0
  769. package/{fesm2015 → package/fesm2015}/vendure-admin-ui-marketing.js +0 -0
  770. package/{fesm2015 → package/fesm2015}/vendure-admin-ui-marketing.js.map +0 -0
  771. package/package/fesm2015/vendure-admin-ui-order.js +3155 -0
  772. package/package/fesm2015/vendure-admin-ui-order.js.map +1 -0
  773. package/package/fesm2015/vendure-admin-ui-settings.js +2977 -0
  774. package/package/fesm2015/vendure-admin-ui-settings.js.map +1 -0
  775. package/package/fesm2015/vendure-admin-ui-system.js +171 -0
  776. package/{fesm2015 → package/fesm2015}/vendure-admin-ui-system.js.map +0 -0
  777. package/{fesm2015 → package/fesm2015}/vendure-admin-ui.js +0 -0
  778. package/{fesm2015 → package/fesm2015}/vendure-admin-ui.js.map +0 -0
  779. package/{login → package/login}/components/login/login.component.d.ts +0 -0
  780. package/{login → package/login}/login.module.d.ts +0 -0
  781. package/{login → package/login}/login.routes.d.ts +0 -0
  782. package/{login → package/login}/package.json +0 -0
  783. package/{login → package/login}/providers/login.guard.d.ts +0 -0
  784. package/{login → package/login}/public_api.d.ts +0 -0
  785. package/{login → package/login}/vendure-admin-ui-login.d.ts +0 -0
  786. package/{login → package/login}/vendure-admin-ui-login.metadata.json +0 -0
  787. package/{marketing → package/marketing}/components/promotion-detail/promotion-detail.component.d.ts +0 -0
  788. package/{marketing → package/marketing}/components/promotion-list/promotion-list.component.d.ts +0 -0
  789. package/{marketing → package/marketing}/marketing.module.d.ts +0 -0
  790. package/{marketing → package/marketing}/marketing.routes.d.ts +0 -0
  791. package/{marketing → package/marketing}/package.json +0 -0
  792. package/{marketing → package/marketing}/providers/routing/promotion-resolver.d.ts +0 -0
  793. package/{marketing → package/marketing}/public_api.d.ts +0 -0
  794. package/{marketing → package/marketing}/vendure-admin-ui-marketing.d.ts +0 -0
  795. package/{marketing → package/marketing}/vendure-admin-ui-marketing.metadata.json +0 -0
  796. package/{order → package/order}/components/add-manual-payment-dialog/add-manual-payment-dialog.component.d.ts +0 -0
  797. package/{order → package/order}/components/cancel-order-dialog/cancel-order-dialog.component.d.ts +0 -0
  798. package/package/order/components/coupon-code-selector/coupon-code-selector.component.d.ts +18 -0
  799. package/package/order/components/draft-order-detail/draft-order-detail.component.d.ts +49 -0
  800. package/package/order/components/draft-order-variant-selector/draft-order-variant-selector.component.d.ts +21 -0
  801. package/{order → package/order}/components/fulfill-order-dialog/fulfill-order-dialog.component.d.ts +0 -0
  802. package/{order → package/order}/components/fulfillment-card/fulfillment-card.component.d.ts +0 -0
  803. package/{order → package/order}/components/fulfillment-detail/fulfillment-detail.component.d.ts +0 -0
  804. package/{order → package/order}/components/fulfillment-state-label/fulfillment-state-label.component.d.ts +0 -0
  805. package/{order → package/order}/components/line-fulfillment/line-fulfillment.component.d.ts +0 -0
  806. package/{order → package/order}/components/line-refunds/line-refunds.component.d.ts +0 -0
  807. package/{order → package/order}/components/modification-detail/modification-detail.component.d.ts +0 -0
  808. package/{order → package/order}/components/order-custom-fields-card/order-custom-fields-card.component.d.ts +0 -0
  809. package/{order → package/order}/components/order-detail/order-detail.component.d.ts +0 -0
  810. package/package/order/components/order-editor/order-editor.component.d.ts +71 -0
  811. package/{order → package/order}/components/order-edits-preview-dialog/order-edits-preview-dialog.component.d.ts +0 -0
  812. package/{order → package/order}/components/order-history/order-history.component.d.ts +0 -0
  813. package/package/order/components/order-list/order-list.component.d.ts +35 -0
  814. package/{order → package/order}/components/order-payment-card/order-payment-card.component.d.ts +0 -0
  815. package/{order → package/order}/components/order-process-graph/constants.d.ts +0 -0
  816. package/{order → package/order}/components/order-process-graph/order-process-edge.component.d.ts +0 -0
  817. package/{order → package/order}/components/order-process-graph/order-process-graph.component.d.ts +0 -0
  818. package/{order → package/order}/components/order-process-graph/order-process-node.component.d.ts +0 -0
  819. package/{order → package/order}/components/order-process-graph/types.d.ts +0 -0
  820. package/{order → package/order}/components/order-process-graph-dialog/order-process-graph-dialog.component.d.ts +0 -0
  821. package/{order → package/order}/components/order-state-select-dialog/order-state-select-dialog.component.d.ts +0 -0
  822. package/package/order/components/order-table/order-table.component.d.ts +37 -0
  823. package/{order → package/order}/components/payment-detail/payment-detail.component.d.ts +0 -0
  824. package/{order → package/order}/components/payment-state-label/payment-state-label.component.d.ts +0 -0
  825. package/{order → package/order}/components/refund-order-dialog/refund-order-dialog.component.d.ts +0 -0
  826. package/{order → package/order}/components/refund-state-label/refund-state-label.component.d.ts +0 -0
  827. package/package/order/components/select-address-dialog/select-address-dialog.component.d.ts +24 -0
  828. package/package/order/components/select-address-dialog/select-address-dialog.graphql.d.ts +1 -0
  829. package/package/order/components/select-customer-dialog/select-customer-dialog.component.d.ts +22 -0
  830. package/package/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.d.ts +16 -0
  831. package/{order → package/order}/components/settle-refund-dialog/settle-refund-dialog.component.d.ts +0 -0
  832. package/{order → package/order}/components/simple-item-list/simple-item-list.component.d.ts +0 -0
  833. package/{order → package/order}/order.module.d.ts +0 -0
  834. package/{order → package/order}/order.routes.d.ts +0 -0
  835. package/{order → package/order}/package.json +0 -0
  836. package/{order → package/order}/providers/order-transition.service.d.ts +0 -0
  837. package/package/order/providers/routing/order-resolver.d.ts +13 -0
  838. package/package/order/providers/routing/order.guard.d.ts +9 -0
  839. package/package/order/public_api.d.ts +42 -0
  840. package/{order → package/order}/vendure-admin-ui-order.d.ts +0 -0
  841. package/package/order/vendure-admin-ui-order.metadata.json +1 -0
  842. package/package/package.json +59 -0
  843. package/{public_api.d.ts → package/public_api.d.ts} +0 -0
  844. package/{settings → package/settings}/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.d.ts +0 -0
  845. package/{settings → package/settings}/components/admin-detail/admin-detail.component.d.ts +0 -0
  846. package/{settings → package/settings}/components/administrator-list/administrator-list.component.d.ts +0 -0
  847. package/{settings → package/settings}/components/channel-detail/channel-detail.component.d.ts +0 -0
  848. package/{settings → package/settings}/components/channel-list/channel-list.component.d.ts +0 -0
  849. package/{settings → package/settings}/components/country-detail/country-detail.component.d.ts +0 -0
  850. package/{settings → package/settings}/components/country-list/country-list.component.d.ts +0 -0
  851. package/{settings → package/settings}/components/global-settings/global-settings.component.d.ts +0 -0
  852. package/{settings → package/settings}/components/payment-method-detail/payment-method-detail.component.d.ts +0 -0
  853. package/{settings → package/settings}/components/payment-method-list/payment-method-list.component.d.ts +0 -0
  854. package/{settings → package/settings}/components/permission-grid/permission-grid.component.d.ts +0 -0
  855. package/{settings → package/settings}/components/profile/profile.component.d.ts +0 -0
  856. package/{settings → package/settings}/components/role-detail/role-detail.component.d.ts +0 -0
  857. package/{settings → package/settings}/components/role-list/role-list.component.d.ts +0 -0
  858. package/{settings → package/settings}/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.d.ts +0 -0
  859. package/{settings → package/settings}/components/shipping-method-detail/shipping-method-detail.component.d.ts +0 -0
  860. package/{settings → package/settings}/components/shipping-method-list/shipping-method-list.component.d.ts +0 -0
  861. package/{settings → package/settings}/components/shipping-method-test-result/shipping-method-test-result.component.d.ts +0 -0
  862. package/{settings → package/settings}/components/tax-category-detail/tax-category-detail.component.d.ts +0 -0
  863. package/{settings → package/settings}/components/tax-category-list/tax-category-list.component.d.ts +0 -0
  864. package/{settings → package/settings}/components/tax-rate-detail/tax-rate-detail.component.d.ts +0 -0
  865. package/{settings → package/settings}/components/tax-rate-list/tax-rate-list.component.d.ts +0 -0
  866. package/{settings → package/settings}/components/test-address-form/test-address-form.component.d.ts +0 -0
  867. package/{settings → package/settings}/components/test-order-builder/test-order-builder.component.d.ts +0 -0
  868. package/{settings → package/settings}/components/zone-detail-dialog/zone-detail-dialog.component.d.ts +0 -0
  869. package/{settings → package/settings}/components/zone-list/zone-list.component.d.ts +0 -0
  870. package/{settings → package/settings}/components/zone-member-list/zone-member-controls.directive.d.ts +0 -0
  871. package/{settings → package/settings}/components/zone-member-list/zone-member-list-header.directive.d.ts +0 -0
  872. package/package/settings/components/zone-member-list/zone-member-list.component.d.ts +23 -0
  873. package/{settings → package/settings}/package.json +0 -0
  874. package/{settings → package/settings}/providers/routing/administrator-resolver.d.ts +0 -0
  875. package/{settings → package/settings}/providers/routing/channel-resolver.d.ts +0 -0
  876. package/{settings → package/settings}/providers/routing/country-resolver.d.ts +0 -0
  877. package/{settings → package/settings}/providers/routing/global-settings-resolver.d.ts +0 -0
  878. package/{settings → package/settings}/providers/routing/payment-method-resolver.d.ts +0 -0
  879. package/{settings → package/settings}/providers/routing/profile-resolver.d.ts +0 -0
  880. package/{settings → package/settings}/providers/routing/role-resolver.d.ts +0 -0
  881. package/{settings → package/settings}/providers/routing/shipping-method-resolver.d.ts +0 -0
  882. package/{settings → package/settings}/providers/routing/tax-category-resolver.d.ts +0 -0
  883. package/{settings → package/settings}/providers/routing/tax-rate-resolver.d.ts +0 -0
  884. package/{settings → package/settings}/public_api.d.ts +0 -0
  885. package/{settings → package/settings}/settings.module.d.ts +0 -0
  886. package/{settings → package/settings}/settings.routes.d.ts +0 -0
  887. package/{settings → package/settings}/vendure-admin-ui-settings.d.ts +0 -0
  888. package/package/settings/vendure-admin-ui-settings.metadata.json +1 -0
  889. package/{static → package/static}/assets/.gitkeep +0 -0
  890. package/{static → package/static}/assets/logo-300px.png +0 -0
  891. package/{static → package/static}/assets/logo-75px.png +0 -0
  892. package/{static → package/static}/favicon.ico +0 -0
  893. package/package/static/i18n-messages/cs.json +721 -0
  894. package/package/static/i18n-messages/de.json +721 -0
  895. package/package/static/i18n-messages/en.json +721 -0
  896. package/package/static/i18n-messages/es.json +721 -0
  897. package/package/static/i18n-messages/fr.json +721 -0
  898. package/package/static/i18n-messages/it.json +721 -0
  899. package/package/static/i18n-messages/pl.json +721 -0
  900. package/package/static/i18n-messages/pt_BR.json +721 -0
  901. package/package/static/i18n-messages/pt_PT.json +721 -0
  902. package/package/static/i18n-messages/ru.json +721 -0
  903. package/package/static/i18n-messages/uk.json +721 -0
  904. package/package/static/i18n-messages/zh_Hans.json +721 -0
  905. package/package/static/i18n-messages/zh_Hant.json +721 -0
  906. package/{static → package/static}/index.html +0 -0
  907. package/{static → package/static}/polyfills.ts +0 -0
  908. package/{static → package/static}/styles/_mixins.scss +0 -0
  909. package/{static → package/static}/styles/_variables.scss +0 -0
  910. package/package/static/styles/global/_forms.scss +148 -0
  911. package/package/static/styles/global/_overrides.scss +72 -0
  912. package/{static → package/static}/styles/global/_sass-overrides.scss +0 -0
  913. package/package/static/styles/global/_utilities.scss +131 -0
  914. package/{static → package/static}/styles/styles.scss +0 -0
  915. package/{static → package/static}/styles/theme/dark.scss +0 -0
  916. package/{static → package/static}/styles/theme/default.scss +0 -0
  917. package/{static → package/static}/styles/ui-extension-theme.scss +0 -0
  918. package/package/static/theme.min.css +8 -0
  919. package/{static → package/static}/vendure-ui-config.json +0 -0
  920. package/{system → package/system}/components/health-check/health-check.component.d.ts +0 -0
  921. package/{system → package/system}/components/job-list/job-list.component.d.ts +0 -0
  922. package/{system → package/system}/components/job-state-label/job-state-label.component.d.ts +0 -0
  923. package/{system → package/system}/package.json +0 -0
  924. package/{system → package/system}/public_api.d.ts +0 -0
  925. package/{system → package/system}/system.module.d.ts +0 -0
  926. package/{system → package/system}/system.routes.d.ts +0 -0
  927. package/{system → package/system}/vendure-admin-ui-system.d.ts +0 -0
  928. package/package/system/vendure-admin-ui-system.metadata.json +1 -0
  929. package/{vendure-admin-ui.d.ts → package/vendure-admin-ui.d.ts} +0 -0
  930. package/{vendure-admin-ui.metadata.json → package/vendure-admin-ui.metadata.json} +0 -0
  931. package/package.json +59 -21
  932. package/tsconfig.json +61 -0
  933. package/tsconfig.lib.json +26 -0
  934. package/tsconfig.lib.prod.json +14 -0
  935. package/tslint.json +33 -0
  936. package/LICENSE +0 -9
  937. package/bundles/vendure-admin-ui-catalog.umd.js +0 -4861
  938. package/bundles/vendure-admin-ui-catalog.umd.js.map +0 -1
  939. package/bundles/vendure-admin-ui-core.umd.js +0 -15291
  940. package/bundles/vendure-admin-ui-core.umd.js.map +0 -1
  941. package/bundles/vendure-admin-ui-customer.umd.js +0 -1679
  942. package/bundles/vendure-admin-ui-customer.umd.js.map +0 -1
  943. package/bundles/vendure-admin-ui-dashboard.umd.js +0 -757
  944. package/bundles/vendure-admin-ui-dashboard.umd.js.map +0 -1
  945. package/bundles/vendure-admin-ui-order.umd.js +0 -3422
  946. package/bundles/vendure-admin-ui-order.umd.js.map +0 -1
  947. package/bundles/vendure-admin-ui-settings.umd.js +0 -3699
  948. package/bundles/vendure-admin-ui-settings.umd.js.map +0 -1
  949. package/bundles/vendure-admin-ui-system.umd.js +0 -524
  950. package/catalog/catalog.module.d.ts +0 -2
  951. package/catalog/components/collection-list/collection-list.component.d.ts +0 -33
  952. package/catalog/components/collection-tree/collection-tree-node.component.d.ts +0 -36
  953. package/catalog/components/collection-tree/collection-tree.component.d.ts +0 -35
  954. package/catalog/components/facet-list/facet-list.component.d.ts +0 -24
  955. package/catalog/components/product-list/product-list.component.d.ts +0 -29
  956. package/catalog/public_api.d.ts +0 -33
  957. package/catalog/vendure-admin-ui-catalog.metadata.json +0 -1
  958. package/core/common/component-registry-types.d.ts +0 -56
  959. package/core/common/generated-types.d.ts +0 -9142
  960. package/core/common/utilities/selection-manager.d.ts +0 -23
  961. package/core/common/version.d.ts +0 -1
  962. package/core/data/definitions/collection-definitions.d.ts +0 -10
  963. package/core/data/definitions/facet-definitions.d.ts +0 -10
  964. package/core/data/definitions/order-definitions.d.ts +0 -27
  965. package/core/data/definitions/product-definitions.d.ts +0 -45
  966. package/core/data/providers/collection-data.service.d.ts +0 -25
  967. package/core/data/providers/facet-data.service.d.ts +0 -21
  968. package/core/data/providers/order-data.service.d.ts +0 -35
  969. package/core/data/providers/product-data.service.d.ts +0 -81
  970. package/core/providers/modal/modal.service.d.ts +0 -132
  971. package/core/providers/nav-builder/nav-builder-types.d.ts +0 -91
  972. package/core/public_api.d.ts +0 -222
  973. package/core/shared/components/asset-gallery/asset-gallery.component.d.ts +0 -67
  974. package/core/shared/components/data-table/data-table.component.d.ts +0 -82
  975. package/core/shared/components/dropdown/dropdown-menu.component.d.ts +0 -30
  976. package/core/shared/components/rich-text-editor/prosemirror/inputrules.d.ts +0 -8
  977. package/core/shared/components/rich-text-editor/prosemirror/menu/images.d.ts +0 -4
  978. package/core/shared/components/rich-text-editor/prosemirror/menu/links.d.ts +0 -4
  979. package/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.d.ts +0 -4
  980. package/core/shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin.d.ts +0 -5
  981. package/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.d.ts +0 -21
  982. package/core/shared/components/rich-text-editor/prosemirror/types.d.ts +0 -11
  983. package/core/shared/components/rich-text-editor/rich-text-editor.component.d.ts +0 -35
  984. package/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.d.ts +0 -32
  985. package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +0 -89
  986. package/core/vendure-admin-ui-core.metadata.json +0 -1
  987. package/customer/components/customer-group-member-list/customer-group-member-list.component.d.ts +0 -37
  988. package/customer/vendure-admin-ui-customer.metadata.json +0 -1
  989. package/esm2015/catalog/catalog.module.js +0 -62
  990. package/esm2015/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.js +0 -109
  991. package/esm2015/catalog/components/collection-detail/collection-detail.component.js +0 -244
  992. package/esm2015/catalog/components/collection-list/collection-list.component.js +0 -145
  993. package/esm2015/catalog/components/collection-tree/collection-tree-node.component.js +0 -117
  994. package/esm2015/catalog/components/collection-tree/collection-tree.component.js +0 -76
  995. package/esm2015/catalog/components/facet-list/facet-list.component.js +0 -107
  996. package/esm2015/catalog/components/product-detail/product-detail.component.js +0 -515
  997. package/esm2015/catalog/components/product-list/product-list.component.js +0 -153
  998. package/esm2015/catalog/components/product-variants-list/product-variants-list.component.js +0 -214
  999. package/esm2015/catalog/providers/routing/collection-resolver.js +0 -38
  1000. package/esm2015/catalog/public_api.js +0 -35
  1001. package/esm2015/core/common/component-registry-types.js +0 -2
  1002. package/esm2015/core/common/generated-types.js +0 -983
  1003. package/esm2015/core/common/introspection-result.js +0 -195
  1004. package/esm2015/core/common/utilities/selection-manager.js +0 -64
  1005. package/esm2015/core/common/version.js +0 -3
  1006. package/esm2015/core/components/breadcrumb/breadcrumb.component.js +0 -126
  1007. package/esm2015/core/data/definitions/collection-definitions.js +0 -144
  1008. package/esm2015/core/data/definitions/facet-definitions.js +0 -110
  1009. package/esm2015/core/data/definitions/order-definitions.js +0 -472
  1010. package/esm2015/core/data/definitions/product-definitions.js +0 -745
  1011. package/esm2015/core/data/providers/collection-data.service.js +0 -75
  1012. package/esm2015/core/data/providers/customer-data.service.js +0 -117
  1013. package/esm2015/core/data/providers/facet-data.service.js +0 -60
  1014. package/esm2015/core/data/providers/order-data.service.js +0 -103
  1015. package/esm2015/core/data/providers/product-data.service.js +0 -235
  1016. package/esm2015/core/data/utils/remove-readonly-custom-fields.js +0 -91
  1017. package/esm2015/core/providers/dashboard-widget/dashboard-widget.service.js +0 -97
  1018. package/esm2015/core/providers/modal/modal.service.js +0 -100
  1019. package/esm2015/core/providers/nav-builder/nav-builder-types.js +0 -2
  1020. package/esm2015/core/public_api.js +0 -224
  1021. package/esm2015/core/shared/components/action-bar/action-bar.component.js +0 -47
  1022. package/esm2015/core/shared/components/asset-gallery/asset-gallery.component.js +0 -84
  1023. package/esm2015/core/shared/components/data-table/data-table.component.js +0 -113
  1024. package/esm2015/core/shared/components/dropdown/dropdown-menu.component.js +0 -121
  1025. package/esm2015/core/shared/components/facet-value-selector/facet-value-selector.component.js +0 -117
  1026. package/esm2015/core/shared/components/language-selector/language-selector.component.js +0 -21
  1027. package/esm2015/core/shared/components/order-state-label/order-state-label.component.js +0 -43
  1028. package/esm2015/core/shared/components/product-search-input/product-search-input.component.js +0 -104
  1029. package/esm2015/core/shared/components/product-selector/product-selector.component.js +0 -61
  1030. package/esm2015/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.js +0 -32
  1031. package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/images.js +0 -36
  1032. package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/links.js +0 -69
  1033. package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.js +0 -20
  1034. package/esm2015/core/shared/components/rich-text-editor/prosemirror/menu/menu.js +0 -192
  1035. package/esm2015/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.js +0 -112
  1036. package/esm2015/core/shared/components/rich-text-editor/prosemirror/types.js +0 -2
  1037. package/esm2015/core/shared/components/rich-text-editor/rich-text-editor.component.js +0 -86
  1038. package/esm2015/core/shared/components/simple-dialog/simple-dialog.component.js +0 -21
  1039. package/esm2015/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.js +0 -125
  1040. package/esm2015/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.js +0 -266
  1041. package/esm2015/core/shared/dynamic-form-inputs/register-dynamic-input-components.js +0 -134
  1042. package/esm2015/core/shared/pipes/state-i18n-token.pipe.js +0 -46
  1043. package/esm2015/core/shared/shared.module.js +0 -275
  1044. package/esm2015/customer/components/customer-group-list/customer-group-list.component.js +0 -198
  1045. package/esm2015/customer/components/customer-group-member-list/customer-group-member-list.component.js +0 -101
  1046. package/esm2015/customer/components/customer-list/customer-list.component.js +0 -81
  1047. package/esm2015/dashboard/dashboard.module.js +0 -25
  1048. package/esm2015/order/components/order-detail/order-detail.component.js +0 -550
  1049. package/esm2015/order/components/order-editor/order-editor.component.js +0 -381
  1050. package/esm2015/order/components/order-list/order-list.component.js +0 -195
  1051. package/esm2015/order/components/order-table/order-table.component.js +0 -76
  1052. package/esm2015/order/order.module.js +0 -70
  1053. package/esm2015/order/order.routes.js +0 -54
  1054. package/esm2015/order/providers/routing/order-resolver.js +0 -33
  1055. package/esm2015/order/public_api.js +0 -36
  1056. package/esm2015/settings/components/country-list/country-list.component.js +0 -82
  1057. package/esm2015/settings/components/profile/profile.component.js +0 -82
  1058. package/esm2015/settings/components/zone-list/zone-list.component.js +0 -160
  1059. package/esm2015/settings/components/zone-member-list/zone-member-list.component.js +0 -63
  1060. package/esm2015/system/components/health-check/health-check.component.js +0 -19
  1061. package/fesm2015/vendure-admin-ui-catalog.js +0 -3994
  1062. package/fesm2015/vendure-admin-ui-catalog.js.map +0 -1
  1063. package/fesm2015/vendure-admin-ui-core.js +0 -16292
  1064. package/fesm2015/vendure-admin-ui-core.js.map +0 -1
  1065. package/fesm2015/vendure-admin-ui-customer.js +0 -1184
  1066. package/fesm2015/vendure-admin-ui-customer.js.map +0 -1
  1067. package/fesm2015/vendure-admin-ui-dashboard.js +0 -371
  1068. package/fesm2015/vendure-admin-ui-dashboard.js.map +0 -1
  1069. package/fesm2015/vendure-admin-ui-order.js +0 -2607
  1070. package/fesm2015/vendure-admin-ui-order.js.map +0 -1
  1071. package/fesm2015/vendure-admin-ui-settings.js +0 -2977
  1072. package/fesm2015/vendure-admin-ui-settings.js.map +0 -1
  1073. package/fesm2015/vendure-admin-ui-system.js +0 -171
  1074. package/order/components/order-editor/order-editor.component.d.ts +0 -76
  1075. package/order/components/order-list/order-list.component.d.ts +0 -34
  1076. package/order/components/order-table/order-table.component.d.ts +0 -28
  1077. package/order/providers/routing/order-resolver.d.ts +0 -10
  1078. package/order/public_api.d.ts +0 -34
  1079. package/order/vendure-admin-ui-order.metadata.json +0 -1
  1080. package/settings/components/zone-member-list/zone-member-list.component.d.ts +0 -21
  1081. package/settings/vendure-admin-ui-settings.metadata.json +0 -1
  1082. package/static/i18n-messages/cs.json +0 -688
  1083. package/static/i18n-messages/de.json +0 -688
  1084. package/static/i18n-messages/en.json +0 -689
  1085. package/static/i18n-messages/es.json +0 -688
  1086. package/static/i18n-messages/fr.json +0 -688
  1087. package/static/i18n-messages/it.json +0 -688
  1088. package/static/i18n-messages/pl.json +0 -688
  1089. package/static/i18n-messages/pt_BR.json +0 -688
  1090. package/static/i18n-messages/pt_PT.json +0 -688
  1091. package/static/i18n-messages/ru.json +0 -688
  1092. package/static/i18n-messages/uk.json +0 -688
  1093. package/static/i18n-messages/zh_Hans.json +0 -688
  1094. package/static/i18n-messages/zh_Hant.json +0 -688
  1095. package/static/styles/global/_forms.scss +0 -146
  1096. package/static/styles/global/_overrides.scss +0 -72
  1097. package/static/styles/global/_utilities.scss +0 -127
  1098. package/static/theme.min.css +0 -8
  1099. package/system/vendure-admin-ui-system.metadata.json +0 -1
@@ -1,2977 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { Component, ChangeDetectionStrategy, ChangeDetectorRef, EventEmitter, Input, Output, Directive, TemplateRef, ContentChild, Injectable, NgModule } from '@angular/core';
3
- import * as i2 from '@vendure/admin-ui/core';
4
- import { DataService, BaseDetailComponent, Permission, ServerConfigService, NotificationService, BaseListComponent, ModalService, CurrencyCode, createUpdatedTranslatable, findTranslation, DeletionResult, LanguageCode, configurableDefinitionToInstance, toConfigurableOperationInput, getConfigArgValue, LocalStorageService, BaseEntityResolver, getDefaultUiLanguage, createResolveData, CanDeactivateDetailGuard, detailBreadcrumb, SharedModule } from '@vendure/admin-ui/core';
5
- import { map, take, mergeMap, switchMap, startWith, tap, withLatestFrom, takeUntil, distinctUntilChanged, mapTo } from 'rxjs/operators';
6
- import { Validators, FormBuilder, FormControl } from '@angular/forms';
7
- import * as i1 from '@angular/router';
8
- import { Router, ActivatedRoute, RouterModule } from '@angular/router';
9
- import { marker } from '@biesbjerg/ngx-translate-extract-marker';
10
- import { CUSTOMER_ROLE_CODE, DEFAULT_CHANNEL_CODE, SUPER_ADMIN_ROLE_CODE } from '@vendure/common/lib/shared-constants';
11
- import { EMPTY, Subject, combineLatest, of, merge } from 'rxjs';
12
- import { normalizeString } from '@vendure/common/lib/normalize-string';
13
- import { unique } from '@vendure/common/lib/unique';
14
-
15
- class AddCountryToZoneDialogComponent {
16
- constructor(dataService) {
17
- this.dataService = dataService;
18
- this.currentMembers = [];
19
- this.selectedMemberIds = [];
20
- }
21
- ngOnInit() {
22
- const currentMemberIds = this.currentMembers.map(m => m.id);
23
- this.availableCountries$ = this.dataService.settings
24
- .getCountries(999)
25
- .mapStream(data => data.countries.items)
26
- .pipe(map(countries => countries.filter(c => !currentMemberIds.includes(c.id))));
27
- }
28
- cancel() {
29
- this.resolveWith();
30
- }
31
- add() {
32
- this.resolveWith(this.selectedMemberIds);
33
- }
34
- }
35
- AddCountryToZoneDialogComponent.decorators = [
36
- { type: Component, args: [{
37
- selector: 'vdr-add-country-to-zone-dialog',
38
- template: "<ng-template vdrDialogTitle>{{ 'settings.add-countries-to-zone' | translate: { zoneName: zoneName } }}</ng-template>\r\n\r\n<vdr-zone-member-list\r\n [members]=\"availableCountries$ | async\"\r\n [selectedMemberIds]=\"selectedMemberIds\"\r\n (selectionChange)=\"selectedMemberIds = $event\"\r\n>\r\n</vdr-zone-member-list>\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)=\"add()\" [disabled]=\"!selectedMemberIds.length\" class=\"btn btn-primary\">\r\n {{ 'settings.add-countries-to-zone' | translate: { zoneName: zoneName } }}\r\n </button>\r\n</ng-template>\r\n",
39
- changeDetection: ChangeDetectionStrategy.OnPush,
40
- styles: [""]
41
- },] }
42
- ];
43
- AddCountryToZoneDialogComponent.ctorParameters = () => [
44
- { type: DataService }
45
- ];
46
-
47
- class AdminDetailComponent extends BaseDetailComponent {
48
- constructor(router, route, serverConfigService, changeDetector, dataService, formBuilder, notificationService) {
49
- super(route, router, serverConfigService, dataService);
50
- this.changeDetector = changeDetector;
51
- this.dataService = dataService;
52
- this.formBuilder = formBuilder;
53
- this.notificationService = notificationService;
54
- this.selectedRoles = [];
55
- this.selectedRolePermissions = {};
56
- this.selectedChannelId = null;
57
- this.customFields = this.getCustomFieldConfig('Administrator');
58
- this.detailForm = this.formBuilder.group({
59
- emailAddress: ['', Validators.required],
60
- firstName: ['', Validators.required],
61
- lastName: ['', Validators.required],
62
- password: [''],
63
- roles: [[]],
64
- customFields: this.formBuilder.group(this.customFields.reduce((hash, field) => (Object.assign(Object.assign({}, hash), { [field.name]: '' })), {})),
65
- });
66
- }
67
- getAvailableChannels() {
68
- return Object.values(this.selectedRolePermissions);
69
- }
70
- ngOnInit() {
71
- this.init();
72
- this.administrator$ = this.entity$;
73
- this.allRoles$ = this.dataService.administrator
74
- .getRoles(999)
75
- .mapStream(item => item.roles.items.filter(i => i.code !== CUSTOMER_ROLE_CODE));
76
- this.dataService.client.userStatus().single$.subscribe(({ userStatus }) => {
77
- if (!userStatus.permissions.includes(Permission.UpdateAdministrator)) {
78
- const rolesSelect = this.detailForm.get('roles');
79
- if (rolesSelect) {
80
- rolesSelect.disable();
81
- }
82
- }
83
- });
84
- this.permissionDefinitions = this.serverConfigService.getPermissionDefinitions();
85
- }
86
- ngOnDestroy() {
87
- this.destroy();
88
- }
89
- rolesChanged(roles) {
90
- this.buildPermissionsMap();
91
- }
92
- getPermissionsForSelectedChannel() {
93
- function getActivePermissions(input) {
94
- return Object.entries(input)
95
- .filter(([permission, active]) => active)
96
- .map(([permission, active]) => permission);
97
- }
98
- if (this.selectedChannelId) {
99
- const selectedChannel = this.selectedRolePermissions[this.selectedChannelId];
100
- if (selectedChannel) {
101
- const permissionMap = this.selectedRolePermissions[this.selectedChannelId].permissions;
102
- return getActivePermissions(permissionMap);
103
- }
104
- }
105
- const channels = Object.values(this.selectedRolePermissions);
106
- if (0 < channels.length) {
107
- this.selectedChannelId = channels[0].channelId;
108
- return getActivePermissions(channels[0].permissions);
109
- }
110
- return [];
111
- }
112
- create() {
113
- const formValue = this.detailForm.value;
114
- const administrator = {
115
- emailAddress: formValue.emailAddress,
116
- firstName: formValue.firstName,
117
- lastName: formValue.lastName,
118
- password: formValue.password,
119
- customFields: formValue.customFields,
120
- roleIds: formValue.roles.map(role => role.id),
121
- };
122
- this.dataService.administrator.createAdministrator(administrator).subscribe(data => {
123
- this.notificationService.success(marker('common.notify-create-success'), {
124
- entity: 'Administrator',
125
- });
126
- this.detailForm.markAsPristine();
127
- this.changeDetector.markForCheck();
128
- this.router.navigate(['../', data.createAdministrator.id], { relativeTo: this.route });
129
- }, err => {
130
- this.notificationService.error(marker('common.notify-create-error'), {
131
- entity: 'Administrator',
132
- });
133
- });
134
- }
135
- save() {
136
- this.administrator$
137
- .pipe(take(1), mergeMap(({ id }) => {
138
- const formValue = this.detailForm.value;
139
- const administrator = {
140
- id,
141
- emailAddress: formValue.emailAddress,
142
- firstName: formValue.firstName,
143
- lastName: formValue.lastName,
144
- password: formValue.password,
145
- customFields: formValue.customFields,
146
- roleIds: formValue.roles.map(role => role.id),
147
- };
148
- return this.dataService.administrator.updateAdministrator(administrator);
149
- }))
150
- .subscribe(data => {
151
- this.notificationService.success(marker('common.notify-update-success'), {
152
- entity: 'Administrator',
153
- });
154
- this.detailForm.markAsPristine();
155
- this.changeDetector.markForCheck();
156
- }, err => {
157
- this.notificationService.error(marker('common.notify-update-error'), {
158
- entity: 'Administrator',
159
- });
160
- });
161
- }
162
- setFormValues(administrator, languageCode) {
163
- this.detailForm.patchValue({
164
- emailAddress: administrator.emailAddress,
165
- firstName: administrator.firstName,
166
- lastName: administrator.lastName,
167
- roles: administrator.user.roles,
168
- });
169
- if (this.customFields.length) {
170
- this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), administrator);
171
- }
172
- const passwordControl = this.detailForm.get('password');
173
- if (passwordControl) {
174
- if (!administrator.id) {
175
- passwordControl.setValidators([Validators.required]);
176
- }
177
- else {
178
- passwordControl.setValidators([]);
179
- }
180
- }
181
- this.buildPermissionsMap();
182
- }
183
- buildPermissionsMap() {
184
- const permissionsControl = this.detailForm.get('roles');
185
- if (permissionsControl) {
186
- const roles = permissionsControl.value;
187
- const channelIdPermissionsMap = new Map();
188
- const channelIdCodeMap = new Map();
189
- for (const role of roles) {
190
- for (const channel of role.channels) {
191
- const channelPermissions = channelIdPermissionsMap.get(channel.id);
192
- const permissionSet = channelPermissions || new Set();
193
- role.permissions.forEach(p => permissionSet.add(p));
194
- channelIdPermissionsMap.set(channel.id, permissionSet);
195
- channelIdCodeMap.set(channel.id, channel.code);
196
- }
197
- }
198
- this.selectedRolePermissions = {};
199
- for (const channelId of Array.from(channelIdPermissionsMap.keys())) {
200
- // tslint:disable-next-line:no-non-null-assertion
201
- const permissionSet = channelIdPermissionsMap.get(channelId);
202
- const permissionsHash = {};
203
- for (const def of this.serverConfigService.getPermissionDefinitions()) {
204
- permissionsHash[def.name] = permissionSet.has(def.name);
205
- }
206
- this.selectedRolePermissions[channelId] = {
207
- // tslint:disable:no-non-null-assertion
208
- channelId,
209
- channelCode: channelIdCodeMap.get(channelId),
210
- permissions: permissionsHash,
211
- // tslint:enable:no-non-null-assertion
212
- };
213
- }
214
- }
215
- }
216
- }
217
- AdminDetailComponent.decorators = [
218
- { type: Component, args: [{
219
- selector: 'vdr-admin-detail',
220
- template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"administrator-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"'UpdateAdministrator'\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'settings.email-address' | translate\" for=\"emailAddress\">\r\n <input\r\n id=\"emailAddress\"\r\n type=\"text\"\r\n formControlName=\"emailAddress\"\r\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.first-name' | translate\" for=\"firstName\">\r\n <input\r\n id=\"firstName\"\r\n type=\"text\"\r\n formControlName=\"firstName\"\r\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.last-name' | translate\" for=\"lastName\">\r\n <input\r\n id=\"lastName\"\r\n type=\"text\"\r\n formControlName=\"lastName\"\r\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field *ngIf=\"isNew$ | async\" [label]=\"'settings.password' | translate\" for=\"password\">\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n *ngIf=\"!(isNew$ | async) && ('UpdateAdministrator' | hasPermission)\"\r\n [label]=\"'settings.password' | translate\"\r\n for=\"password\"\r\n [readOnlyToggle]=\"true\"\r\n >\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Administrator\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n <vdr-custom-detail-component-host\r\n locationId=\"administrator-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n <label class=\"clr-control-label\">{{ 'settings.roles' | translate }}</label>\r\n <ng-select\r\n [items]=\"allRoles$ | async\"\r\n [multiple]=\"true\"\r\n [hideSelected]=\"true\"\r\n formControlName=\"roles\"\r\n (change)=\"rolesChanged($event)\"\r\n bindLabel=\"description\"\r\n ></ng-select>\r\n\r\n <ul class=\"nav\" role=\"tablist\">\r\n <li role=\"presentation\" class=\"nav-item\" *ngFor=\"let channel of getAvailableChannels()\">\r\n <button\r\n [id]=\"channel.channelId\"\r\n (click)=\"selectedChannelId = channel.channelId\"\r\n class=\"btn btn-link nav-link\"\r\n [class.active]=\"selectedChannelId === channel.channelId\"\r\n [attr.aria-selected]=\"selectedChannelId === channel.channelId\"\r\n type=\"button\"\r\n >\r\n {{ channel.channelCode | channelCodeToLabel | translate }}\r\n </button>\r\n </li>\r\n </ul>\r\n <vdr-permission-grid\r\n [activePermissions]=\"getPermissionsForSelectedChannel()\"\r\n [permissionDefinitions]=\"permissionDefinitions\"\r\n [readonly]=\"true\"\r\n ></vdr-permission-grid>\r\n</form>\r\n",
221
- changeDetection: ChangeDetectionStrategy.OnPush,
222
- styles: [""]
223
- },] }
224
- ];
225
- AdminDetailComponent.ctorParameters = () => [
226
- { type: Router },
227
- { type: ActivatedRoute },
228
- { type: ServerConfigService },
229
- { type: ChangeDetectorRef },
230
- { type: DataService },
231
- { type: FormBuilder },
232
- { type: NotificationService }
233
- ];
234
-
235
- class AdministratorListComponent extends BaseListComponent {
236
- constructor(dataService, router, route, modalService, notificationService) {
237
- super(router, route);
238
- this.dataService = dataService;
239
- this.modalService = modalService;
240
- this.notificationService = notificationService;
241
- super.setQueryFn((...args) => this.dataService.administrator.getAdministrators(...args), (data) => data.administrators);
242
- }
243
- deleteAdministrator(administrator) {
244
- return this.modalService
245
- .dialog({
246
- title: marker('catalog.confirm-delete-administrator'),
247
- body: `${administrator.firstName} ${administrator.lastName}`,
248
- buttons: [
249
- { type: 'secondary', label: marker('common.cancel') },
250
- { type: 'danger', label: marker('common.delete'), returnValue: true },
251
- ],
252
- })
253
- .pipe(switchMap((res) => res ? this.dataService.administrator.deleteAdministrator(administrator.id) : EMPTY))
254
- .subscribe(() => {
255
- this.notificationService.success(marker('common.notify-delete-success'), {
256
- entity: 'Administrator',
257
- });
258
- this.refresh();
259
- }, (err) => {
260
- this.notificationService.error(marker('common.notify-delete-error'), {
261
- entity: 'Administrator',
262
- });
263
- });
264
- }
265
- }
266
- AdministratorListComponent.decorators = [
267
- { type: Component, args: [{
268
- selector: 'vdr-administrator-list',
269
- template: "<vdr-action-bar>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"administrator-list\"></vdr-action-bar-items>\r\n <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"'CreateAdministrator'\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'admin.create-new-administrator' | translate }}\r\n </a>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-dt-column>{{ 'settings.first-name' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'settings.last-name' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'settings.email-address' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-administrator=\"item\">\r\n <td class=\"left align-middle\">{{ administrator.firstName }}</td>\r\n <td class=\"left align-middle\">{{ administrator.lastName }}</td>\r\n <td class=\"left align-middle\">{{ administrator.emailAddress }}</td>\r\n <td class=\"right align-middle\">\r\n <vdr-table-row-action\r\n iconShape=\"edit\"\r\n [label]=\"'common.edit' | translate\"\r\n [linkTo]=\"['./', administrator.id]\"\r\n ></vdr-table-row-action>\r\n </td>\r\n <td>\r\n <vdr-dropdown>\r\n <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n {{ 'common.actions' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"deleteAdministrator(administrator)\"\r\n [disabled]=\"!('DeleteAdministrator' | hasPermission)\"\r\n vdrDropdownItem\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </td>\r\n </ng-template>\r\n</vdr-data-table>\r\n",
270
- styles: [""]
271
- },] }
272
- ];
273
- AdministratorListComponent.ctorParameters = () => [
274
- { type: DataService },
275
- { type: Router },
276
- { type: ActivatedRoute },
277
- { type: ModalService },
278
- { type: NotificationService }
279
- ];
280
-
281
- class ChannelDetailComponent extends BaseDetailComponent {
282
- constructor(router, route, serverConfigService, changeDetector, dataService, formBuilder, notificationService) {
283
- super(route, router, serverConfigService, dataService);
284
- this.serverConfigService = serverConfigService;
285
- this.changeDetector = changeDetector;
286
- this.dataService = dataService;
287
- this.formBuilder = formBuilder;
288
- this.notificationService = notificationService;
289
- this.currencyCodes = Object.values(CurrencyCode);
290
- this.updatePermission = [Permission.SuperAdmin, Permission.UpdateChannel, Permission.CreateChannel];
291
- this.customFields = this.getCustomFieldConfig('Channel');
292
- this.detailForm = this.formBuilder.group({
293
- code: ['', Validators.required],
294
- token: ['', Validators.required],
295
- pricesIncludeTax: [false],
296
- currencyCode: [''],
297
- defaultShippingZoneId: ['', Validators.required],
298
- defaultLanguageCode: [],
299
- defaultTaxZoneId: ['', Validators.required],
300
- customFields: this.formBuilder.group(this.customFields.reduce((hash, field) => (Object.assign(Object.assign({}, hash), { [field.name]: '' })), {})),
301
- });
302
- }
303
- ngOnInit() {
304
- this.init();
305
- this.zones$ = this.dataService.settings.getZones().mapSingle(data => data.zones);
306
- this.availableLanguageCodes$ = this.serverConfigService.getAvailableLanguages();
307
- }
308
- ngOnDestroy() {
309
- this.destroy();
310
- }
311
- saveButtonEnabled() {
312
- return this.detailForm.dirty && this.detailForm.valid;
313
- }
314
- create() {
315
- if (!this.detailForm.dirty) {
316
- return;
317
- }
318
- const formValue = this.detailForm.value;
319
- const input = {
320
- code: formValue.code,
321
- token: formValue.token,
322
- defaultLanguageCode: formValue.defaultLanguageCode,
323
- pricesIncludeTax: formValue.pricesIncludeTax,
324
- currencyCode: formValue.currencyCode,
325
- defaultShippingZoneId: formValue.defaultShippingZoneId,
326
- defaultTaxZoneId: formValue.defaultTaxZoneId,
327
- customFields: formValue.customFields,
328
- };
329
- this.dataService.settings
330
- .createChannel(input)
331
- .pipe(mergeMap(({ createChannel }) => this.dataService.auth.currentUser().single$.pipe(map(({ me }) => ({
332
- me,
333
- createChannel,
334
- })))), mergeMap(({ me, createChannel }) =>
335
- // tslint:disable-next-line:no-non-null-assertion
336
- this.dataService.client.updateUserChannels(me.channels).pipe(map(() => createChannel))))
337
- .subscribe(data => {
338
- switch (data.__typename) {
339
- case 'Channel':
340
- this.notificationService.success(marker('common.notify-create-success'), {
341
- entity: 'Channel',
342
- });
343
- this.detailForm.markAsPristine();
344
- this.changeDetector.markForCheck();
345
- this.router.navigate(['../', data.id], { relativeTo: this.route });
346
- break;
347
- case 'LanguageNotAvailableError':
348
- this.notificationService.error(data.message);
349
- break;
350
- }
351
- });
352
- }
353
- save() {
354
- if (!this.detailForm.dirty) {
355
- return;
356
- }
357
- const formValue = this.detailForm.value;
358
- this.entity$
359
- .pipe(take(1), mergeMap(channel => {
360
- const input = {
361
- id: channel.id,
362
- code: formValue.code,
363
- token: formValue.token,
364
- pricesIncludeTax: formValue.pricesIncludeTax,
365
- currencyCode: formValue.currencyCode,
366
- defaultShippingZoneId: formValue.defaultShippingZoneId,
367
- defaultLanguageCode: formValue.defaultLanguageCode,
368
- defaultTaxZoneId: formValue.defaultTaxZoneId,
369
- customFields: formValue.customFields,
370
- };
371
- return this.dataService.settings.updateChannel(input);
372
- }))
373
- .subscribe(({ updateChannel }) => {
374
- switch (updateChannel.__typename) {
375
- case 'Channel':
376
- this.notificationService.success(marker('common.notify-update-success'), {
377
- entity: 'Channel',
378
- });
379
- this.detailForm.markAsPristine();
380
- this.changeDetector.markForCheck();
381
- break;
382
- case 'LanguageNotAvailableError':
383
- this.notificationService.error(updateChannel.message);
384
- }
385
- });
386
- }
387
- /**
388
- * Update the form values when the entity changes.
389
- */
390
- setFormValues(entity, languageCode) {
391
- this.detailForm.patchValue({
392
- code: entity.code,
393
- token: entity.token || this.generateToken(),
394
- pricesIncludeTax: entity.pricesIncludeTax,
395
- currencyCode: entity.currencyCode,
396
- defaultShippingZoneId: entity.defaultShippingZone ? entity.defaultShippingZone.id : '',
397
- defaultLanguageCode: entity.defaultLanguageCode,
398
- defaultTaxZoneId: entity.defaultTaxZone ? entity.defaultTaxZone.id : '',
399
- });
400
- if (this.customFields.length) {
401
- this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), entity);
402
- }
403
- if (entity.code === DEFAULT_CHANNEL_CODE) {
404
- const codeControl = this.detailForm.get('code');
405
- if (codeControl) {
406
- codeControl.disable();
407
- }
408
- }
409
- }
410
- generateToken() {
411
- const randomString = () => Math.random().toString(36).substr(3, 10);
412
- return `${randomString()}${randomString()}`;
413
- }
414
- }
415
- ChannelDetailComponent.decorators = [
416
- { type: Component, args: [{
417
- selector: 'vdr-channel-detail',
418
- template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"channel-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"['SuperAdmin', 'UpdateChannel']\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'common.code' | translate\" for=\"code\">\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"code\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.channel-token' | translate\" for=\"token\">\r\n <input\r\n id=\"token\"\r\n type=\"text\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"token\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.currency' | translate\" for=\"defaultTaxZoneId\">\r\n <select\r\n clrSelect\r\n name=\"currencyCode\"\r\n formControlName=\"currencyCode\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option *ngFor=\"let code of currencyCodes\" [value]=\"code\">{{ code | localeCurrencyName }}</option>\r\n </select>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.default-language' | translate\" for=\"defaultLanguage\">\r\n <select\r\n clrSelect\r\n name=\"defaultLanguageCode\"\r\n formControlName=\"defaultLanguageCode\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option *ngFor=\"let languageCode of availableLanguageCodes$ | async\" [value]=\"languageCode\">\r\n {{ languageCode | localeLanguageName }} ({{ languageCode | uppercase }})\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.prices-include-tax' | translate\" for=\"pricesIncludeTax\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"pricesIncludeTax\"\r\n formControlName=\"pricesIncludeTax\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.default-tax-zone' | translate\" for=\"defaultTaxZoneId\">\r\n <select\r\n clrSelect\r\n name=\"defaultTaxZoneId\"\r\n formControlName=\"defaultTaxZoneId\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option selected value style=\"display: none\"></option>\r\n <option *ngFor=\"let zone of zones$ | async\" [value]=\"zone.id\">{{ zone.name }}</option>\r\n </select>\r\n </vdr-form-field>\r\n <clr-alert\r\n *ngIf=\"detailForm.value.code && !detailForm.value.defaultTaxZoneId\"\r\n clrAlertType=\"danger\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ 'error.no-default-tax-zone-set' | translate }}\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n\r\n <vdr-form-field [label]=\"'settings.default-shipping-zone' | translate\" for=\"defaultShippingZoneId\">\r\n <select\r\n clrSelect\r\n name=\"defaultShippingZoneId\"\r\n formControlName=\"defaultShippingZoneId\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option selected value style=\"display: none\"></option>\r\n <option *ngFor=\"let zone of zones$ | async\" [value]=\"zone.id\">{{ zone.name }}</option>\r\n </select>\r\n </vdr-form-field>\r\n <clr-alert\r\n *ngIf=\"detailForm.value.code && !detailForm.value.defaultShippingZoneId\"\r\n clrAlertType=\"warning\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ 'error.no-default-shipping-zone-set' | translate }}\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Channel\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n <vdr-custom-detail-component-host\r\n locationId=\"channel-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n</form>\r\n",
419
- changeDetection: ChangeDetectionStrategy.OnPush,
420
- styles: ["clr-alert{max-width:30rem;margin-bottom:12px}\n"]
421
- },] }
422
- ];
423
- ChannelDetailComponent.ctorParameters = () => [
424
- { type: Router },
425
- { type: ActivatedRoute },
426
- { type: ServerConfigService },
427
- { type: ChangeDetectorRef },
428
- { type: DataService },
429
- { type: FormBuilder },
430
- { type: NotificationService }
431
- ];
432
-
433
- class ChannelListComponent {
434
- constructor(dataService, modalService, notificationService) {
435
- this.dataService = dataService;
436
- this.modalService = modalService;
437
- this.notificationService = notificationService;
438
- this.refresh$ = new Subject();
439
- this.channels$ = this.refresh$.pipe(startWith(1), switchMap(() => this.dataService.settings.getChannels().mapStream(data => data.channels)));
440
- }
441
- isDefaultChannel(channelCode) {
442
- return channelCode === DEFAULT_CHANNEL_CODE;
443
- }
444
- deleteChannel(id) {
445
- this.modalService
446
- .dialog({
447
- title: marker('catalog.confirm-delete-channel'),
448
- buttons: [
449
- { type: 'secondary', label: marker('common.cancel') },
450
- { type: 'danger', label: marker('common.delete'), returnValue: true },
451
- ],
452
- })
453
- .pipe(switchMap(response => (response ? this.dataService.settings.deleteChannel(id) : EMPTY)), mergeMap(() => this.dataService.auth.currentUser().single$),
454
- // tslint:disable-next-line:no-non-null-assertion
455
- mergeMap(data => this.dataService.client.updateUserChannels(data.me.channels)))
456
- .subscribe(() => {
457
- this.notificationService.success(marker('common.notify-delete-success'), {
458
- entity: 'Channel',
459
- });
460
- this.refresh$.next(1);
461
- }, err => {
462
- this.notificationService.error(marker('common.notify-delete-error'), {
463
- entity: 'Channel',
464
- });
465
- });
466
- }
467
- }
468
- ChannelListComponent.decorators = [
469
- { type: Component, args: [{
470
- selector: 'vdr-channel-list',
471
- template: "<vdr-action-bar>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"channel-list\"></vdr-action-bar-items>\r\n <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"['SuperAdmin', 'CreateChannel']\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-channel' | translate }}\r\n </a>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table [items]=\"channels$ | async\">\r\n <vdr-dt-column>{{ 'common.code' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-channel=\"item\">\r\n <td class=\"left align-middle\">\r\n <vdr-channel-badge [channelCode]=\"channel.code\"></vdr-channel-badge>\r\n {{ channel.code | channelCodeToLabel | translate }}\r\n </td>\r\n <td class=\"right align-middle\">\r\n <vdr-table-row-action\r\n iconShape=\"edit\"\r\n [label]=\"'common.edit' | translate\"\r\n [linkTo]=\"['./', channel.id]\"\r\n ></vdr-table-row-action>\r\n </td>\r\n <td class=\"right align-middle\">\r\n <vdr-dropdown>\r\n <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger [disabled]=\"isDefaultChannel(channel.code)\">\r\n {{ 'common.actions' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"deleteChannel(channel.id)\"\r\n [disabled]=\"!(['SuperAdmin', 'DeleteChannel'] | hasPermission)\"\r\n vdrDropdownItem\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </td>\r\n </ng-template>\r\n</vdr-data-table>\r\n",
472
- changeDetection: ChangeDetectionStrategy.OnPush,
473
- styles: [""]
474
- },] }
475
- ];
476
- ChannelListComponent.ctorParameters = () => [
477
- { type: DataService },
478
- { type: ModalService },
479
- { type: NotificationService }
480
- ];
481
-
482
- class CountryDetailComponent extends BaseDetailComponent {
483
- constructor(router, route, serverConfigService, changeDetector, dataService, formBuilder, notificationService) {
484
- super(route, router, serverConfigService, dataService);
485
- this.changeDetector = changeDetector;
486
- this.dataService = dataService;
487
- this.formBuilder = formBuilder;
488
- this.notificationService = notificationService;
489
- this.updatePermission = [Permission.UpdateSettings, Permission.UpdateCountry];
490
- this.customFields = this.getCustomFieldConfig('Country');
491
- this.detailForm = this.formBuilder.group({
492
- code: ['', Validators.required],
493
- name: ['', Validators.required],
494
- enabled: [true],
495
- customFields: this.formBuilder.group(this.customFields.reduce((hash, field) => (Object.assign(Object.assign({}, hash), { [field.name]: '' })), {})),
496
- });
497
- }
498
- ngOnInit() {
499
- this.init();
500
- this.country$ = this.entity$;
501
- }
502
- ngOnDestroy() {
503
- this.destroy();
504
- }
505
- create() {
506
- if (!this.detailForm.dirty) {
507
- return;
508
- }
509
- combineLatest(this.country$, this.languageCode$)
510
- .pipe(take(1), mergeMap(([country, languageCode]) => {
511
- const formValue = this.detailForm.value;
512
- const input = createUpdatedTranslatable({
513
- translatable: country,
514
- updatedFields: formValue,
515
- customFieldConfig: this.customFields,
516
- languageCode,
517
- defaultTranslation: {
518
- name: formValue.name,
519
- languageCode,
520
- },
521
- });
522
- return this.dataService.settings.createCountry(input);
523
- }))
524
- .subscribe(data => {
525
- this.notificationService.success(marker('common.notify-create-success'), {
526
- entity: 'Country',
527
- });
528
- this.detailForm.markAsPristine();
529
- this.changeDetector.markForCheck();
530
- this.router.navigate(['../', data.createCountry.id], { relativeTo: this.route });
531
- }, err => {
532
- this.notificationService.error(marker('common.notify-create-error'), {
533
- entity: 'Country',
534
- });
535
- });
536
- }
537
- save() {
538
- combineLatest(this.country$, this.languageCode$)
539
- .pipe(take(1), mergeMap(([country, languageCode]) => {
540
- const formValue = this.detailForm.value;
541
- const input = createUpdatedTranslatable({
542
- translatable: country,
543
- updatedFields: formValue,
544
- customFieldConfig: this.customFields,
545
- languageCode,
546
- defaultTranslation: {
547
- name: formValue.name,
548
- languageCode,
549
- },
550
- });
551
- return this.dataService.settings.updateCountry(input);
552
- }))
553
- .subscribe(data => {
554
- this.notificationService.success(marker('common.notify-update-success'), {
555
- entity: 'Country',
556
- });
557
- this.detailForm.markAsPristine();
558
- this.changeDetector.markForCheck();
559
- }, err => {
560
- this.notificationService.error(marker('common.notify-update-error'), {
561
- entity: 'Country',
562
- });
563
- });
564
- }
565
- setFormValues(country, languageCode) {
566
- const currentTranslation = findTranslation(country, languageCode);
567
- this.detailForm.patchValue({
568
- code: country.code,
569
- name: currentTranslation ? currentTranslation.name : '',
570
- enabled: country.enabled,
571
- });
572
- if (this.customFields.length) {
573
- this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), country, currentTranslation);
574
- }
575
- }
576
- }
577
- CountryDetailComponent.decorators = [
578
- { type: Component, args: [{
579
- selector: 'vdr-country-detail',
580
- template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n <vdr-language-selector\r\n [disabled]=\"isNew$ | async\"\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"languageCode$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"country-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n (click)=\"save()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'common.code' | translate\" for=\"code\">\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n formControlName=\"code\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"enabled\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"enabled\"\r\n formControlName=\"enabled\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Country\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n <vdr-custom-detail-component-host\r\n locationId=\"country-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n</form>\r\n",
581
- changeDetection: ChangeDetectionStrategy.OnPush,
582
- styles: [""]
583
- },] }
584
- ];
585
- CountryDetailComponent.ctorParameters = () => [
586
- { type: Router },
587
- { type: ActivatedRoute },
588
- { type: ServerConfigService },
589
- { type: ChangeDetectorRef },
590
- { type: DataService },
591
- { type: FormBuilder },
592
- { type: NotificationService }
593
- ];
594
-
595
- class CountryListComponent {
596
- constructor(dataService, notificationService, modalService, serverConfigService) {
597
- this.dataService = dataService;
598
- this.notificationService = notificationService;
599
- this.modalService = modalService;
600
- this.serverConfigService = serverConfigService;
601
- this.searchTerm = new FormControl('');
602
- this.countries = [];
603
- this.destroy$ = new Subject();
604
- this.refresh$ = new Subject();
605
- }
606
- ngOnInit() {
607
- this.contentLanguage$ = this.dataService.client
608
- .uiState()
609
- .mapStream(({ uiState }) => uiState.contentLanguage);
610
- const countries$ = combineLatest(this.contentLanguage$, this.searchTerm.valueChanges.pipe(startWith(null))).pipe(map(([__, term]) => term), switchMap(term => this.dataService.settings.getCountries(999, 0, term).single$), tap(data => {
611
- this.countries = data.countries.items;
612
- }), map(data => data.countries.items));
613
- this.zones$ = this.dataService.settings.getZones().mapStream(data => data.zones);
614
- this.countriesWithZones$ = combineLatest(countries$, this.zones$).pipe(map(([countries, zones]) => {
615
- return countries.map(country => (Object.assign(Object.assign({}, country), { zones: zones.filter(z => !!z.members.find(c => c.id === country.id)) })));
616
- }));
617
- this.availableLanguages$ = this.serverConfigService.getAvailableLanguages();
618
- }
619
- ngOnDestroy() {
620
- this.destroy$.next(undefined);
621
- this.destroy$.complete();
622
- }
623
- setLanguage(code) {
624
- this.dataService.client.setContentLanguage(code).subscribe();
625
- }
626
- deleteCountry(countryId) {
627
- this.modalService
628
- .dialog({
629
- title: marker('catalog.confirm-delete-country'),
630
- buttons: [
631
- { type: 'secondary', label: marker('common.cancel') },
632
- { type: 'danger', label: marker('common.delete'), returnValue: true },
633
- ],
634
- })
635
- .pipe(switchMap(response => response ? this.dataService.settings.deleteCountry(countryId) : EMPTY))
636
- .subscribe(response => {
637
- if (response.deleteCountry.result === DeletionResult.DELETED) {
638
- this.notificationService.success(marker('common.notify-delete-success'), {
639
- entity: 'Country',
640
- });
641
- this.dataService.settings.getCountries(999, 0).single$.subscribe();
642
- }
643
- else {
644
- this.notificationService.error(response.deleteCountry.message || '');
645
- }
646
- }, err => {
647
- this.notificationService.error(marker('common.notify-delete-error'), {
648
- entity: 'Country',
649
- });
650
- });
651
- }
652
- isZone(input) {
653
- return input.hasOwnProperty('id');
654
- }
655
- }
656
- CountryListComponent.decorators = [
657
- { type: Component, args: [{
658
- selector: 'vdr-country-list',
659
- template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <input\r\n type=\"text\"\r\n name=\"searchTerm\"\r\n [formControl]=\"searchTerm\"\r\n [placeholder]=\"'settings.search-country-by-name' | translate\"\r\n class=\"search-input\"\r\n />\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"country-list\"></vdr-action-bar-items>\r\n <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"['CreateSettings', 'CreateCountry']\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-country' | translate }}\r\n </a>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table\r\n [items]=\"countriesWithZones$ | async\"\r\n>\r\n <vdr-dt-column>{{ 'common.code' | translate }}</vdr-dt-column>\r\n <vdr-dt-column [expand]=\"true\">{{ 'common.name' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'settings.zone' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'common.enabled' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-country=\"item\">\r\n <td class=\"left align-middle\">{{ country.code }}</td>\r\n <td class=\"left align-middle\">{{ country.name }}</td>\r\n <td class=\"left align-middle\">\r\n <a [routerLink]=\"['/settings', 'zones', { contents: zone.id }]\" *ngFor=\"let zone of country.zones\">\r\n <vdr-chip [colorFrom]=\"zone.name\">{{ zone.name }}</vdr-chip>\r\n </a>\r\n </td>\r\n <td class=\"left align-middle\">\r\n <clr-icon\r\n [class.is-success]=\"country.enabled\"\r\n [attr.shape]=\"country.enabled ? 'check' : 'times'\"\r\n ></clr-icon>\r\n </td>\r\n <td class=\"right align-middle\">\r\n <vdr-table-row-action\r\n iconShape=\"edit\"\r\n [label]=\"'common.edit' | translate\"\r\n [linkTo]=\"['./', country.id]\"\r\n ></vdr-table-row-action>\r\n </td>\r\n <td class=\"right align-middle\">\r\n <vdr-dropdown>\r\n <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n {{ 'common.actions' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"deleteCountry(country.id)\"\r\n vdrDropdownItem\r\n [disabled]=\"!(['DeleteSettings', 'DeleteCountry'] | 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 </td>\r\n </ng-template>\r\n</vdr-data-table>\r\n",
660
- changeDetection: ChangeDetectionStrategy.OnPush,
661
- styles: [".search-input{margin-top:6px;min-width:300px}\n"]
662
- },] }
663
- ];
664
- CountryListComponent.ctorParameters = () => [
665
- { type: DataService },
666
- { type: NotificationService },
667
- { type: ModalService },
668
- { type: ServerConfigService }
669
- ];
670
-
671
- class GlobalSettingsComponent extends BaseDetailComponent {
672
- constructor(router, route, serverConfigService, changeDetector, dataService, formBuilder, notificationService) {
673
- super(route, router, serverConfigService, dataService);
674
- this.changeDetector = changeDetector;
675
- this.dataService = dataService;
676
- this.formBuilder = formBuilder;
677
- this.notificationService = notificationService;
678
- this.languageCodes = Object.values(LanguageCode);
679
- this.updatePermission = [Permission.UpdateSettings, Permission.UpdateGlobalSettings];
680
- this.customFields = this.getCustomFieldConfig('GlobalSettings');
681
- this.detailForm = this.formBuilder.group({
682
- availableLanguages: [''],
683
- trackInventory: false,
684
- outOfStockThreshold: [0, Validators.required],
685
- customFields: this.formBuilder.group(this.customFields.reduce((hash, field) => (Object.assign(Object.assign({}, hash), { [field.name]: '' })), {})),
686
- });
687
- }
688
- ngOnInit() {
689
- this.init();
690
- this.dataService.client.userStatus().single$.subscribe(({ userStatus }) => {
691
- if (!userStatus.permissions.includes(Permission.UpdateSettings)) {
692
- const languagesSelect = this.detailForm.get('availableLanguages');
693
- if (languagesSelect) {
694
- languagesSelect.disable();
695
- }
696
- }
697
- });
698
- }
699
- save() {
700
- if (!this.detailForm.dirty) {
701
- return;
702
- }
703
- this.dataService.settings
704
- .updateGlobalSettings(this.detailForm.value)
705
- .pipe(tap(({ updateGlobalSettings }) => {
706
- switch (updateGlobalSettings.__typename) {
707
- case 'GlobalSettings':
708
- this.detailForm.markAsPristine();
709
- this.changeDetector.markForCheck();
710
- this.notificationService.success(marker('common.notify-update-success'), {
711
- entity: 'Settings',
712
- });
713
- break;
714
- case 'ChannelDefaultLanguageError':
715
- this.notificationService.error(updateGlobalSettings.message);
716
- }
717
- }), switchMap(() => this.serverConfigService.refreshGlobalSettings()), withLatestFrom(this.dataService.client.uiState().single$))
718
- .subscribe(([{ globalSettings }, { uiState }]) => {
719
- const availableLangs = globalSettings.availableLanguages;
720
- if (availableLangs.length && !availableLangs.includes(uiState.contentLanguage)) {
721
- this.dataService.client.setContentLanguage(availableLangs[0]).subscribe();
722
- }
723
- });
724
- }
725
- setFormValues(entity, languageCode) {
726
- this.detailForm.patchValue({
727
- availableLanguages: entity.availableLanguages,
728
- trackInventory: entity.trackInventory,
729
- outOfStockThreshold: entity.outOfStockThreshold,
730
- });
731
- if (this.customFields.length) {
732
- this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);
733
- }
734
- }
735
- }
736
- GlobalSettingsComponent.decorators = [
737
- { type: Component, args: [{
738
- selector: 'vdr-global-settings',
739
- template: "<vdr-action-bar>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"global-settings-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'common.available-languages' | translate\" for=\"availableLanguages\">\r\n <ng-select\r\n [items]=\"languageCodes\"\r\n [addTag]=\"false\"\r\n [hideSelected]=\"true\"\r\n multiple=\"true\"\r\n appendTo=\"body\"\r\n formControlName=\"availableLanguages\"\r\n >\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <span class=\"ng-value-icon left\" (click)=\"clear.call(null, item)\" aria-hidden=\"true\">\r\n \u00D7\r\n </span>\r\n <span class=\"ng-value-label\">{{ item | localeLanguageName }} ({{ item }})</span>\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n {{ item | localeLanguageName }} ({{ item }})\r\n </ng-template>\r\n </ng-select>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'settings.global-out-of-stock-threshold' | translate\"\r\n for=\"outOfStockThreshold\"\r\n [tooltip]=\"'settings.global-out-of-stock-threshold-tooltip' | translate\"\r\n >\r\n <input\r\n id=\"outOfStockThreshold\"\r\n type=\"number\"\r\n formControlName=\"outOfStockThreshold\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'settings.track-inventory-default' | translate\"\r\n for=\"enabled\"\r\n [tooltip]=\"'catalog.track-inventory-tooltip' | translate\"\r\n >\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n name=\"enabled\"\r\n formControlName=\"trackInventory\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"GlobalSettings\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n <vdr-custom-detail-component-host\r\n locationId=\"global-settings-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n</form>\r\n",
740
- changeDetection: ChangeDetectionStrategy.OnPush,
741
- styles: ["::ng-deep ng-select .ng-value>span{margin:0!important}::ng-deep ng-select .ng-arrow-wrapper .ng-arrow{margin:0!important}::ng-deep ng-select .ng-select-container>span{margin:0!important}\n"]
742
- },] }
743
- ];
744
- GlobalSettingsComponent.ctorParameters = () => [
745
- { type: Router },
746
- { type: ActivatedRoute },
747
- { type: ServerConfigService },
748
- { type: ChangeDetectorRef },
749
- { type: DataService },
750
- { type: FormBuilder },
751
- { type: NotificationService }
752
- ];
753
-
754
- class PaymentMethodDetailComponent extends BaseDetailComponent {
755
- constructor(router, route, serverConfigService, changeDetector, dataService, formBuilder, notificationService) {
756
- super(route, router, serverConfigService, dataService);
757
- this.changeDetector = changeDetector;
758
- this.dataService = dataService;
759
- this.formBuilder = formBuilder;
760
- this.notificationService = notificationService;
761
- this.checkers = [];
762
- this.handlers = [];
763
- this.updatePermission = [Permission.UpdateSettings, Permission.UpdatePaymentMethod];
764
- this.customFields = this.getCustomFieldConfig('PaymentMethod');
765
- this.detailForm = this.formBuilder.group({
766
- code: ['', Validators.required],
767
- name: ['', Validators.required],
768
- description: '',
769
- enabled: [true, Validators.required],
770
- checker: {},
771
- handler: {},
772
- customFields: this.formBuilder.group(this.customFields.reduce((hash, field) => (Object.assign(Object.assign({}, hash), { [field.name]: '' })), {})),
773
- });
774
- }
775
- ngOnInit() {
776
- this.init();
777
- combineLatest([
778
- this.dataService.settings.getPaymentMethodOperations().single$,
779
- this.entity$.pipe(take(1)),
780
- ]).subscribe(([data, entity]) => {
781
- this.checkers = data.paymentMethodEligibilityCheckers;
782
- this.handlers = data.paymentMethodHandlers;
783
- this.changeDetector.markForCheck();
784
- this.selectedCheckerDefinition = data.paymentMethodEligibilityCheckers.find(c => c.code === (entity.checker && entity.checker.code));
785
- this.selectedHandlerDefinition = data.paymentMethodHandlers.find(c => c.code === (entity.handler && entity.handler.code));
786
- });
787
- }
788
- ngOnDestroy() {
789
- this.destroy();
790
- }
791
- updateCode(currentCode, nameValue) {
792
- if (!currentCode) {
793
- const codeControl = this.detailForm.get(['code']);
794
- if (codeControl && codeControl.pristine) {
795
- codeControl.setValue(normalizeString(nameValue, '-'));
796
- }
797
- }
798
- }
799
- configArgsIsPopulated() {
800
- const configArgsGroup = this.detailForm.get('configArgs');
801
- if (!configArgsGroup) {
802
- return false;
803
- }
804
- return 0 < Object.keys(configArgsGroup.controls).length;
805
- }
806
- selectChecker(checker) {
807
- this.selectedCheckerDefinition = checker;
808
- this.selectedChecker = configurableDefinitionToInstance(checker);
809
- const formControl = this.detailForm.get('checker');
810
- if (formControl) {
811
- formControl.clearValidators();
812
- formControl.updateValueAndValidity({ onlySelf: true });
813
- formControl.patchValue(this.selectedChecker);
814
- }
815
- this.detailForm.markAsDirty();
816
- }
817
- selectHandler(handler) {
818
- this.selectedHandlerDefinition = handler;
819
- this.selectedHandler = configurableDefinitionToInstance(handler);
820
- const formControl = this.detailForm.get('handler');
821
- if (formControl) {
822
- formControl.clearValidators();
823
- formControl.updateValueAndValidity({ onlySelf: true });
824
- formControl.patchValue(this.selectedHandler);
825
- }
826
- this.detailForm.markAsDirty();
827
- }
828
- removeChecker() {
829
- this.selectedChecker = null;
830
- this.detailForm.markAsDirty();
831
- }
832
- removeHandler() {
833
- this.selectedHandler = null;
834
- this.detailForm.markAsDirty();
835
- }
836
- create() {
837
- const selectedChecker = this.selectedChecker;
838
- const selectedHandler = this.selectedHandler;
839
- if (!selectedHandler) {
840
- return;
841
- }
842
- this.entity$
843
- .pipe(take(1), mergeMap(({ id }) => {
844
- const formValue = this.detailForm.value;
845
- const input = {
846
- name: formValue.name,
847
- code: formValue.code,
848
- description: formValue.description,
849
- enabled: formValue.enabled,
850
- checker: selectedChecker
851
- ? toConfigurableOperationInput(selectedChecker, formValue.checker)
852
- : null,
853
- handler: toConfigurableOperationInput(selectedHandler, formValue.handler),
854
- customFields: formValue.customFields,
855
- };
856
- return this.dataService.settings.createPaymentMethod(input);
857
- }))
858
- .subscribe(data => {
859
- this.notificationService.success(marker('common.notify-create-success'), {
860
- entity: 'PaymentMethod',
861
- });
862
- this.detailForm.markAsPristine();
863
- this.changeDetector.markForCheck();
864
- this.router.navigate(['../', data.createPaymentMethod.id], { relativeTo: this.route });
865
- }, err => {
866
- this.notificationService.error(marker('common.notify-create-error'), {
867
- entity: 'PaymentMethod',
868
- });
869
- });
870
- }
871
- save() {
872
- const selectedChecker = this.selectedChecker;
873
- const selectedHandler = this.selectedHandler;
874
- if (!selectedHandler) {
875
- return;
876
- }
877
- this.entity$
878
- .pipe(take(1), mergeMap(({ id }) => {
879
- const formValue = this.detailForm.value;
880
- const input = {
881
- id,
882
- name: formValue.name,
883
- code: formValue.code,
884
- description: formValue.description,
885
- enabled: formValue.enabled,
886
- checker: selectedChecker
887
- ? toConfigurableOperationInput(selectedChecker, formValue.checker)
888
- : null,
889
- handler: toConfigurableOperationInput(selectedHandler, formValue.handler),
890
- customFields: formValue.customFields,
891
- };
892
- return this.dataService.settings.updatePaymentMethod(input);
893
- }))
894
- .subscribe(data => {
895
- this.notificationService.success(marker('common.notify-update-success'), {
896
- entity: 'PaymentMethod',
897
- });
898
- this.detailForm.markAsPristine();
899
- this.changeDetector.markForCheck();
900
- }, err => {
901
- this.notificationService.error(marker('common.notify-update-error'), {
902
- entity: 'PaymentMethod',
903
- });
904
- });
905
- }
906
- setFormValues(paymentMethod) {
907
- this.detailForm.patchValue({
908
- name: paymentMethod.name,
909
- code: paymentMethod.code,
910
- description: paymentMethod.description,
911
- enabled: paymentMethod.enabled,
912
- checker: paymentMethod.checker || {},
913
- handler: paymentMethod.handler || {},
914
- });
915
- if (!this.selectedChecker) {
916
- this.selectedChecker = paymentMethod.checker && {
917
- code: paymentMethod.checker.code,
918
- args: paymentMethod.checker.args.map(a => (Object.assign(Object.assign({}, a), { value: getConfigArgValue(a.value) }))),
919
- };
920
- }
921
- if (!this.selectedHandler) {
922
- this.selectedHandler = paymentMethod.handler && {
923
- code: paymentMethod.handler.code,
924
- args: paymentMethod.handler.args.map(a => (Object.assign(Object.assign({}, a), { value: getConfigArgValue(a.value) }))),
925
- };
926
- }
927
- if (this.customFields.length) {
928
- this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), paymentMethod);
929
- }
930
- }
931
- }
932
- PaymentMethodDetailComponent.decorators = [
933
- { type: Component, args: [{
934
- selector: 'vdr-payment-method-detail',
935
- template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"payment-method-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n [disabled]=\"detailForm.pristine || detailForm.invalid\"\r\n (click)=\"create()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n *vdrIfPermissions=\"updatePermission\"\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"detailForm.pristine || detailForm.invalid || !selectedHandler\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\" *ngIf=\"entity$ | async as paymentMethod\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (input)=\"updateCode(paymentMethod.code, $event.target.value)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'common.code' | translate\"\r\n for=\"code\"\r\n [readOnlyToggle]=\"updatePermission | hasPermission\"\r\n >\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n formControlName=\"code\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-rich-text-editor\r\n formControlName=\"description\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n [label]=\"'common.description' | translate\"\r\n ></vdr-rich-text-editor>\r\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"description\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"enabled\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"enabled\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"PaymentMethod\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n\r\n <vdr-custom-detail-component-host\r\n locationId=\"payment-method-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n\r\n <div class=\"clr-row mt4\">\r\n <div class=\"clr-col\">\r\n <label class=\"clr-control-label\">{{ 'settings.payment-eligibility-checker' | translate }}</label>\r\n <vdr-configurable-input\r\n *ngIf=\"selectedChecker && selectedCheckerDefinition\"\r\n [operation]=\"selectedChecker\"\r\n [operationDefinition]=\"selectedCheckerDefinition\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (remove)=\"removeChecker()\"\r\n formControlName=\"checker\"\r\n ></vdr-configurable-input>\r\n <div *ngIf=\"!selectedChecker || !selectedCheckerDefinition\">\r\n <vdr-dropdown>\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'common.select' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let checker of checkers\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"selectChecker(checker)\"\r\n >\r\n {{ checker.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n <div class=\"clr-col\">\r\n <label class=\"clr-control-label\">{{ 'settings.payment-handler' | translate }}</label>\r\n <vdr-configurable-input\r\n *ngIf=\"selectedHandler && selectedHandlerDefinition\"\r\n [operation]=\"selectedHandler\"\r\n [operationDefinition]=\"selectedHandlerDefinition\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (remove)=\"removeHandler()\"\r\n formControlName=\"handler\"\r\n ></vdr-configurable-input>\r\n <div *ngIf=\"!selectedHandler || !selectedHandlerDefinition\">\r\n <vdr-dropdown>\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'common.select' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let handler of handlers\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"selectHandler(handler)\"\r\n >\r\n {{ handler.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n",
936
- changeDetection: ChangeDetectionStrategy.OnPush,
937
- styles: [""]
938
- },] }
939
- ];
940
- PaymentMethodDetailComponent.ctorParameters = () => [
941
- { type: Router },
942
- { type: ActivatedRoute },
943
- { type: ServerConfigService },
944
- { type: ChangeDetectorRef },
945
- { type: DataService },
946
- { type: FormBuilder },
947
- { type: NotificationService }
948
- ];
949
-
950
- class PaymentMethodListComponent extends BaseListComponent {
951
- constructor(dataService, router, route, modalService, notificationService) {
952
- super(router, route);
953
- this.dataService = dataService;
954
- this.modalService = modalService;
955
- this.notificationService = notificationService;
956
- super.setQueryFn((...args) => this.dataService.settings.getPaymentMethods(...args).refetchOnChannelChange(), data => data.paymentMethods);
957
- }
958
- deletePaymentMethod(paymentMethodId) {
959
- this.showModalAndDelete(paymentMethodId)
960
- .pipe(switchMap(response => {
961
- if (response.result === DeletionResult.DELETED) {
962
- return [true];
963
- }
964
- else {
965
- return this.showModalAndDelete(paymentMethodId, response.message || '').pipe(map(r => r.result === DeletionResult.DELETED));
966
- }
967
- }),
968
- // Refresh the cached facets to reflect the changes
969
- switchMap(() => this.dataService.settings.getPaymentMethods(100).single$))
970
- .subscribe(() => {
971
- this.notificationService.success(marker('common.notify-delete-success'), {
972
- entity: 'PaymentMethod',
973
- });
974
- this.refresh();
975
- }, err => {
976
- this.notificationService.error(marker('common.notify-delete-error'), {
977
- entity: 'PaymentMethod',
978
- });
979
- });
980
- }
981
- showModalAndDelete(paymentMethodId, message) {
982
- return this.modalService
983
- .dialog({
984
- title: marker('settings.confirm-delete-payment-method'),
985
- body: message,
986
- buttons: [
987
- { type: 'secondary', label: marker('common.cancel') },
988
- { type: 'danger', label: marker('common.delete'), returnValue: true },
989
- ],
990
- })
991
- .pipe(switchMap(res => res ? this.dataService.settings.deletePaymentMethod(paymentMethodId, !!message) : EMPTY), map(res => res.deletePaymentMethod));
992
- }
993
- }
994
- PaymentMethodListComponent.decorators = [
995
- { type: Component, args: [{
996
- selector: 'vdr-payment-method-list',
997
- template: "<vdr-action-bar>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"payment-method-list\"></vdr-action-bar-items>\r\n <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"['CreateSettings', 'CreatePaymentMethod']\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-payment-method' | translate }}\r\n </a>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-dt-column>{{ 'common.code' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'common.enabled' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-paymentMethod=\"item\">\r\n <td class=\"left align-middle\">{{ paymentMethod.code }}</td>\r\n <td class=\"left align-middle\">{{ paymentMethod.enabled }}</td>\r\n <td class=\"right align-middle\">\r\n <vdr-table-row-action\r\n iconShape=\"edit\"\r\n [label]=\"'common.edit' | translate\"\r\n [linkTo]=\"['./', paymentMethod.id]\"\r\n ></vdr-table-row-action>\r\n </td>\r\n <td class=\"right align-middle\">\r\n <vdr-dropdown>\r\n <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n {{ 'common.actions' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"deletePaymentMethod(paymentMethod.id)\"\r\n [disabled]=\"!(['DeleteSettings', 'DeletePaymentMethod'] | hasPermission)\"\r\n vdrDropdownItem\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </td>\r\n </ng-template>\r\n</vdr-data-table>\r\n",
998
- changeDetection: ChangeDetectionStrategy.OnPush,
999
- styles: [""]
1000
- },] }
1001
- ];
1002
- PaymentMethodListComponent.ctorParameters = () => [
1003
- { type: DataService },
1004
- { type: Router },
1005
- { type: ActivatedRoute },
1006
- { type: ModalService },
1007
- { type: NotificationService }
1008
- ];
1009
-
1010
- /**
1011
- * A table showing and allowing the setting of all possible CRUD permissions.
1012
- */
1013
- class PermissionGridComponent {
1014
- constructor() {
1015
- this.readonly = false;
1016
- this.permissionChange = new EventEmitter();
1017
- }
1018
- ngOnInit() {
1019
- this.buildGrid();
1020
- }
1021
- setPermission(permission, value) {
1022
- if (!this.readonly) {
1023
- this.permissionChange.emit({ permission, value });
1024
- }
1025
- }
1026
- toggleAll(defs) {
1027
- const value = defs.some(d => !this.activePermissions.includes(d.name));
1028
- for (const def of defs) {
1029
- this.permissionChange.emit({ permission: def.name, value });
1030
- }
1031
- }
1032
- buildGrid() {
1033
- var _a;
1034
- const crudGroups = new Map();
1035
- const nonCrud = [];
1036
- const crudRe = /^(Create|Read|Update|Delete)([a-zA-Z]+)$/;
1037
- for (const def of this.permissionDefinitions) {
1038
- const isCrud = crudRe.test(def.name);
1039
- if (isCrud) {
1040
- const groupName = (_a = def.name.match(crudRe)) === null || _a === void 0 ? void 0 : _a[2];
1041
- if (groupName) {
1042
- const existing = crudGroups.get(groupName);
1043
- if (existing) {
1044
- existing.push(def);
1045
- }
1046
- else {
1047
- crudGroups.set(groupName, [def]);
1048
- }
1049
- }
1050
- }
1051
- else if (def.assignable) {
1052
- nonCrud.push(def);
1053
- }
1054
- }
1055
- this.gridData = [
1056
- ...nonCrud.map(d => ({
1057
- label: d.name,
1058
- description: d.description,
1059
- permissions: [d],
1060
- })),
1061
- ...Array.from(crudGroups.entries()).map(([label, defs]) => {
1062
- return {
1063
- label,
1064
- description: this.extractCrudDescription(defs[0]),
1065
- permissions: defs,
1066
- };
1067
- }),
1068
- ];
1069
- }
1070
- extractCrudDescription(def) {
1071
- return def.description.replace(/Grants permission to [\w]+/, 'Grants permissions on');
1072
- }
1073
- }
1074
- PermissionGridComponent.decorators = [
1075
- { type: Component, args: [{
1076
- selector: 'vdr-permission-grid',
1077
- template: "<table class=\"table\">\r\n <tbody>\r\n <tr *ngFor=\"let section of gridData\">\r\n <td class=\"permission-group left\">\r\n <div><strong>{{ section.label | translate }}</strong></div>\r\n <small>{{ section.description | translate }}</small><br>\r\n <button *ngIf=\"1 < section.permissions.length && !readonly\" class=\"btn btn-sm btn-link\" (click)=\"toggleAll(section.permissions)\">\r\n {{ 'common.toggle-all' | translate }}\r\n </button>\r\n </td>\r\n <td *ngFor=\"let permission of section.permissions\" [attr.colspan]=\"section.permissions.length === 1 ? 4 : 1\">\r\n <vdr-select-toggle\r\n size=\"small\"\r\n [title]=\"permission.description\"\r\n [label]=\"permission.name\"\r\n [disabled]=\"readonly\"\r\n [selected]=\"activePermissions?.includes(permission.name)\"\r\n (selectedChange)=\"setPermission(permission.name, $event)\"\r\n ></vdr-select-toggle>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n",
1078
- changeDetection: ChangeDetectionStrategy.OnPush,
1079
- styles: ["td.permission-group{max-width:300px;background-color:var(--color-component-bg-200)}\n"]
1080
- },] }
1081
- ];
1082
- PermissionGridComponent.propDecorators = {
1083
- permissionDefinitions: [{ type: Input }],
1084
- activePermissions: [{ type: Input }],
1085
- readonly: [{ type: Input }],
1086
- permissionChange: [{ type: Output }]
1087
- };
1088
-
1089
- class ProfileComponent extends BaseDetailComponent {
1090
- constructor(router, route, serverConfigService, changeDetector, dataService, formBuilder, notificationService) {
1091
- super(route, router, serverConfigService, dataService);
1092
- this.changeDetector = changeDetector;
1093
- this.dataService = dataService;
1094
- this.formBuilder = formBuilder;
1095
- this.notificationService = notificationService;
1096
- this.customFields = this.getCustomFieldConfig('Administrator');
1097
- this.detailForm = this.formBuilder.group({
1098
- emailAddress: ['', Validators.required],
1099
- firstName: ['', Validators.required],
1100
- lastName: ['', Validators.required],
1101
- password: [''],
1102
- customFields: this.formBuilder.group(this.customFields.reduce((hash, field) => (Object.assign(Object.assign({}, hash), { [field.name]: '' })), {})),
1103
- });
1104
- }
1105
- ngOnInit() {
1106
- this.init();
1107
- }
1108
- ngOnDestroy() {
1109
- this.destroy();
1110
- }
1111
- save() {
1112
- this.entity$
1113
- .pipe(take(1), mergeMap(({ id }) => {
1114
- const formValue = this.detailForm.value;
1115
- const administrator = {
1116
- emailAddress: formValue.emailAddress,
1117
- firstName: formValue.firstName,
1118
- lastName: formValue.lastName,
1119
- password: formValue.password,
1120
- customFields: formValue.customFields,
1121
- };
1122
- return this.dataService.administrator.updateActiveAdministrator(administrator);
1123
- }))
1124
- .subscribe(data => {
1125
- this.notificationService.success(marker('common.notify-update-success'), {
1126
- entity: 'Administrator',
1127
- });
1128
- this.detailForm.markAsPristine();
1129
- this.changeDetector.markForCheck();
1130
- }, err => {
1131
- this.notificationService.error(marker('common.notify-update-error'), {
1132
- entity: 'Administrator',
1133
- });
1134
- });
1135
- }
1136
- setFormValues(administrator, languageCode) {
1137
- this.detailForm.patchValue({
1138
- emailAddress: administrator.emailAddress,
1139
- firstName: administrator.firstName,
1140
- lastName: administrator.lastName,
1141
- });
1142
- if (this.customFields.length) {
1143
- this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), administrator);
1144
- }
1145
- }
1146
- }
1147
- ProfileComponent.decorators = [
1148
- { type: Component, args: [{
1149
- selector: 'vdr-profile',
1150
- template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"administrator-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'settings.email-address' | translate\" for=\"emailAddress\">\r\n <input id=\"emailAddress\" type=\"text\" formControlName=\"emailAddress\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.first-name' | translate\" for=\"firstName\">\r\n <input id=\"firstName\" type=\"text\" formControlName=\"firstName\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.last-name' | translate\" for=\"lastName\">\r\n <input id=\"lastName\" type=\"text\" formControlName=\"lastName\" />\r\n </vdr-form-field>\r\n <vdr-form-field *ngIf=\"isNew$ | async\" [label]=\"'settings.password' | translate\" for=\"password\">\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.password' | translate\" for=\"password\" [readOnlyToggle]=\"true\">\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Administrator\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n</form>\r\n",
1151
- changeDetection: ChangeDetectionStrategy.OnPush,
1152
- styles: [""]
1153
- },] }
1154
- ];
1155
- ProfileComponent.ctorParameters = () => [
1156
- { type: Router },
1157
- { type: ActivatedRoute },
1158
- { type: ServerConfigService },
1159
- { type: ChangeDetectorRef },
1160
- { type: DataService },
1161
- { type: FormBuilder },
1162
- { type: NotificationService }
1163
- ];
1164
-
1165
- class RoleDetailComponent extends BaseDetailComponent {
1166
- constructor(router, route, serverConfigService, changeDetector, dataService, formBuilder, notificationService) {
1167
- super(route, router, serverConfigService, dataService);
1168
- this.changeDetector = changeDetector;
1169
- this.dataService = dataService;
1170
- this.formBuilder = formBuilder;
1171
- this.notificationService = notificationService;
1172
- this.detailForm = this.formBuilder.group({
1173
- code: ['', Validators.required],
1174
- description: ['', Validators.required],
1175
- channelIds: [],
1176
- permissions: [],
1177
- });
1178
- }
1179
- ngOnInit() {
1180
- this.init();
1181
- this.role$ = this.entity$;
1182
- this.permissionDefinitions = this.serverConfigService.getPermissionDefinitions();
1183
- }
1184
- ngOnDestroy() {
1185
- this.destroy();
1186
- }
1187
- updateCode(nameValue) {
1188
- const codeControl = this.detailForm.get(['code']);
1189
- if (codeControl && codeControl.pristine) {
1190
- codeControl.setValue(normalizeString(nameValue, '-'));
1191
- }
1192
- }
1193
- setPermission(change) {
1194
- const permissionsControl = this.detailForm.get('permissions');
1195
- if (permissionsControl) {
1196
- const currentPermissions = permissionsControl.value;
1197
- const newValue = change.value === true
1198
- ? unique([...currentPermissions, change.permission])
1199
- : currentPermissions.filter(p => p !== change.permission);
1200
- permissionsControl.setValue(newValue);
1201
- permissionsControl.markAsDirty();
1202
- }
1203
- }
1204
- create() {
1205
- const formValue = this.detailForm.value;
1206
- const role = formValue;
1207
- this.dataService.administrator.createRole(role).subscribe(data => {
1208
- this.notificationService.success(marker('common.notify-create-success'), { entity: 'Role' });
1209
- this.detailForm.markAsPristine();
1210
- this.changeDetector.markForCheck();
1211
- this.router.navigate(['../', data.createRole.id], { relativeTo: this.route });
1212
- }, err => {
1213
- this.notificationService.error(marker('common.notify-create-error'), {
1214
- entity: 'Role',
1215
- });
1216
- });
1217
- }
1218
- save() {
1219
- this.role$
1220
- .pipe(take(1), mergeMap(({ id }) => {
1221
- const formValue = this.detailForm.value;
1222
- const role = Object.assign({ id }, formValue);
1223
- return this.dataService.administrator.updateRole(role);
1224
- }))
1225
- .subscribe(data => {
1226
- this.notificationService.success(marker('common.notify-update-success'), { entity: 'Role' });
1227
- this.detailForm.markAsPristine();
1228
- this.changeDetector.markForCheck();
1229
- }, err => {
1230
- this.notificationService.error(marker('common.notify-update-error'), {
1231
- entity: 'Role',
1232
- });
1233
- });
1234
- }
1235
- setFormValues(role, languageCode) {
1236
- this.detailForm.patchValue({
1237
- description: role.description,
1238
- code: role.code,
1239
- channelIds: role.channels.map(c => c.id),
1240
- permissions: role.permissions,
1241
- });
1242
- // This was required to get the channel selector component to
1243
- // correctly display its contents. A while spent debugging the root
1244
- // cause did not yield a solution, therefore this next line.
1245
- this.changeDetector.detectChanges();
1246
- }
1247
- }
1248
- RoleDetailComponent.decorators = [
1249
- { type: Component, args: [{
1250
- selector: 'vdr-role-detail',
1251
- template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"role-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"'UpdateAdministrator'\"\r\n [disabled]=\"detailForm.invalid || detailForm.pristine\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'common.description' | translate\" for=\"description\">\r\n <input\r\n id=\"description\"\r\n type=\"text\"\r\n formControlName=\"description\"\r\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n (input)=\"updateCode($event.target.value)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'common.code' | translate\"\r\n for=\"code\"\r\n [readOnlyToggle]=\"'UpdateAdministrator' | hasPermission\"\r\n >\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n formControlName=\"code\"\r\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.channel' | translate\">\r\n <vdr-channel-assignment-control\r\n formControlName=\"channelIds\"\r\n [vdrDisabled]=\"!('UpdateAdministrator' | hasPermission)\"\r\n ></vdr-channel-assignment-control>\r\n </vdr-form-field>\r\n <label>{{ 'settings.permissions' | translate }}</label>\r\n <vdr-permission-grid\r\n [permissionDefinitions]=\"permissionDefinitions\"\r\n [activePermissions]=\"detailForm.get('permissions')?.value\"\r\n (permissionChange)=\"setPermission($event)\"\r\n [readonly]=\"!('UpdateAdministrator' | hasPermission)\"\r\n ></vdr-permission-grid>\r\n</form>\r\n",
1252
- changeDetection: ChangeDetectionStrategy.OnPush,
1253
- styles: [""]
1254
- },] }
1255
- ];
1256
- RoleDetailComponent.ctorParameters = () => [
1257
- { type: Router },
1258
- { type: ActivatedRoute },
1259
- { type: ServerConfigService },
1260
- { type: ChangeDetectorRef },
1261
- { type: DataService },
1262
- { type: FormBuilder },
1263
- { type: NotificationService }
1264
- ];
1265
-
1266
- class RoleListComponent extends BaseListComponent {
1267
- constructor(modalService, notificationService, dataService, router, route) {
1268
- super(router, route);
1269
- this.modalService = modalService;
1270
- this.notificationService = notificationService;
1271
- this.dataService = dataService;
1272
- this.initialLimit = 3;
1273
- this.displayLimit = {};
1274
- super.setQueryFn((...args) => this.dataService.administrator.getRoles(...args), data => data.roles);
1275
- }
1276
- ngOnInit() {
1277
- super.ngOnInit();
1278
- this.visibleRoles$ = this.items$.pipe(map(roles => roles.filter(role => role.code !== CUSTOMER_ROLE_CODE)));
1279
- }
1280
- toggleDisplayLimit(role) {
1281
- if (this.displayLimit[role.id] === role.permissions.length) {
1282
- this.displayLimit[role.id] = this.initialLimit;
1283
- }
1284
- else {
1285
- this.displayLimit[role.id] = role.permissions.length;
1286
- }
1287
- }
1288
- isDefaultRole(role) {
1289
- return role.code === SUPER_ADMIN_ROLE_CODE || role.code === CUSTOMER_ROLE_CODE;
1290
- }
1291
- deleteRole(id) {
1292
- this.modalService
1293
- .dialog({
1294
- title: marker('settings.confirm-delete-role'),
1295
- buttons: [
1296
- { type: 'secondary', label: marker('common.cancel') },
1297
- { type: 'danger', label: marker('common.delete'), returnValue: true },
1298
- ],
1299
- })
1300
- .pipe(switchMap(response => (response ? this.dataService.administrator.deleteRole(id) : EMPTY)))
1301
- .subscribe(() => {
1302
- this.notificationService.success(marker('common.notify-delete-success'), {
1303
- entity: 'Role',
1304
- });
1305
- this.refresh();
1306
- }, err => {
1307
- this.notificationService.error(marker('common.notify-delete-error'), {
1308
- entity: 'Role',
1309
- });
1310
- });
1311
- }
1312
- }
1313
- RoleListComponent.decorators = [
1314
- { type: Component, args: [{
1315
- selector: 'vdr-role-list',
1316
- template: "<vdr-action-bar>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"role-list\"></vdr-action-bar-items>\r\n <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"'CreateAdministrator'\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-role' | translate }}\r\n </a>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table\r\n [items]=\"visibleRoles$ | 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.description' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'common.code' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'settings.channel' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'settings.permissions' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-role=\"item\">\r\n <td class=\"left align-middle\">{{ role.description }}</td>\r\n <td class=\"left align-middle\"><span *ngIf=\"!isDefaultRole(role)\">{{ role.code }}</span></td>\r\n <td class=\"left align-middle\">\r\n <ng-container *ngIf=\"!isDefaultRole(role)\">\r\n <vdr-chip *ngFor=\"let channel of role.channels\">\r\n <vdr-channel-badge [channelCode]=\"channel.code\"></vdr-channel-badge>\r\n {{ channel.code | channelCodeToLabel | translate }}\r\n </vdr-chip>\r\n </ng-container>\r\n </td>\r\n <td class=\"left align-middle\">\r\n <ng-container *ngIf=\"!isDefaultRole(role); else defaultRole\">\r\n <vdr-chip *ngFor=\"let permission of role.permissions | slice: 0:displayLimit[role.id] || 3\">{{ permission }}</vdr-chip>\r\n <button\r\n class=\"btn btn-sm btn-secondary btn-icon\"\r\n *ngIf=\"role.permissions.length > initialLimit\"\r\n (click)=\"toggleDisplayLimit(role)\"\r\n >\r\n <ng-container *ngIf=\"(displayLimit[role.id] || 0) < role.permissions.length; else collapse\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ role.permissions.length - initialLimit }}\r\n </ng-container>\r\n <ng-template #collapse>\r\n <clr-icon shape=\"minus\"></clr-icon>\r\n </ng-template>\r\n </button>\r\n </ng-container>\r\n <ng-template #defaultRole>\r\n <span class=\"default-role-label\">{{ 'settings.default-role-label' | translate }}</span>\r\n </ng-template>\r\n </td>\r\n <td class=\"right align-middle\">\r\n <vdr-table-row-action\r\n *ngIf=\"!isDefaultRole(role)\"\r\n iconShape=\"edit\"\r\n [label]=\"'common.edit' | translate\"\r\n [linkTo]=\"['./', role.id]\"\r\n ></vdr-table-row-action>\r\n </td>\r\n <td class=\"right align-middle\">\r\n <vdr-dropdown>\r\n <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger [disabled]=\"isDefaultRole(role)\">\r\n {{ 'common.actions' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"deleteRole(role.id)\"\r\n [disabled]=\"!('SuperAdmin' | hasPermission)\"\r\n vdrDropdownItem\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </td>\r\n </ng-template>\r\n</vdr-data-table>\r\n",
1317
- changeDetection: ChangeDetectionStrategy.OnPush,
1318
- styles: [".default-role-label{color:var(--color-grey-400)}\n"]
1319
- },] }
1320
- ];
1321
- RoleListComponent.ctorParameters = () => [
1322
- { type: ModalService },
1323
- { type: NotificationService },
1324
- { type: DataService },
1325
- { type: Router },
1326
- { type: ActivatedRoute }
1327
- ];
1328
-
1329
- class ShippingEligibilityTestResultComponent {
1330
- constructor() {
1331
- this.okToRun = false;
1332
- this.testDataUpdated = false;
1333
- this.runTest = new EventEmitter();
1334
- }
1335
- }
1336
- ShippingEligibilityTestResultComponent.decorators = [
1337
- { type: Component, args: [{
1338
- selector: 'vdr-shipping-eligibility-test-result',
1339
- template: "<div class=\"test-result card\">\r\n <div class=\"card-header\">\r\n {{ 'settings.test-result' | translate }}\r\n </div>\r\n <div class=\"card-block\" *ngFor=\"let quote of testResult\">\r\n <div class=\"result-details\" [class.stale]=\"testDataUpdated\">\r\n <vdr-labeled-data [label]=\"'settings.shipping-method' | translate\">\r\n {{ quote.name }}\r\n </vdr-labeled-data>\r\n <div class=\"price-row\">\r\n <vdr-labeled-data [label]=\"'common.price' | translate\">\r\n {{ quote.price | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'common.price-with-tax' | translate\">\r\n {{ quote.priceWithTax | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n </div>\r\n <vdr-object-tree *ngIf=\"quote.metadata\" [value]=\"quote.metadata\"></vdr-object-tree>\r\n </div>\r\n </div>\r\n <div class=\"card-block\" *ngIf=\"testResult?.length === 0\">\r\n <clr-icon shape=\"ban\" class=\"is-solid error\"></clr-icon>\r\n {{ 'settings.no-eligible-shipping-methods' | translate }}\r\n </div>\r\n <div class=\"card-footer\">\r\n <button class=\"btn btn-secondary\" (click)=\"runTest.emit()\" [disabled]=\"!okToRun\">\r\n {{ 'settings.test-shipping-methods' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n",
1340
- changeDetection: ChangeDetectionStrategy.OnPush,
1341
- styles: [".result-details{transition:opacity .2s}.result-details.stale{opacity:.5}.price-row{display:flex}.price-row>*:not(:first-child){margin-left:24px}clr-icon.error{color:var(--color-error-500)}\n"]
1342
- },] }
1343
- ];
1344
- ShippingEligibilityTestResultComponent.propDecorators = {
1345
- testResult: [{ type: Input }],
1346
- okToRun: [{ type: Input }],
1347
- testDataUpdated: [{ type: Input }],
1348
- currencyCode: [{ type: Input }],
1349
- runTest: [{ type: Output }]
1350
- };
1351
-
1352
- class ShippingMethodDetailComponent extends BaseDetailComponent {
1353
- constructor(router, route, serverConfigService, changeDetector, dataService, formBuilder, notificationService) {
1354
- super(route, router, serverConfigService, dataService);
1355
- this.changeDetector = changeDetector;
1356
- this.dataService = dataService;
1357
- this.formBuilder = formBuilder;
1358
- this.notificationService = notificationService;
1359
- this.checkers = [];
1360
- this.calculators = [];
1361
- this.fulfillmentHandlers = [];
1362
- this.testDataUpdated = false;
1363
- this.updatePermission = [Permission.UpdateSettings, Permission.UpdateShippingMethod];
1364
- this.fetchTestResult$ = new Subject();
1365
- this.customFields = this.getCustomFieldConfig('ShippingMethod');
1366
- this.detailForm = this.formBuilder.group({
1367
- code: ['', Validators.required],
1368
- name: ['', Validators.required],
1369
- description: '',
1370
- fulfillmentHandler: ['', Validators.required],
1371
- checker: {},
1372
- calculator: {},
1373
- customFields: this.formBuilder.group(this.customFields.reduce((hash, field) => (Object.assign(Object.assign({}, hash), { [field.name]: '' })), {})),
1374
- });
1375
- }
1376
- ngOnInit() {
1377
- this.init();
1378
- combineLatest([
1379
- this.dataService.shippingMethod.getShippingMethodOperations().single$,
1380
- this.entity$.pipe(take(1)),
1381
- ]).subscribe(([data, entity]) => {
1382
- this.checkers = data.shippingEligibilityCheckers;
1383
- this.calculators = data.shippingCalculators;
1384
- this.fulfillmentHandlers = data.fulfillmentHandlers;
1385
- this.changeDetector.markForCheck();
1386
- this.selectedCheckerDefinition = data.shippingEligibilityCheckers.find(c => c.code === (entity.checker && entity.checker.code));
1387
- this.selectedCalculatorDefinition = data.shippingCalculators.find(c => c.code === (entity.calculator && entity.calculator.code));
1388
- });
1389
- this.activeChannel$ = this.dataService.settings
1390
- .getActiveChannel()
1391
- .mapStream(data => data.activeChannel);
1392
- this.testResult$ = this.fetchTestResult$.pipe(switchMap(([address, lines]) => {
1393
- if (!this.selectedChecker || !this.selectedCalculator) {
1394
- return of(undefined);
1395
- }
1396
- const formValue = this.detailForm.value;
1397
- const input = {
1398
- shippingAddress: Object.assign(Object.assign({}, address), { streetLine1: 'test' }),
1399
- lines: lines.map(l => ({ productVariantId: l.id, quantity: l.quantity })),
1400
- checker: toConfigurableOperationInput(this.selectedChecker, formValue.checker),
1401
- calculator: toConfigurableOperationInput(this.selectedCalculator, formValue.calculator),
1402
- };
1403
- return this.dataService.shippingMethod
1404
- .testShippingMethod(input)
1405
- .mapSingle(result => result.testShippingMethod);
1406
- }));
1407
- // tslint:disable:no-non-null-assertion
1408
- merge(this.detailForm.get(['checker']).valueChanges, this.detailForm.get(['calculator']).valueChanges)
1409
- .pipe(takeUntil(this.destroy$))
1410
- .subscribe(() => (this.testDataUpdated = true));
1411
- // tslint:enable:no-non-null-assertion
1412
- }
1413
- ngOnDestroy() {
1414
- this.destroy();
1415
- }
1416
- updateCode(currentCode, nameValue) {
1417
- if (!currentCode) {
1418
- const codeControl = this.detailForm.get(['code']);
1419
- if (codeControl && codeControl.pristine) {
1420
- codeControl.setValue(normalizeString(nameValue, '-'));
1421
- }
1422
- }
1423
- }
1424
- selectChecker(checker) {
1425
- this.selectedCheckerDefinition = checker;
1426
- this.selectedChecker = configurableDefinitionToInstance(checker);
1427
- const formControl = this.detailForm.get('checker');
1428
- if (formControl) {
1429
- formControl.clearValidators();
1430
- formControl.updateValueAndValidity({ onlySelf: true });
1431
- formControl.patchValue(this.selectedChecker);
1432
- }
1433
- this.detailForm.markAsDirty();
1434
- }
1435
- selectCalculator(calculator) {
1436
- this.selectedCalculatorDefinition = calculator;
1437
- this.selectedCalculator = configurableDefinitionToInstance(calculator);
1438
- const formControl = this.detailForm.get('calculator');
1439
- if (formControl) {
1440
- formControl.clearValidators();
1441
- formControl.updateValueAndValidity({ onlySelf: true });
1442
- formControl.patchValue(this.selectedCalculator);
1443
- }
1444
- this.detailForm.markAsDirty();
1445
- }
1446
- create() {
1447
- const selectedChecker = this.selectedChecker;
1448
- const selectedCalculator = this.selectedCalculator;
1449
- if (!selectedChecker || !selectedCalculator) {
1450
- return;
1451
- }
1452
- combineLatest([this.entity$, this.languageCode$])
1453
- .pipe(take(1), mergeMap(([shippingMethod, languageCode]) => {
1454
- const formValue = this.detailForm.value;
1455
- const input = Object.assign(Object.assign({}, this.getUpdatedShippingMethod(shippingMethod, this.detailForm, languageCode)), { checker: toConfigurableOperationInput(selectedChecker, formValue.checker), calculator: toConfigurableOperationInput(selectedCalculator, formValue.calculator) });
1456
- return this.dataService.shippingMethod.createShippingMethod(input);
1457
- }))
1458
- .subscribe(data => {
1459
- this.notificationService.success(marker('common.notify-create-success'), {
1460
- entity: 'ShippingMethod',
1461
- });
1462
- this.detailForm.markAsPristine();
1463
- this.changeDetector.markForCheck();
1464
- this.router.navigate(['../', data.createShippingMethod.id], { relativeTo: this.route });
1465
- }, err => {
1466
- this.notificationService.error(marker('common.notify-create-error'), {
1467
- entity: 'ShippingMethod',
1468
- });
1469
- });
1470
- }
1471
- save() {
1472
- const selectedChecker = this.selectedChecker;
1473
- const selectedCalculator = this.selectedCalculator;
1474
- if (!selectedChecker || !selectedCalculator) {
1475
- return;
1476
- }
1477
- combineLatest([this.entity$, this.languageCode$])
1478
- .pipe(take(1), mergeMap(([shippingMethod, languageCode]) => {
1479
- const formValue = this.detailForm.value;
1480
- const input = Object.assign(Object.assign({}, this.getUpdatedShippingMethod(shippingMethod, this.detailForm, languageCode)), { checker: toConfigurableOperationInput(selectedChecker, formValue.checker), calculator: toConfigurableOperationInput(selectedCalculator, formValue.calculator) });
1481
- return this.dataService.shippingMethod.updateShippingMethod(input);
1482
- }))
1483
- .subscribe(data => {
1484
- this.notificationService.success(marker('common.notify-update-success'), {
1485
- entity: 'ShippingMethod',
1486
- });
1487
- this.detailForm.markAsPristine();
1488
- this.changeDetector.markForCheck();
1489
- }, err => {
1490
- // tslint:disable-next-line:no-console
1491
- console.error(err);
1492
- this.notificationService.error(marker('common.notify-update-error'), {
1493
- entity: 'ShippingMethod',
1494
- });
1495
- });
1496
- }
1497
- setTestOrderLines(event) {
1498
- this.testOrderLines = event;
1499
- this.testDataUpdated = true;
1500
- }
1501
- setTestAddress(event) {
1502
- this.testAddress = event;
1503
- this.testDataUpdated = true;
1504
- }
1505
- allTestDataPresent() {
1506
- return !!(this.testAddress &&
1507
- this.testOrderLines &&
1508
- this.testOrderLines.length &&
1509
- this.selectedChecker &&
1510
- this.selectedCalculator);
1511
- }
1512
- runTest() {
1513
- this.fetchTestResult$.next([this.testAddress, this.testOrderLines]);
1514
- this.testDataUpdated = false;
1515
- }
1516
- /**
1517
- * Given a ShippingMethod and the value of the detailForm, this method creates an updated copy which
1518
- * can then be persisted to the API.
1519
- */
1520
- getUpdatedShippingMethod(shippingMethod, formGroup, languageCode) {
1521
- const formValue = formGroup.value;
1522
- const input = createUpdatedTranslatable({
1523
- translatable: shippingMethod,
1524
- updatedFields: formValue,
1525
- customFieldConfig: this.customFields,
1526
- languageCode,
1527
- defaultTranslation: {
1528
- languageCode,
1529
- name: shippingMethod.name || '',
1530
- description: shippingMethod.description || '',
1531
- },
1532
- });
1533
- return Object.assign(Object.assign({}, input), { fulfillmentHandler: formValue.fulfillmentHandler });
1534
- }
1535
- setFormValues(shippingMethod, languageCode) {
1536
- var _a, _b, _c, _d;
1537
- const currentTranslation = findTranslation(shippingMethod, languageCode);
1538
- this.detailForm.patchValue({
1539
- name: (_a = currentTranslation === null || currentTranslation === void 0 ? void 0 : currentTranslation.name) !== null && _a !== void 0 ? _a : '',
1540
- description: (_b = currentTranslation === null || currentTranslation === void 0 ? void 0 : currentTranslation.description) !== null && _b !== void 0 ? _b : '',
1541
- code: shippingMethod.code,
1542
- fulfillmentHandler: shippingMethod.fulfillmentHandlerCode,
1543
- checker: shippingMethod.checker || {},
1544
- calculator: shippingMethod.calculator || {},
1545
- });
1546
- if (!this.selectedChecker) {
1547
- this.selectedChecker = shippingMethod.checker && {
1548
- code: shippingMethod.checker.code,
1549
- args: shippingMethod.checker.args.map(a => (Object.assign(Object.assign({}, a), { value: getConfigArgValue(a.value) }))),
1550
- };
1551
- }
1552
- if (!this.selectedCalculator) {
1553
- this.selectedCalculator = shippingMethod.calculator && {
1554
- code: (_c = shippingMethod.calculator) === null || _c === void 0 ? void 0 : _c.code,
1555
- args: (_d = shippingMethod.calculator) === null || _d === void 0 ? void 0 : _d.args.map(a => (Object.assign(Object.assign({}, a), { value: getConfigArgValue(a.value) }))),
1556
- };
1557
- }
1558
- if (this.customFields.length) {
1559
- this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customFields']), shippingMethod, currentTranslation);
1560
- }
1561
- }
1562
- }
1563
- ShippingMethodDetailComponent.decorators = [
1564
- { type: Component, args: [{
1565
- selector: 'vdr-shipping-method-detail',
1566
- template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n <vdr-language-selector\r\n [disabled]=\"isNew$ | async\"\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"languageCode$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"shipping-method-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"detailForm.pristine || detailForm.invalid || !selectedChecker || !selectedCalculator\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n [disabled]=\"\r\n detailForm.pristine || detailForm.invalid || !selectedChecker || !selectedCalculator\r\n \"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\" *ngIf=\"entity$ | async as shippingMethod\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (input)=\"updateCode(shippingMethod.code, $event.target.value)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'common.code' | translate\"\r\n for=\"code\"\r\n [readOnlyToggle]=\"updatePermission | hasPermission\"\r\n >\r\n <input\r\n id=\"code\"\r\n type=\"text\"\r\n formControlName=\"code\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-rich-text-editor\r\n formControlName=\"description\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n [label]=\"'common.description' | translate\"\r\n ></vdr-rich-text-editor>\r\n <vdr-form-field [label]=\"'settings.fulfillment-handler' | translate\" for=\"fulfillmentHandler\" class=\"mb2\">\r\n <select\r\n name=\"fulfillmentHandler\"\r\n formControlName=\"fulfillmentHandler\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option *ngFor=\"let handler of fulfillmentHandlers\" [value]=\"handler.code\">\r\n {{ handler.code }}: {{ handler.description }}\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"ShippingMethod\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n\r\n <vdr-custom-detail-component-host\r\n locationId=\"shipping-method-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n\r\n <div class=\"clr-row mt4\">\r\n <div class=\"clr-col\">\r\n <label class=\"clr-control-label\">{{ 'settings.shipping-eligibility-checker' | translate }}</label>\r\n <vdr-configurable-input\r\n *ngIf=\"selectedChecker && selectedCheckerDefinition\"\r\n [operation]=\"selectedChecker\"\r\n [operationDefinition]=\"selectedCheckerDefinition\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (remove)=\"selectedChecker = null\"\r\n formControlName=\"checker\"\r\n ></vdr-configurable-input>\r\n <div *ngIf=\"!selectedChecker || !selectedCheckerDefinition\">\r\n <vdr-dropdown>\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'common.select' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let checker of checkers\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"selectChecker(checker)\"\r\n >\r\n {{ checker.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n <div class=\"clr-col\">\r\n <label class=\"clr-control-label\">{{ 'settings.shipping-calculator' | translate }}</label>\r\n <vdr-configurable-input\r\n *ngIf=\"selectedCalculator && selectedCalculatorDefinition\"\r\n [operation]=\"selectedCalculator\"\r\n [operationDefinition]=\"selectedCalculatorDefinition\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n (remove)=\"selectedCalculator = null\"\r\n formControlName=\"calculator\"\r\n ></vdr-configurable-input>\r\n <div *ngIf=\"!selectedCalculator || !selectedCalculatorDefinition\">\r\n <vdr-dropdown>\r\n <button class=\"btn btn-outline\" vdrDropdownTrigger>\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'common.select' | translate }}\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button\r\n *ngFor=\"let calculator of calculators\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"selectCalculator(calculator)\"\r\n >\r\n {{ calculator.description }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n<div class=\"testing-tool\">\r\n <clr-accordion>\r\n <clr-accordion-panel>\r\n <clr-accordion-title>{{ 'settings.test-shipping-method' | translate }}</clr-accordion-title>\r\n <clr-accordion-content *clrIfExpanded>\r\n <div class=\"clr-row\">\r\n <div class=\"clr-col\">\r\n <vdr-test-order-builder\r\n (orderLinesChange)=\"setTestOrderLines($event)\"\r\n ></vdr-test-order-builder>\r\n </div>\r\n <div class=\"clr-col\">\r\n <vdr-test-address-form\r\n (addressChange)=\"setTestAddress($event)\"\r\n ></vdr-test-address-form>\r\n <vdr-shipping-method-test-result\r\n [currencyCode]=\"(activeChannel$ | async)?.currencyCode\"\r\n [okToRun]=\"allTestDataPresent() && testDataUpdated && detailForm.valid\"\r\n [testDataUpdated]=\"testDataUpdated\"\r\n [testResult]=\"testResult$ | async\"\r\n (runTest)=\"runTest()\"\r\n ></vdr-shipping-method-test-result>\r\n </div>\r\n </div>\r\n </clr-accordion-content>\r\n </clr-accordion-panel>\r\n </clr-accordion>\r\n</div>\r\n",
1567
- changeDetection: ChangeDetectionStrategy.OnPush,
1568
- styles: [".testing-tool{margin-top:48px;margin-bottom:128px}.testing-tool h4{margin-bottom:12px}\n"]
1569
- },] }
1570
- ];
1571
- ShippingMethodDetailComponent.ctorParameters = () => [
1572
- { type: Router },
1573
- { type: ActivatedRoute },
1574
- { type: ServerConfigService },
1575
- { type: ChangeDetectorRef },
1576
- { type: DataService },
1577
- { type: FormBuilder },
1578
- { type: NotificationService }
1579
- ];
1580
-
1581
- class ShippingMethodListComponent extends BaseListComponent {
1582
- constructor(modalService, notificationService, dataService, serverConfigService, router, route) {
1583
- super(router, route);
1584
- this.modalService = modalService;
1585
- this.notificationService = notificationService;
1586
- this.dataService = dataService;
1587
- this.serverConfigService = serverConfigService;
1588
- this.testDataUpdated = false;
1589
- this.fetchTestResult$ = new Subject();
1590
- super.setQueryFn((...args) => this.dataService.shippingMethod.getShippingMethods(...args).refetchOnChannelChange(), data => data.shippingMethods);
1591
- }
1592
- ngOnInit() {
1593
- super.ngOnInit();
1594
- this.testResult$ = this.fetchTestResult$.pipe(switchMap(([address, lines]) => {
1595
- const input = {
1596
- shippingAddress: Object.assign(Object.assign({}, address), { streetLine1: 'test' }),
1597
- lines: lines.map(l => ({ productVariantId: l.id, quantity: l.quantity })),
1598
- };
1599
- return this.dataService.shippingMethod
1600
- .testEligibleShippingMethods(input)
1601
- .mapSingle(result => result.testEligibleShippingMethods);
1602
- }));
1603
- this.activeChannel$ = this.dataService.settings
1604
- .getActiveChannel()
1605
- .mapStream(data => data.activeChannel);
1606
- this.availableLanguages$ = this.serverConfigService.getAvailableLanguages();
1607
- this.contentLanguage$ = this.dataService.client
1608
- .uiState()
1609
- .mapStream(({ uiState }) => uiState.contentLanguage)
1610
- .pipe(tap(() => this.refresh()));
1611
- }
1612
- deleteShippingMethod(id) {
1613
- this.modalService
1614
- .dialog({
1615
- title: marker('catalog.confirm-delete-shipping-method'),
1616
- buttons: [
1617
- { type: 'secondary', label: marker('common.cancel') },
1618
- { type: 'danger', label: marker('common.delete'), returnValue: true },
1619
- ],
1620
- })
1621
- .pipe(switchMap(response => response ? this.dataService.shippingMethod.deleteShippingMethod(id) : EMPTY))
1622
- .subscribe(() => {
1623
- this.notificationService.success(marker('common.notify-delete-success'), {
1624
- entity: 'ShippingMethod',
1625
- });
1626
- this.refresh();
1627
- }, err => {
1628
- this.notificationService.error(marker('common.notify-delete-error'), {
1629
- entity: 'ShippingMethod',
1630
- });
1631
- });
1632
- }
1633
- setTestOrderLines(event) {
1634
- this.testOrderLines = event;
1635
- this.testDataUpdated = true;
1636
- }
1637
- setTestAddress(event) {
1638
- this.testAddress = event;
1639
- this.testDataUpdated = true;
1640
- }
1641
- allTestDataPresent() {
1642
- return !!(this.testAddress && this.testOrderLines && this.testOrderLines.length);
1643
- }
1644
- runTest() {
1645
- this.fetchTestResult$.next([this.testAddress, this.testOrderLines]);
1646
- this.testDataUpdated = false;
1647
- }
1648
- setLanguage(code) {
1649
- this.dataService.client.setContentLanguage(code).subscribe();
1650
- }
1651
- }
1652
- ShippingMethodListComponent.decorators = [
1653
- { type: Component, args: [{
1654
- selector: 'vdr-shipping-method-list',
1655
- template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"shipping-method-list\"></vdr-action-bar-items>\r\n <a\r\n class=\"btn btn-primary\"\r\n [routerLink]=\"['./create']\"\r\n *vdrIfPermissions=\"['CreateSettings', 'CreateShippingMethod']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-shipping-method' | translate }}\r\n </a>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-dt-column>{{ 'common.code' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'common.name' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-shippingMethod=\"item\">\r\n <td class=\"left align-middle\">{{ shippingMethod.code }}</td>\r\n <td class=\"left align-middle\">{{ shippingMethod.name }}</td>\r\n <td class=\"right align-middle\">\r\n <vdr-table-row-action\r\n iconShape=\"edit\"\r\n [label]=\"'common.edit' | translate\"\r\n [linkTo]=\"['./', shippingMethod.id]\"\r\n ></vdr-table-row-action>\r\n </td>\r\n <td class=\"right align-middle\">\r\n <vdr-dropdown>\r\n <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n {{ 'common.actions' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"deleteShippingMethod(shippingMethod.id)\"\r\n [disabled]=\"!(['DeleteSettings', 'DeleteShippingMethod'] | hasPermission)\"\r\n vdrDropdownItem\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </td>\r\n </ng-template>\r\n</vdr-data-table>\r\n\r\n<div class=\"testing-tool\">\r\n <clr-accordion>\r\n <clr-accordion-panel>\r\n <clr-accordion-title>{{ 'settings.test-shipping-methods' | translate }}</clr-accordion-title>\r\n <clr-accordion-content *clrIfExpanded>\r\n <div class=\"clr-row\">\r\n <div class=\"clr-col\">\r\n <vdr-test-order-builder\r\n (orderLinesChange)=\"setTestOrderLines($event)\"\r\n ></vdr-test-order-builder>\r\n </div>\r\n <div class=\"clr-col\">\r\n <vdr-test-address-form\r\n (addressChange)=\"setTestAddress($event)\"\r\n ></vdr-test-address-form>\r\n <vdr-shipping-eligibility-test-result\r\n [currencyCode]=\"(activeChannel$ | async)?.currencyCode\"\r\n [okToRun]=\"allTestDataPresent()\"\r\n [testDataUpdated]=\"testDataUpdated\"\r\n [testResult]=\"testResult$ | async\"\r\n (runTest)=\"runTest()\"\r\n ></vdr-shipping-eligibility-test-result>\r\n </div>\r\n </div>\r\n </clr-accordion-content>\r\n </clr-accordion-panel>\r\n </clr-accordion>\r\n</div>\r\n",
1656
- changeDetection: ChangeDetectionStrategy.OnPush,
1657
- styles: [".testing-tool{margin-top:48px}\n"]
1658
- },] }
1659
- ];
1660
- ShippingMethodListComponent.ctorParameters = () => [
1661
- { type: ModalService },
1662
- { type: NotificationService },
1663
- { type: DataService },
1664
- { type: ServerConfigService },
1665
- { type: Router },
1666
- { type: ActivatedRoute }
1667
- ];
1668
-
1669
- class ShippingMethodTestResultComponent {
1670
- constructor() {
1671
- this.okToRun = false;
1672
- this.testDataUpdated = false;
1673
- this.runTest = new EventEmitter();
1674
- }
1675
- }
1676
- ShippingMethodTestResultComponent.decorators = [
1677
- { type: Component, args: [{
1678
- selector: 'vdr-shipping-method-test-result',
1679
- template: "<div\r\n class=\"test-result card\"\r\n [ngClass]=\"{\r\n success: testResult?.eligible === true,\r\n error: testResult?.eligible === false,\r\n unknown: !testResult\r\n }\"\r\n>\r\n <div class=\"card-header\">\r\n {{ 'settings.test-result' | translate }}\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"result-details\" [class.stale]=\"testDataUpdated\">\r\n <vdr-labeled-data [label]=\"'settings.eligible' | translate\">\r\n <div class=\"eligible-icon\">\r\n <clr-icon\r\n shape=\"success-standard\"\r\n class=\"is-solid success\"\r\n *ngIf=\"testResult?.eligible\"\r\n ></clr-icon>\r\n <clr-icon\r\n shape=\"ban\"\r\n class=\"is-solid error\"\r\n *ngIf=\"testResult?.eligible === false\"\r\n ></clr-icon>\r\n <clr-icon shape=\"unknown-status\" *ngIf=\"!testResult\"></clr-icon>\r\n </div>\r\n {{ testResult?.eligible }}\r\n </vdr-labeled-data>\r\n <div class=\"price-row\">\r\n <vdr-labeled-data\r\n [label]=\"'common.price' | translate\"\r\n *ngIf=\"testResult?.quote?.price != null\"\r\n >\r\n {{ testResult.quote?.price | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data\r\n [label]=\"'common.price-with-tax' | translate\"\r\n *ngIf=\"testResult?.quote?.priceWithTax != null\"\r\n >\r\n {{ testResult.quote?.priceWithTax | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n </div>\r\n <vdr-object-tree\r\n *ngIf=\"testResult?.quote?.metadata\"\r\n [value]=\"testResult?.quote?.metadata\"\r\n ></vdr-object-tree>\r\n </div>\r\n </div>\r\n <div class=\"card-footer\">\r\n <button class=\"btn btn-secondary\" (click)=\"runTest.emit()\" [disabled]=\"!okToRun\">\r\n {{ 'settings.test-shipping-method' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n",
1680
- changeDetection: ChangeDetectionStrategy.OnPush,
1681
- styles: [".test-result.success .card-block{background-color:var(--color-success-100)}.test-result.error .card-block{background-color:var(--color-error-100)}.test-result.unknown .card-block{background-color:var(--color-component-bg-100)}.result-details{transition:opacity .2s}.result-details.stale{opacity:.5}.eligible-icon{display:inline-block}.eligible-icon .success{color:var(--color-success-500)}.eligible-icon .error{color:var(--color-error-500)}.price-row{display:flex}.price-row>*:not(:first-child){margin-left:24px}\n"]
1682
- },] }
1683
- ];
1684
- ShippingMethodTestResultComponent.propDecorators = {
1685
- testResult: [{ type: Input }],
1686
- okToRun: [{ type: Input }],
1687
- testDataUpdated: [{ type: Input }],
1688
- currencyCode: [{ type: Input }],
1689
- runTest: [{ type: Output }]
1690
- };
1691
-
1692
- class TaxCategoryDetailComponent extends BaseDetailComponent {
1693
- constructor(router, route, serverConfigService, changeDetector, dataService, formBuilder, notificationService) {
1694
- super(route, router, serverConfigService, dataService);
1695
- this.changeDetector = changeDetector;
1696
- this.dataService = dataService;
1697
- this.formBuilder = formBuilder;
1698
- this.notificationService = notificationService;
1699
- this.updatePermission = [Permission.UpdateSettings, Permission.UpdateTaxCategory];
1700
- this.customFields = this.getCustomFieldConfig('TaxCategory');
1701
- this.detailForm = this.formBuilder.group({
1702
- name: ['', Validators.required],
1703
- isDefault: false,
1704
- customFields: this.formBuilder.group(this.customFields.reduce((hash, field) => (Object.assign(Object.assign({}, hash), { [field.name]: '' })), {})),
1705
- });
1706
- }
1707
- ngOnInit() {
1708
- this.init();
1709
- this.taxCategory$ = this.entity$;
1710
- }
1711
- ngOnDestroy() {
1712
- this.destroy();
1713
- }
1714
- saveButtonEnabled() {
1715
- return this.detailForm.dirty && this.detailForm.valid;
1716
- }
1717
- create() {
1718
- if (!this.detailForm.dirty) {
1719
- return;
1720
- }
1721
- const formValue = this.detailForm.value;
1722
- const input = {
1723
- name: formValue.name,
1724
- isDefault: formValue.isDefault,
1725
- customFields: formValue.customFields,
1726
- };
1727
- this.dataService.settings.createTaxCategory(input).subscribe(data => {
1728
- this.notificationService.success(marker('common.notify-create-success'), {
1729
- entity: 'TaxCategory',
1730
- });
1731
- this.detailForm.markAsPristine();
1732
- this.changeDetector.markForCheck();
1733
- this.router.navigate(['../', data.createTaxCategory.id], { relativeTo: this.route });
1734
- }, err => {
1735
- this.notificationService.error(marker('common.notify-create-error'), {
1736
- entity: 'TaxCategory',
1737
- });
1738
- });
1739
- }
1740
- save() {
1741
- if (!this.detailForm.dirty) {
1742
- return;
1743
- }
1744
- const formValue = this.detailForm.value;
1745
- this.taxCategory$
1746
- .pipe(take(1), mergeMap(taxCategory => {
1747
- const input = {
1748
- id: taxCategory.id,
1749
- name: formValue.name,
1750
- isDefault: formValue.isDefault,
1751
- customFields: formValue.customFields,
1752
- };
1753
- return this.dataService.settings.updateTaxCategory(input);
1754
- }))
1755
- .subscribe(data => {
1756
- this.notificationService.success(marker('common.notify-update-success'), {
1757
- entity: 'TaxCategory',
1758
- });
1759
- this.detailForm.markAsPristine();
1760
- this.changeDetector.markForCheck();
1761
- }, err => {
1762
- this.notificationService.error(marker('common.notify-update-error'), {
1763
- entity: 'TaxCategory',
1764
- });
1765
- });
1766
- }
1767
- /**
1768
- * Update the form values when the entity changes.
1769
- */
1770
- setFormValues(entity, languageCode) {
1771
- this.detailForm.patchValue({
1772
- name: entity.name,
1773
- isDefault: entity.isDefault,
1774
- });
1775
- if (this.customFields.length) {
1776
- this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);
1777
- }
1778
- }
1779
- }
1780
- TaxCategoryDetailComponent.decorators = [
1781
- { type: Component, args: [{
1782
- selector: 'vdr-tax-detail',
1783
- template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"tax-category-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.default-tax-category' | translate\" for=\"isDefault\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"isDefault\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"isDefault\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"TaxCategory\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n <vdr-custom-detail-component-host\r\n locationId=\"tax-category-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n</form>\r\n",
1784
- changeDetection: ChangeDetectionStrategy.OnPush,
1785
- styles: [""]
1786
- },] }
1787
- ];
1788
- TaxCategoryDetailComponent.ctorParameters = () => [
1789
- { type: Router },
1790
- { type: ActivatedRoute },
1791
- { type: ServerConfigService },
1792
- { type: ChangeDetectorRef },
1793
- { type: DataService },
1794
- { type: FormBuilder },
1795
- { type: NotificationService }
1796
- ];
1797
-
1798
- class TaxCategoryListComponent {
1799
- constructor(dataService, notificationService, modalService) {
1800
- this.dataService = dataService;
1801
- this.notificationService = notificationService;
1802
- this.modalService = modalService;
1803
- this.queryResult = this.dataService.settings.getTaxCategories();
1804
- this.taxCategories$ = this.queryResult.mapStream(data => data.taxCategories);
1805
- }
1806
- deleteTaxCategory(taxCategory) {
1807
- return this.modalService
1808
- .dialog({
1809
- title: marker('settings.confirm-delete-tax-category'),
1810
- body: taxCategory.name,
1811
- buttons: [
1812
- { type: 'secondary', label: marker('common.cancel') },
1813
- { type: 'danger', label: marker('common.delete'), returnValue: true },
1814
- ],
1815
- })
1816
- .pipe(switchMap(res => (res ? this.dataService.settings.deleteTaxCategory(taxCategory.id) : EMPTY)), map(res => res.deleteTaxCategory))
1817
- .subscribe(res => {
1818
- if (res.result === DeletionResult.DELETED) {
1819
- this.notificationService.success(marker('common.notify-delete-success'), {
1820
- entity: 'TaxRate',
1821
- });
1822
- this.queryResult.ref.refetch();
1823
- }
1824
- else {
1825
- this.notificationService.error(res.message || marker('common.notify-delete-error'), {
1826
- entity: 'TaxRate',
1827
- });
1828
- }
1829
- }, err => {
1830
- this.notificationService.error(marker('common.notify-delete-error'), {
1831
- entity: 'TaxRate',
1832
- });
1833
- });
1834
- }
1835
- }
1836
- TaxCategoryListComponent.decorators = [
1837
- { type: Component, args: [{
1838
- selector: 'vdr-tax-list',
1839
- template: "<vdr-action-bar>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"tax-category-list\"></vdr-action-bar-items>\r\n <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"['CreateSettings', 'CreateTaxCategory']\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-tax-category' | translate }}\r\n </a>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table [items]=\"taxCategories$ | async\">\r\n <vdr-dt-column>{{ 'common.name' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-taxCategory=\"item\">\r\n <td class=\"left align-middle\">{{ taxCategory.name }}</td>\r\n <td class=\"left align-middle\">\r\n <vdr-chip *ngIf=\"taxCategory.isDefault\">{{ 'common.default-tax-category' | translate }}</vdr-chip>\r\n </td>\r\n <td class=\"right align-middle\">\r\n <vdr-table-row-action\r\n iconShape=\"edit\"\r\n [label]=\"'common.edit' | translate\"\r\n [linkTo]=\"['./', taxCategory.id]\"\r\n ></vdr-table-row-action>\r\n </td>\r\n <td class=\"right align-middle\">\r\n <vdr-dropdown>\r\n <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n {{ 'common.actions' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"deleteTaxCategory(taxCategory)\"\r\n [disabled]=\"!(['DeleteSettings', 'DeleteTaxCategory'] | hasPermission)\"\r\n vdrDropdownItem\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </td>\r\n </ng-template>\r\n</vdr-data-table>\r\n",
1840
- changeDetection: ChangeDetectionStrategy.OnPush,
1841
- styles: [""]
1842
- },] }
1843
- ];
1844
- TaxCategoryListComponent.ctorParameters = () => [
1845
- { type: DataService },
1846
- { type: NotificationService },
1847
- { type: ModalService }
1848
- ];
1849
-
1850
- class TaxRateDetailComponent extends BaseDetailComponent {
1851
- constructor(router, route, serverConfigService, changeDetector, dataService, formBuilder, notificationService) {
1852
- super(route, router, serverConfigService, dataService);
1853
- this.changeDetector = changeDetector;
1854
- this.dataService = dataService;
1855
- this.formBuilder = formBuilder;
1856
- this.notificationService = notificationService;
1857
- this.updatePermission = [Permission.UpdateSettings, Permission.UpdateTaxRate];
1858
- this.customFields = this.getCustomFieldConfig('TaxRate');
1859
- this.detailForm = this.formBuilder.group({
1860
- name: ['', Validators.required],
1861
- enabled: [true],
1862
- value: [0, Validators.required],
1863
- taxCategoryId: [''],
1864
- zoneId: [''],
1865
- customerGroupId: [''],
1866
- customFields: this.formBuilder.group(this.customFields.reduce((hash, field) => (Object.assign(Object.assign({}, hash), { [field.name]: '' })), {})),
1867
- });
1868
- }
1869
- ngOnInit() {
1870
- this.init();
1871
- this.taxCategories$ = this.dataService.settings
1872
- .getTaxCategories()
1873
- .mapSingle(data => data.taxCategories);
1874
- this.zones$ = this.dataService.settings.getZones().mapSingle(data => data.zones);
1875
- }
1876
- ngOnDestroy() {
1877
- this.destroy();
1878
- }
1879
- saveButtonEnabled() {
1880
- return this.detailForm.dirty && this.detailForm.valid;
1881
- }
1882
- create() {
1883
- if (!this.detailForm.dirty) {
1884
- return;
1885
- }
1886
- const formValue = this.detailForm.value;
1887
- const input = {
1888
- name: formValue.name,
1889
- enabled: formValue.enabled,
1890
- value: formValue.value,
1891
- categoryId: formValue.taxCategoryId,
1892
- zoneId: formValue.zoneId,
1893
- customerGroupId: formValue.customerGroupId,
1894
- customFields: formValue.customFields,
1895
- };
1896
- this.dataService.settings.createTaxRate(input).subscribe(data => {
1897
- this.notificationService.success(marker('common.notify-create-success'), {
1898
- entity: 'TaxRate',
1899
- });
1900
- this.detailForm.markAsPristine();
1901
- this.changeDetector.markForCheck();
1902
- this.router.navigate(['../', data.createTaxRate.id], { relativeTo: this.route });
1903
- }, err => {
1904
- this.notificationService.error(marker('common.notify-create-error'), {
1905
- entity: 'TaxRate',
1906
- });
1907
- });
1908
- }
1909
- save() {
1910
- if (!this.detailForm.dirty) {
1911
- return;
1912
- }
1913
- const formValue = this.detailForm.value;
1914
- this.entity$
1915
- .pipe(take(1), mergeMap(taxRate => {
1916
- const input = {
1917
- id: taxRate.id,
1918
- name: formValue.name,
1919
- enabled: formValue.enabled,
1920
- value: formValue.value,
1921
- categoryId: formValue.taxCategoryId,
1922
- zoneId: formValue.zoneId,
1923
- customerGroupId: formValue.customerGroupId,
1924
- customFields: formValue.customFields,
1925
- };
1926
- return this.dataService.settings.updateTaxRate(input);
1927
- }))
1928
- .subscribe(data => {
1929
- this.notificationService.success(marker('common.notify-update-success'), {
1930
- entity: 'TaxRate',
1931
- });
1932
- this.detailForm.markAsPristine();
1933
- this.changeDetector.markForCheck();
1934
- }, err => {
1935
- this.notificationService.error(marker('common.notify-update-error'), {
1936
- entity: 'TaxRate',
1937
- });
1938
- });
1939
- }
1940
- /**
1941
- * Update the form values when the entity changes.
1942
- */
1943
- setFormValues(entity, languageCode) {
1944
- this.detailForm.patchValue({
1945
- name: entity.name,
1946
- enabled: entity.enabled,
1947
- value: entity.value,
1948
- taxCategoryId: entity.category ? entity.category.id : '',
1949
- zoneId: entity.zone ? entity.zone.id : '',
1950
- customerGroupId: entity.customerGroup ? entity.customerGroup.id : '',
1951
- });
1952
- if (this.customFields.length) {
1953
- this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);
1954
- }
1955
- }
1956
- }
1957
- TaxRateDetailComponent.decorators = [
1958
- { type: Component, args: [{
1959
- selector: 'vdr-tax-rate-detail',
1960
- template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"tax-rate-detail\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *ngIf=\"isNew$ | async; else updateButton\"\r\n (click)=\"create()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"!saveButtonEnabled()\"\r\n *vdrIfPermissions=\"updatePermission\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n </ng-template>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<form class=\"form\" [formGroup]=\"detailForm\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.enabled' | translate\" for=\"enabled\">\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n id=\"enabled\"\r\n formControlName=\"enabled\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </clr-toggle-wrapper>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.rate' | translate\" for=\"value\">\r\n <vdr-affixed-input suffix=\"%\">\r\n <input\r\n id=\"value\"\r\n type=\"number\"\r\n step=\"0.1\"\r\n formControlName=\"value\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n />\r\n </vdr-affixed-input>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.tax-category' | translate\" for=\"taxCategoryId\">\r\n <select\r\n clrSelect\r\n name=\"taxCategoryId\"\r\n formControlName=\"taxCategoryId\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option *ngFor=\"let taxCategory of taxCategories$ | async\" [value]=\"taxCategory.id\">\r\n {{ taxCategory.name }}\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'settings.zone' | translate\" for=\"zoneId\">\r\n <select\r\n clrSelect\r\n name=\"zoneId\"\r\n formControlName=\"zoneId\"\r\n [vdrDisabled]=\"!(updatePermission | hasPermission)\"\r\n >\r\n <option *ngFor=\"let zone of zones$ | async\" [value]=\"zone.id\">{{ zone.name }}</option>\r\n </select>\r\n </vdr-form-field>\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"TaxRate\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n <vdr-custom-detail-component-host\r\n locationId=\"tax-rate-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n</form>\r\n",
1961
- changeDetection: ChangeDetectionStrategy.OnPush,
1962
- styles: [""]
1963
- },] }
1964
- ];
1965
- TaxRateDetailComponent.ctorParameters = () => [
1966
- { type: Router },
1967
- { type: ActivatedRoute },
1968
- { type: ServerConfigService },
1969
- { type: ChangeDetectorRef },
1970
- { type: DataService },
1971
- { type: FormBuilder },
1972
- { type: NotificationService }
1973
- ];
1974
-
1975
- class TaxRateListComponent extends BaseListComponent {
1976
- constructor(modalService, notificationService, dataService, router, route) {
1977
- super(router, route);
1978
- this.modalService = modalService;
1979
- this.notificationService = notificationService;
1980
- this.dataService = dataService;
1981
- super.setQueryFn((...args) => this.dataService.settings.getTaxRates(...args), data => data.taxRates);
1982
- }
1983
- deleteTaxRate(taxRate) {
1984
- return this.modalService
1985
- .dialog({
1986
- title: marker('settings.confirm-delete-tax-rate'),
1987
- body: taxRate.name,
1988
- buttons: [
1989
- { type: 'secondary', label: marker('common.cancel') },
1990
- { type: 'danger', label: marker('common.delete'), returnValue: true },
1991
- ],
1992
- })
1993
- .pipe(switchMap(res => (res ? this.dataService.settings.deleteTaxRate(taxRate.id) : EMPTY)), map(res => res.deleteTaxRate))
1994
- .subscribe(res => {
1995
- if (res.result === DeletionResult.DELETED) {
1996
- this.notificationService.success(marker('common.notify-delete-success'), {
1997
- entity: 'TaxRate',
1998
- });
1999
- this.refresh();
2000
- }
2001
- else {
2002
- this.notificationService.error(res.message || marker('common.notify-delete-error'), {
2003
- entity: 'TaxRate',
2004
- });
2005
- }
2006
- }, err => {
2007
- this.notificationService.error(marker('common.notify-delete-error'), {
2008
- entity: 'TaxRate',
2009
- });
2010
- });
2011
- }
2012
- }
2013
- TaxRateListComponent.decorators = [
2014
- { type: Component, args: [{
2015
- selector: 'vdr-tax-rate-list',
2016
- template: "<vdr-action-bar>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"tax-rate-list\"></vdr-action-bar-items>\r\n <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"['CreateSettings', 'CreateTaxRate']\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-tax-rate' | translate }}\r\n </a>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <vdr-dt-column>{{ 'common.name' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'settings.tax-category' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'settings.zone' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'settings.tax-rate' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-taxRate=\"item\">\r\n <td class=\"left align-middle\">{{ taxRate.name }}</td>\r\n <td class=\"left align-middle\">{{ taxRate.category.name }}</td>\r\n <td class=\"left align-middle\">{{ taxRate.zone.name }}</td>\r\n <td class=\"left align-middle\">{{ taxRate.value }}%</td>\r\n <td class=\"right align-middle\">\r\n <vdr-table-row-action\r\n iconShape=\"edit\"\r\n [label]=\"'common.edit' | translate\"\r\n [linkTo]=\"['./', taxRate.id]\"\r\n ></vdr-table-row-action>\r\n </td>\r\n <td class=\"right align-middle\">\r\n <vdr-dropdown>\r\n <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n {{ 'common.actions' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"deleteTaxRate(taxRate)\"\r\n [disabled]=\"!(['DeleteSettings', 'DeleteTaxRate'] | hasPermission)\"\r\n vdrDropdownItem\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </td>\r\n </ng-template>\r\n</vdr-data-table>\r\n",
2017
- changeDetection: ChangeDetectionStrategy.OnPush,
2018
- styles: [""]
2019
- },] }
2020
- ];
2021
- TaxRateListComponent.ctorParameters = () => [
2022
- { type: ModalService },
2023
- { type: NotificationService },
2024
- { type: DataService },
2025
- { type: Router },
2026
- { type: ActivatedRoute }
2027
- ];
2028
-
2029
- class TestAddressFormComponent {
2030
- constructor(formBuilder, dataService, localStorageService) {
2031
- this.formBuilder = formBuilder;
2032
- this.dataService = dataService;
2033
- this.localStorageService = localStorageService;
2034
- this.addressChange = new EventEmitter();
2035
- }
2036
- ngOnInit() {
2037
- this.availableCountries$ = this.dataService.settings
2038
- .getAvailableCountries()
2039
- .mapSingle(result => result.countries.items);
2040
- const storedValue = this.localStorageService.getForCurrentLocation('shippingTestAddress');
2041
- const initialValue = storedValue
2042
- ? storedValue
2043
- : {
2044
- city: '',
2045
- countryCode: '',
2046
- postalCode: '',
2047
- province: '',
2048
- };
2049
- this.addressChange.emit(initialValue);
2050
- this.form = this.formBuilder.group(initialValue);
2051
- this.subscription = this.form.valueChanges.subscribe(value => {
2052
- this.localStorageService.setForCurrentLocation('shippingTestAddress', value);
2053
- this.addressChange.emit(value);
2054
- });
2055
- }
2056
- ngOnDestroy() {
2057
- if (this.subscription) {
2058
- this.subscription.unsubscribe();
2059
- }
2060
- }
2061
- }
2062
- TestAddressFormComponent.decorators = [
2063
- { type: Component, args: [{
2064
- selector: 'vdr-test-address-form',
2065
- template: "<div class=\"card\">\r\n <div class=\"card-header\">\r\n {{ 'settings.test-address' | translate }}\r\n </div>\r\n <div class=\"card-block\">\r\n <form [formGroup]=\"form\">\r\n <clr-input-container>\r\n <label>{{ 'customer.city' | translate }}</label>\r\n <input formControlName=\"city\" type=\"text\" clrInput />\r\n </clr-input-container>\r\n <clr-input-container>\r\n <label>{{ 'customer.province' | translate }}</label>\r\n <input formControlName=\"province\" type=\"text\" clrInput />\r\n </clr-input-container>\r\n <clr-input-container>\r\n <label>{{ 'customer.postal-code' | translate }}</label>\r\n <input formControlName=\"postalCode\" type=\"text\" clrInput />\r\n </clr-input-container>\r\n <clr-input-container>\r\n <label>{{ 'customer.country' | translate }}</label>\r\n <select name=\"countryCode\" formControlName=\"countryCode\" clrInput clrSelect>\r\n <option *ngFor=\"let country of availableCountries$ | async\" [value]=\"country.code\">\r\n {{ country.name }}\r\n </option>\r\n </select>\r\n </clr-input-container>\r\n </form>\r\n </div>\r\n</div>\r\n",
2066
- changeDetection: ChangeDetectionStrategy.OnPush,
2067
- styles: ["clr-input-container{margin-bottom:12px}\n"]
2068
- },] }
2069
- ];
2070
- TestAddressFormComponent.ctorParameters = () => [
2071
- { type: FormBuilder },
2072
- { type: DataService },
2073
- { type: LocalStorageService }
2074
- ];
2075
- TestAddressFormComponent.propDecorators = {
2076
- addressChange: [{ type: Output }]
2077
- };
2078
-
2079
- class TestOrderBuilderComponent {
2080
- constructor(dataService, localStorageService) {
2081
- this.dataService = dataService;
2082
- this.localStorageService = localStorageService;
2083
- this.orderLinesChange = new EventEmitter();
2084
- this.lines = [];
2085
- }
2086
- get subTotal() {
2087
- return this.lines.reduce((sum, l) => sum + l.unitPriceWithTax * l.quantity, 0);
2088
- }
2089
- ngOnInit() {
2090
- this.lines = this.loadFromLocalStorage();
2091
- if (this.lines) {
2092
- this.orderLinesChange.emit(this.lines);
2093
- }
2094
- this.dataService.settings.getActiveChannel('cache-first').single$.subscribe(result => {
2095
- this.currencyCode = result.activeChannel.currencyCode;
2096
- });
2097
- }
2098
- selectResult(result) {
2099
- if (result) {
2100
- this.addToLines(result);
2101
- }
2102
- }
2103
- addToLines(result) {
2104
- var _a, _b;
2105
- if (!this.lines.find(l => l.id === result.productVariantId)) {
2106
- this.lines.push({
2107
- id: result.productVariantId,
2108
- name: result.productVariantName,
2109
- preview: (_b = (_a = result.productAsset) === null || _a === void 0 ? void 0 : _a.preview) !== null && _b !== void 0 ? _b : '',
2110
- quantity: 1,
2111
- sku: result.sku,
2112
- unitPriceWithTax: (result.priceWithTax.__typename === 'SinglePrice' && result.priceWithTax.value) || 0,
2113
- });
2114
- this.persistToLocalStorage();
2115
- this.orderLinesChange.emit(this.lines);
2116
- }
2117
- }
2118
- updateQuantity() {
2119
- this.persistToLocalStorage();
2120
- this.orderLinesChange.emit(this.lines);
2121
- }
2122
- removeLine(line) {
2123
- this.lines = this.lines.filter(l => l.id !== line.id);
2124
- this.persistToLocalStorage();
2125
- this.orderLinesChange.emit(this.lines);
2126
- }
2127
- persistToLocalStorage() {
2128
- this.localStorageService.setForCurrentLocation('shippingTestOrder', this.lines);
2129
- }
2130
- loadFromLocalStorage() {
2131
- return this.localStorageService.getForCurrentLocation('shippingTestOrder') || [];
2132
- }
2133
- }
2134
- TestOrderBuilderComponent.decorators = [
2135
- { type: Component, args: [{
2136
- selector: 'vdr-test-order-builder',
2137
- template: "<div class=\"card\">\r\n <div class=\"card-header\">\r\n {{ 'settings.test-order' | translate }}\r\n </div>\r\n <table class=\"order-table table\" *ngIf=\"lines.length; else emptyPlaceholder\">\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 <tr *ngFor=\"let line of lines\" class=\"order-line\">\r\n <td class=\"align-middle thumb\">\r\n <img [src]=\"line.preview + '?preset=tiny'\" />\r\n </td>\r\n <td class=\"align-middle name\">{{ line.name }}</td>\r\n <td class=\"align-middle sku\">{{ line.sku }}</td>\r\n <td class=\"align-middle unit-price\">\r\n {{ line.unitPriceWithTax | localeCurrency: currencyCode }}\r\n </td>\r\n <td class=\"align-middle quantity\">\r\n <input\r\n [(ngModel)]=\"line.quantity\"\r\n (change)=\"updateQuantity()\"\r\n type=\"number\"\r\n max=\"9999\"\r\n min=\"1\"\r\n />\r\n <button class=\"icon-button\" (click)=\"removeLine(line)\">\r\n <clr-icon shape=\"trash\"></clr-icon>\r\n </button>\r\n </td>\r\n <td class=\"align-middle total\">\r\n {{ (line.unitPriceWithTax * line.quantity) | localeCurrency: currencyCode }}\r\n </td>\r\n </tr>\r\n <tr class=\"sub-total\">\r\n <td class=\"left\">{{ 'order.sub-total' | translate }}</td>\r\n <td></td>\r\n <td></td>\r\n <td></td>\r\n <td></td>\r\n <td>{{ subTotal | localeCurrency: currencyCode }}</td>\r\n </tr>\r\n </table>\r\n\r\n <ng-template #emptyPlaceholder>\r\n <div class=\"card-block empty-placeholder\">\r\n <div class=\"empty-text\">{{ 'settings.add-products-to-test-order' | translate }}</div>\r\n <clr-icon shape=\"arrow\" dir=\"down\" size=\"96\"></clr-icon>\r\n </div>\r\n </ng-template>\r\n <div class=\"card-block\">\r\n <vdr-product-selector (productSelected)=\"selectResult($event)\"> </vdr-product-selector>\r\n </div>\r\n</div>\r\n",
2138
- changeDetection: ChangeDetectionStrategy.OnPush,
2139
- styles: [".empty-placeholder{color:var(--color-grey-400);text-align:center}.empty-text{font-size:22px}\n"]
2140
- },] }
2141
- ];
2142
- TestOrderBuilderComponent.ctorParameters = () => [
2143
- { type: DataService },
2144
- { type: LocalStorageService }
2145
- ];
2146
- TestOrderBuilderComponent.propDecorators = {
2147
- orderLinesChange: [{ type: Output }]
2148
- };
2149
-
2150
- class ZoneDetailDialogComponent {
2151
- constructor(serverConfigService, formBuilder) {
2152
- this.serverConfigService = serverConfigService;
2153
- this.formBuilder = formBuilder;
2154
- this.customFields = this.serverConfigService.getCustomFieldsFor('CustomerGroup');
2155
- }
2156
- ngOnInit() {
2157
- var _a;
2158
- this.form = this.formBuilder.group({
2159
- name: [this.zone.name, Validators.required],
2160
- customFields: this.formBuilder.group(this.customFields.reduce((hash, field) => (Object.assign(Object.assign({}, hash), { [field.name]: '' })), {})),
2161
- });
2162
- if (this.customFields.length) {
2163
- const customFieldsGroup = this.form.get('customFields');
2164
- for (const fieldDef of this.customFields) {
2165
- const key = fieldDef.name;
2166
- const value = (_a = this.zone.customFields) === null || _a === void 0 ? void 0 : _a[key];
2167
- const control = customFieldsGroup.get(key);
2168
- if (control) {
2169
- control.patchValue(value);
2170
- }
2171
- }
2172
- }
2173
- }
2174
- cancel() {
2175
- this.resolveWith();
2176
- }
2177
- save() {
2178
- this.resolveWith(this.form.value);
2179
- }
2180
- }
2181
- ZoneDetailDialogComponent.decorators = [
2182
- { type: Component, args: [{
2183
- selector: 'vdr-zone-detail-dialog',
2184
- template: "<ng-template vdrDialogTitle>\r\n <span *ngIf=\"zone.id\">{{ 'settings.update-zone' | translate }}</span>\r\n <span *ngIf=\"!zone.id\">{{ 'settings.create-zone' | translate }}</span>\r\n</ng-template>\r\n<form [formGroup]=\"form\">\r\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input\r\n id=\"name\"\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(['UpdateSettings', 'UpdateZone'] | hasPermission)\"\r\n />\r\n </vdr-form-field>\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Zone\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"form.get('customFields')\"\r\n [readonly]=\"!(['UpdateSettings', 'UpdateZone'] | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n</form>\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)=\"save()\" [disabled]=\"form.invalid\" class=\"btn btn-primary\">\r\n <span *ngIf=\"zone.id\">{{ 'settings.update-zone' | translate }}</span>\r\n <span *ngIf=\"!zone.id\">{{ 'settings.create-zone' | translate }}</span>\r\n </button>\r\n</ng-template>\r\n",
2185
- changeDetection: ChangeDetectionStrategy.OnPush,
2186
- styles: [""]
2187
- },] }
2188
- ];
2189
- ZoneDetailDialogComponent.ctorParameters = () => [
2190
- { type: ServerConfigService },
2191
- { type: FormBuilder }
2192
- ];
2193
-
2194
- class ZoneListComponent {
2195
- constructor(dataService, notificationService, modalService, route, router, serverConfigService) {
2196
- this.dataService = dataService;
2197
- this.notificationService = notificationService;
2198
- this.modalService = modalService;
2199
- this.route = route;
2200
- this.router = router;
2201
- this.serverConfigService = serverConfigService;
2202
- this.selectedMemberIds = [];
2203
- }
2204
- ngOnInit() {
2205
- const zonesQueryRef = this.dataService.settings.getZones().ref;
2206
- this.zones$ = zonesQueryRef.valueChanges.pipe(map(data => data.data.zones));
2207
- const activeZoneId$ = this.route.paramMap.pipe(map(pm => pm.get('contents')), distinctUntilChanged(), tap(() => (this.selectedMemberIds = [])));
2208
- this.activeZone$ = combineLatest(this.zones$, activeZoneId$).pipe(map(([zones, activeZoneId]) => {
2209
- if (activeZoneId) {
2210
- return zones.find(z => z.id === activeZoneId);
2211
- }
2212
- }));
2213
- this.availableLanguages$ = this.serverConfigService.getAvailableLanguages();
2214
- this.contentLanguage$ = this.dataService.client
2215
- .uiState()
2216
- .mapStream(({ uiState }) => uiState.contentLanguage)
2217
- .pipe(tap(() => zonesQueryRef.refetch()));
2218
- }
2219
- setLanguage(code) {
2220
- this.dataService.client.setContentLanguage(code).subscribe();
2221
- }
2222
- create() {
2223
- this.modalService
2224
- .fromComponent(ZoneDetailDialogComponent, { locals: { zone: { name: '' } } })
2225
- .pipe(switchMap(result => result ? this.dataService.settings.createZone(Object.assign(Object.assign({}, result), { memberIds: [] })) : EMPTY),
2226
- // refresh list
2227
- switchMap(() => this.dataService.settings.getZones().single$))
2228
- .subscribe(() => {
2229
- this.notificationService.success(marker('common.notify-create-success'), {
2230
- entity: 'Zone',
2231
- });
2232
- }, err => {
2233
- this.notificationService.error(marker('common.notify-create-error'), {
2234
- entity: 'Zone',
2235
- });
2236
- });
2237
- }
2238
- delete(zoneId) {
2239
- this.modalService
2240
- .dialog({
2241
- title: marker('catalog.confirm-delete-zone'),
2242
- buttons: [
2243
- { type: 'secondary', label: marker('common.cancel') },
2244
- { type: 'danger', label: marker('common.delete'), returnValue: true },
2245
- ],
2246
- })
2247
- .pipe(switchMap(response => (response ? this.dataService.settings.deleteZone(zoneId) : EMPTY)), switchMap(result => {
2248
- if (result.deleteZone.result === DeletionResult.DELETED) {
2249
- // refresh list
2250
- return this.dataService.settings
2251
- .getZones()
2252
- .mapSingle(() => ({ errorMessage: false }));
2253
- }
2254
- else {
2255
- return of({ errorMessage: result.deleteZone.message });
2256
- }
2257
- }))
2258
- .subscribe(result => {
2259
- if (typeof result.errorMessage === 'string') {
2260
- this.notificationService.error(result.errorMessage);
2261
- }
2262
- else {
2263
- this.notificationService.success(marker('common.notify-delete-success'), {
2264
- entity: 'Zone',
2265
- });
2266
- }
2267
- }, err => {
2268
- this.notificationService.error(marker('common.notify-delete-error'), {
2269
- entity: 'Zone',
2270
- });
2271
- });
2272
- }
2273
- update(zone) {
2274
- this.modalService
2275
- .fromComponent(ZoneDetailDialogComponent, { locals: { zone } })
2276
- .pipe(switchMap(result => result ? this.dataService.settings.updateZone(Object.assign({ id: zone.id }, result)) : EMPTY))
2277
- .subscribe(() => {
2278
- this.notificationService.success(marker('common.notify-update-success'), {
2279
- entity: 'Zone',
2280
- });
2281
- }, err => {
2282
- this.notificationService.error(marker('common.notify-update-error'), {
2283
- entity: 'Zone',
2284
- });
2285
- });
2286
- }
2287
- closeMembers() {
2288
- const params = Object.assign({}, this.route.snapshot.params);
2289
- delete params.contents;
2290
- this.router.navigate(['./', params], { relativeTo: this.route, queryParamsHandling: 'preserve' });
2291
- }
2292
- addToZone(zone) {
2293
- this.modalService
2294
- .fromComponent(AddCountryToZoneDialogComponent, {
2295
- locals: {
2296
- zoneName: zone.name,
2297
- currentMembers: zone.members,
2298
- },
2299
- size: 'md',
2300
- })
2301
- .pipe(switchMap(memberIds => memberIds
2302
- ? this.dataService.settings
2303
- .addMembersToZone(zone.id, memberIds)
2304
- .pipe(mapTo(memberIds))
2305
- : EMPTY))
2306
- .subscribe({
2307
- next: result => {
2308
- this.notificationService.success(marker(`settings.add-countries-to-zone-success`), {
2309
- countryCount: result.length,
2310
- zoneName: zone.name,
2311
- });
2312
- },
2313
- error: err => {
2314
- this.notificationService.error(err);
2315
- },
2316
- });
2317
- }
2318
- removeFromZone(zone, memberIds) {
2319
- this.dataService.settings.removeMembersFromZone(zone.id, memberIds).subscribe({
2320
- complete: () => {
2321
- this.notificationService.success(marker(`settings.remove-countries-from-zone-success`), {
2322
- countryCount: memberIds.length,
2323
- zoneName: zone.name,
2324
- });
2325
- },
2326
- });
2327
- }
2328
- }
2329
- ZoneListComponent.decorators = [
2330
- { type: Component, args: [{
2331
- selector: 'vdr-zone-list',
2332
- template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"zone-list\"></vdr-action-bar-items>\r\n <button\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"['CreateSettings', 'CreateZone']\"\r\n (click)=\"create()\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'settings.create-new-zone' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n<div class=\"zone-wrapper\">\r\n <div class=\"zone-list\">\r\n <table class=\"table mt0\">\r\n <tbody>\r\n <tr\r\n *ngFor=\"let zone of zones$ | async\"\r\n [class.active]=\"zone.id === (activeZone$ | async)?.id\"\r\n >\r\n <td class=\"left align-middle\"><vdr-entity-info [entity]=\"zone\"></vdr-entity-info></td>\r\n <td class=\"left align-middle\">\r\n <vdr-chip [colorFrom]=\"zone.name\">{{ zone.name }}</vdr-chip>\r\n </td>\r\n <td class=\"text-right align-middle\">\r\n <a\r\n class=\"btn btn-link btn-sm\"\r\n [routerLink]=\"['./', { contents: zone.id }]\"\r\n queryParamsHandling=\"preserve\"\r\n >\r\n <clr-icon shape=\"view-list\"></clr-icon>\r\n {{ 'settings.view-zone-members' | translate }}\r\n </a>\r\n </td>\r\n <td class=\"align-middle\">\r\n <button class=\"btn btn-link btn-sm\" (click)=\"update(zone)\">\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </button>\r\n </td>\r\n <td class=\"align-middle\">\r\n <vdr-dropdown>\r\n <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n {{ 'common.actions' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n class=\"button\"\r\n vdrDropdownItem\r\n (click)=\"delete(zone.id)\"\r\n [disabled]=\"!(['DeleteSettings', 'DeleteZone'] | 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 </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class=\"zone-members\" [class.expanded]=\"activeZone$ | async\">\r\n <ng-container *ngIf=\"activeZone$ | async as activeZone\">\r\n <vdr-zone-member-list\r\n [members]=\"activeZone.members\"\r\n [selectedMemberIds]=\"selectedMemberIds\"\r\n (selectionChange)=\"selectedMemberIds = $event\"\r\n >\r\n <div *vdrZoneMemberListHeader>\r\n <div class=\"flex\">\r\n <div class=\"header-title-row\">\r\n {{ activeZone.name }} ({{ activeZone.members.length }})\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <button type=\"button\" class=\"close-button\" (click)=\"closeMembers()\">\r\n <clr-icon shape=\"close\"></clr-icon>\r\n </button>\r\n </div>\r\n <div class=\"controls\">\r\n <vdr-dropdown>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-secondary btn-sm\"\r\n vdrDropdownTrigger\r\n [disabled]=\"selectedMemberIds.length === 0\"\r\n >\r\n {{ 'common.with-selected' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"removeFromZone(activeZone, selectedMemberIds)\"\r\n vdrDropdownItem\r\n [disabled]=\"!(['UpdateSettings', 'UpdateZone'] | hasPermission)\"\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'settings.remove-from-zone' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n <button class=\"btn btn-secondary btn-sm\" (click)=\"addToZone(activeZone)\">\r\n {{ 'settings.add-countries-to-zone' | translate: { zoneName: activeZone.name } }}\r\n </button>\r\n </div>\r\n </div>\r\n <div *vdrZoneMemberControls=\"let member = member\">\r\n <vdr-dropdown>\r\n <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n {{ 'common.actions' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <a\r\n type=\"button\"\r\n [routerLink]=\"['/settings', 'countries', member.id]\"\r\n vdrDropdownItem\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n </a>\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"removeFromZone(activeZone, [member.id])\"\r\n vdrDropdownItem\r\n [disabled]=\"!(['UpdateSettings', 'UpdateZone'] | hasPermission)\"\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'settings.remove-from-zone' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </vdr-zone-member-list>\r\n </ng-container>\r\n </div>\r\n</div>\r\n",
2333
- changeDetection: ChangeDetectionStrategy.OnPush,
2334
- styles: [".zone-wrapper{display:flex;height:calc(100% - 50px)}.zone-wrapper .zone-list{flex:1;overflow:auto;margin-top:0}.zone-wrapper .zone-list tr.active{background-color:var(--color-component-bg-200)}.zone-members{height:100%;width:0;opacity:0;visibility:hidden;overflow:auto;transition:width .3s,opacity .2s .3s,visibility 0s .3s}.zone-members.expanded{width:40vw;visibility:visible;opacity:1;padding-left:12px}.zone-members .close-button{margin:0;background:none;border:none;cursor:pointer}.zone-members ::ng-deep table.table{margin-top:0}.zone-members ::ng-deep table.table th{top:0}.zone-members .controls{display:flex;justify-content:space-between}\n"]
2335
- },] }
2336
- ];
2337
- ZoneListComponent.ctorParameters = () => [
2338
- { type: DataService },
2339
- { type: NotificationService },
2340
- { type: ModalService },
2341
- { type: ActivatedRoute },
2342
- { type: Router },
2343
- { type: ServerConfigService }
2344
- ];
2345
-
2346
- class ZoneMemberControlsDirective {
2347
- constructor(templateRef) {
2348
- this.templateRef = templateRef;
2349
- }
2350
- }
2351
- ZoneMemberControlsDirective.decorators = [
2352
- { type: Directive, args: [{
2353
- selector: '[vdrZoneMemberControls]',
2354
- },] }
2355
- ];
2356
- ZoneMemberControlsDirective.ctorParameters = () => [
2357
- { type: TemplateRef }
2358
- ];
2359
-
2360
- class ZoneMemberListHeaderDirective {
2361
- constructor(templateRef) {
2362
- this.templateRef = templateRef;
2363
- }
2364
- }
2365
- ZoneMemberListHeaderDirective.decorators = [
2366
- { type: Directive, args: [{
2367
- selector: '[vdrZoneMemberListHeader]',
2368
- },] }
2369
- ];
2370
- ZoneMemberListHeaderDirective.ctorParameters = () => [
2371
- { type: TemplateRef }
2372
- ];
2373
-
2374
- class ZoneMemberListComponent {
2375
- constructor() {
2376
- this.members = [];
2377
- this.selectedMemberIds = [];
2378
- this.selectionChange = new EventEmitter();
2379
- this.filterTerm = '';
2380
- this.isMemberSelected = (member) => {
2381
- return -1 < this.selectedMemberIds.indexOf(member.id);
2382
- };
2383
- }
2384
- filteredMembers() {
2385
- if (this.filterTerm !== '') {
2386
- const term = this.filterTerm.toLocaleLowerCase();
2387
- return this.members.filter(m => m.name.toLocaleLowerCase().includes(term) || m.code.toLocaleLowerCase().includes(term));
2388
- }
2389
- else {
2390
- return this.members;
2391
- }
2392
- }
2393
- areAllSelected() {
2394
- if (this.members) {
2395
- return this.selectedMemberIds.length === this.members.length;
2396
- }
2397
- else {
2398
- return false;
2399
- }
2400
- }
2401
- toggleSelectAll() {
2402
- if (this.areAllSelected()) {
2403
- this.selectionChange.emit([]);
2404
- }
2405
- else {
2406
- this.selectionChange.emit(this.members.map(v => v.id));
2407
- }
2408
- }
2409
- toggleSelectMember(member) {
2410
- if (this.selectedMemberIds.includes(member.id)) {
2411
- this.selectionChange.emit(this.selectedMemberIds.filter(id => id !== member.id));
2412
- }
2413
- else {
2414
- this.selectionChange.emit([...this.selectedMemberIds, member.id]);
2415
- }
2416
- }
2417
- }
2418
- ZoneMemberListComponent.decorators = [
2419
- { type: Component, args: [{
2420
- selector: 'vdr-zone-member-list',
2421
- template: "<div class=\"members-header\">\r\n <ng-container *ngIf=\"headerTemplate\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate.templateRef\"></ng-container>\r\n </ng-container>\r\n <input\r\n type=\"text\"\r\n [placeholder]=\"'settings.filter-by-member-name' | translate\"\r\n [(ngModel)]=\"filterTerm\"\r\n />\r\n</div>\r\n<vdr-data-table\r\n [items]=\"filteredMembers()\"\r\n [allSelected]=\"areAllSelected()\"\r\n [isRowSelectedFn]=\"(['UpdateSettings', 'UpdateZone'] | hasPermission) && isMemberSelected\"\r\n (rowSelectChange)=\"toggleSelectMember($event)\"\r\n (allSelectChange)=\"toggleSelectAll()\"\r\n>\r\n <vdr-dt-column>{{ 'common.code' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'common.name' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'common.enabled' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-member=\"item\">\r\n <td class=\"left align-middle\">{{ member.code }}</td>\r\n <td class=\"left align-middle\">{{ member.name }}</td>\r\n <td class=\"left align-middle\">\r\n <clr-icon\r\n [class.is-success]=\"member.enabled\"\r\n [attr.shape]=\"member.enabled ? 'check' : 'times'\"\r\n ></clr-icon>\r\n </td>\r\n <td class=\"right align-middle\">\r\n <ng-container *ngIf=\"controlsTemplate\">\r\n <ng-container\r\n *ngTemplateOutlet=\"controlsTemplate.templateRef; context: { member: member }\"\r\n ></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-template>\r\n</vdr-data-table>\r\n",
2422
- changeDetection: ChangeDetectionStrategy.OnPush,
2423
- styles: [".members-header{background-color:var(--color-component-bg-100);position:sticky;top:0;padding:6px;z-index:5;border-bottom:1px solid var(--color-component-border-200)}.members-header .header-title-row{display:flex;justify-content:space-between;align-items:center}.members-header .clr-input{width:100%}\n"]
2424
- },] }
2425
- ];
2426
- ZoneMemberListComponent.propDecorators = {
2427
- members: [{ type: Input }],
2428
- selectedMemberIds: [{ type: Input }],
2429
- selectionChange: [{ type: Output }],
2430
- headerTemplate: [{ type: ContentChild, args: [ZoneMemberListHeaderDirective,] }],
2431
- controlsTemplate: [{ type: ContentChild, args: [ZoneMemberControlsDirective,] }]
2432
- };
2433
-
2434
- class AdministratorResolver extends BaseEntityResolver {
2435
- constructor(router, dataService) {
2436
- super(router, {
2437
- __typename: 'Administrator',
2438
- id: '',
2439
- createdAt: '',
2440
- updatedAt: '',
2441
- emailAddress: '',
2442
- firstName: '',
2443
- lastName: '',
2444
- user: { roles: [] },
2445
- }, id => dataService.administrator.getAdministrator(id).mapStream(data => data.administrator));
2446
- }
2447
- }
2448
- AdministratorResolver.ɵprov = i0.ɵɵdefineInjectable({ factory: function AdministratorResolver_Factory() { return new AdministratorResolver(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.DataService)); }, token: AdministratorResolver, providedIn: "root" });
2449
- AdministratorResolver.decorators = [
2450
- { type: Injectable, args: [{
2451
- providedIn: 'root',
2452
- },] }
2453
- ];
2454
- AdministratorResolver.ctorParameters = () => [
2455
- { type: Router },
2456
- { type: DataService }
2457
- ];
2458
-
2459
- /**
2460
- * Resolves the id from the path into a Customer entity.
2461
- */
2462
- class ChannelResolver extends BaseEntityResolver {
2463
- constructor(router, dataService) {
2464
- super(router, {
2465
- __typename: 'Channel',
2466
- id: '',
2467
- createdAt: '',
2468
- updatedAt: '',
2469
- code: '',
2470
- token: '',
2471
- pricesIncludeTax: false,
2472
- currencyCode: CurrencyCode.USD,
2473
- defaultLanguageCode: getDefaultUiLanguage(),
2474
- defaultShippingZone: {},
2475
- defaultTaxZone: {},
2476
- }, (id) => dataService.settings.getChannel(id).mapStream((data) => data.channel));
2477
- }
2478
- }
2479
- ChannelResolver.ɵprov = i0.ɵɵdefineInjectable({ factory: function ChannelResolver_Factory() { return new ChannelResolver(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.DataService)); }, token: ChannelResolver, providedIn: "root" });
2480
- ChannelResolver.decorators = [
2481
- { type: Injectable, args: [{
2482
- providedIn: 'root',
2483
- },] }
2484
- ];
2485
- ChannelResolver.ctorParameters = () => [
2486
- { type: Router },
2487
- { type: DataService }
2488
- ];
2489
-
2490
- /**
2491
- * Resolves the id from the path into a Customer entity.
2492
- */
2493
- class CountryResolver extends BaseEntityResolver {
2494
- constructor(router, dataService) {
2495
- super(router, {
2496
- __typename: 'Country',
2497
- id: '',
2498
- createdAt: '',
2499
- updatedAt: '',
2500
- code: '',
2501
- name: '',
2502
- enabled: false,
2503
- translations: [],
2504
- }, id => dataService.settings.getCountry(id).mapStream(data => data.country));
2505
- }
2506
- }
2507
- CountryResolver.ɵprov = i0.ɵɵdefineInjectable({ factory: function CountryResolver_Factory() { return new CountryResolver(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.DataService)); }, token: CountryResolver, providedIn: "root" });
2508
- CountryResolver.decorators = [
2509
- { type: Injectable, args: [{
2510
- providedIn: 'root',
2511
- },] }
2512
- ];
2513
- CountryResolver.ctorParameters = () => [
2514
- { type: Router },
2515
- { type: DataService }
2516
- ];
2517
-
2518
- /**
2519
- * Resolves the global settings.
2520
- */
2521
- class GlobalSettingsResolver extends BaseEntityResolver {
2522
- constructor(router, dataService) {
2523
- super(router,
2524
- // we will never be creating a new GlobalSettings entity, so this part is not used.
2525
- {}, () => dataService.settings.getGlobalSettings().mapStream(data => data.globalSettings));
2526
- }
2527
- }
2528
- GlobalSettingsResolver.ɵprov = i0.ɵɵdefineInjectable({ factory: function GlobalSettingsResolver_Factory() { return new GlobalSettingsResolver(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.DataService)); }, token: GlobalSettingsResolver, providedIn: "root" });
2529
- GlobalSettingsResolver.decorators = [
2530
- { type: Injectable, args: [{
2531
- providedIn: 'root',
2532
- },] }
2533
- ];
2534
- GlobalSettingsResolver.ctorParameters = () => [
2535
- { type: Router },
2536
- { type: DataService }
2537
- ];
2538
-
2539
- /**
2540
- * Resolves the id from the path into a Customer entity.
2541
- */
2542
- class PaymentMethodResolver extends BaseEntityResolver {
2543
- constructor(router, dataService) {
2544
- super(router, {
2545
- __typename: 'PaymentMethod',
2546
- id: '',
2547
- createdAt: '',
2548
- updatedAt: '',
2549
- name: '',
2550
- code: '',
2551
- description: '',
2552
- enabled: true,
2553
- checker: undefined,
2554
- handler: undefined,
2555
- }, id => dataService.settings.getPaymentMethod(id).mapStream(data => data.paymentMethod));
2556
- }
2557
- }
2558
- PaymentMethodResolver.ɵprov = i0.ɵɵdefineInjectable({ factory: function PaymentMethodResolver_Factory() { return new PaymentMethodResolver(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.DataService)); }, token: PaymentMethodResolver, providedIn: "root" });
2559
- PaymentMethodResolver.decorators = [
2560
- { type: Injectable, args: [{
2561
- providedIn: 'root',
2562
- },] }
2563
- ];
2564
- PaymentMethodResolver.ctorParameters = () => [
2565
- { type: Router },
2566
- { type: DataService }
2567
- ];
2568
-
2569
- class ProfileResolver extends BaseEntityResolver {
2570
- constructor(router, dataService) {
2571
- super(router, {
2572
- __typename: 'Administrator',
2573
- id: '',
2574
- createdAt: '',
2575
- updatedAt: '',
2576
- emailAddress: '',
2577
- firstName: '',
2578
- lastName: '',
2579
- user: { roles: [] },
2580
- }, id => dataService.administrator
2581
- .getActiveAdministrator()
2582
- .mapStream(data => data.activeAdministrator));
2583
- }
2584
- }
2585
- ProfileResolver.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProfileResolver_Factory() { return new ProfileResolver(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.DataService)); }, token: ProfileResolver, providedIn: "root" });
2586
- ProfileResolver.decorators = [
2587
- { type: Injectable, args: [{
2588
- providedIn: 'root',
2589
- },] }
2590
- ];
2591
- ProfileResolver.ctorParameters = () => [
2592
- { type: Router },
2593
- { type: DataService }
2594
- ];
2595
-
2596
- class RoleResolver extends BaseEntityResolver {
2597
- constructor(router, dataService) {
2598
- super(router, {
2599
- __typename: 'Role',
2600
- id: '',
2601
- createdAt: '',
2602
- updatedAt: '',
2603
- code: '',
2604
- description: '',
2605
- permissions: [],
2606
- channels: [],
2607
- }, id => dataService.administrator.getRole(id).mapStream(data => data.role));
2608
- }
2609
- }
2610
- RoleResolver.ɵprov = i0.ɵɵdefineInjectable({ factory: function RoleResolver_Factory() { return new RoleResolver(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.DataService)); }, token: RoleResolver, providedIn: "root" });
2611
- RoleResolver.decorators = [
2612
- { type: Injectable, args: [{
2613
- providedIn: 'root',
2614
- },] }
2615
- ];
2616
- RoleResolver.ctorParameters = () => [
2617
- { type: Router },
2618
- { type: DataService }
2619
- ];
2620
-
2621
- /**
2622
- * Resolves the id from the path into a Customer entity.
2623
- */
2624
- class ShippingMethodResolver extends BaseEntityResolver {
2625
- constructor(router, dataService) {
2626
- super(router, {
2627
- __typename: 'ShippingMethod',
2628
- createdAt: '',
2629
- updatedAt: '',
2630
- id: '',
2631
- code: '',
2632
- name: '',
2633
- description: '',
2634
- fulfillmentHandlerCode: undefined,
2635
- checker: undefined,
2636
- calculator: undefined,
2637
- translations: [],
2638
- }, id => dataService.shippingMethod.getShippingMethod(id).mapStream(data => data.shippingMethod));
2639
- }
2640
- }
2641
- ShippingMethodResolver.ɵprov = i0.ɵɵdefineInjectable({ factory: function ShippingMethodResolver_Factory() { return new ShippingMethodResolver(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.DataService)); }, token: ShippingMethodResolver, providedIn: "root" });
2642
- ShippingMethodResolver.decorators = [
2643
- { type: Injectable, args: [{
2644
- providedIn: 'root',
2645
- },] }
2646
- ];
2647
- ShippingMethodResolver.ctorParameters = () => [
2648
- { type: Router },
2649
- { type: DataService }
2650
- ];
2651
-
2652
- /**
2653
- * Resolves the id from the path into a Customer entity.
2654
- */
2655
- class TaxCategoryResolver extends BaseEntityResolver {
2656
- constructor(router, dataService) {
2657
- super(router, {
2658
- __typename: 'TaxCategory',
2659
- id: '',
2660
- createdAt: '',
2661
- updatedAt: '',
2662
- name: '',
2663
- isDefault: false,
2664
- }, id => dataService.settings.getTaxCategory(id).mapStream(data => data.taxCategory));
2665
- }
2666
- }
2667
- TaxCategoryResolver.ɵprov = i0.ɵɵdefineInjectable({ factory: function TaxCategoryResolver_Factory() { return new TaxCategoryResolver(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.DataService)); }, token: TaxCategoryResolver, providedIn: "root" });
2668
- TaxCategoryResolver.decorators = [
2669
- { type: Injectable, args: [{
2670
- providedIn: 'root',
2671
- },] }
2672
- ];
2673
- TaxCategoryResolver.ctorParameters = () => [
2674
- { type: Router },
2675
- { type: DataService }
2676
- ];
2677
-
2678
- /**
2679
- * Resolves the id from the path into a Customer entity.
2680
- */
2681
- class TaxRateResolver extends BaseEntityResolver {
2682
- constructor(router, dataService) {
2683
- super(router, {
2684
- __typename: 'TaxRate',
2685
- id: '',
2686
- createdAt: '',
2687
- updatedAt: '',
2688
- name: '',
2689
- value: 0,
2690
- enabled: true,
2691
- category: {},
2692
- zone: {},
2693
- customerGroup: null,
2694
- }, id => dataService.settings.getTaxRate(id).mapStream(data => data.taxRate));
2695
- }
2696
- }
2697
- TaxRateResolver.ɵprov = i0.ɵɵdefineInjectable({ factory: function TaxRateResolver_Factory() { return new TaxRateResolver(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.DataService)); }, token: TaxRateResolver, providedIn: "root" });
2698
- TaxRateResolver.decorators = [
2699
- { type: Injectable, args: [{
2700
- providedIn: 'root',
2701
- },] }
2702
- ];
2703
- TaxRateResolver.ctorParameters = () => [
2704
- { type: Router },
2705
- { type: DataService }
2706
- ];
2707
-
2708
- const ɵ0 = {
2709
- breadcrumb: marker('breadcrumb.profile'),
2710
- }, ɵ1 = {
2711
- breadcrumb: marker('breadcrumb.administrators'),
2712
- }, ɵ2 = { breadcrumb: administratorBreadcrumb }, ɵ3 = {
2713
- breadcrumb: marker('breadcrumb.channels'),
2714
- }, ɵ4 = { breadcrumb: channelBreadcrumb }, ɵ5 = {
2715
- breadcrumb: marker('breadcrumb.roles'),
2716
- }, ɵ6 = { breadcrumb: roleBreadcrumb }, ɵ7 = {
2717
- breadcrumb: marker('breadcrumb.tax-categories'),
2718
- }, ɵ8 = {
2719
- breadcrumb: taxCategoryBreadcrumb,
2720
- }, ɵ9 = {
2721
- breadcrumb: marker('breadcrumb.tax-rates'),
2722
- }, ɵ10 = {
2723
- breadcrumb: taxRateBreadcrumb,
2724
- }, ɵ11 = {
2725
- breadcrumb: marker('breadcrumb.countries'),
2726
- }, ɵ12 = {
2727
- breadcrumb: countryBreadcrumb,
2728
- }, ɵ13 = {
2729
- breadcrumb: marker('breadcrumb.zones'),
2730
- }, ɵ14 = {
2731
- breadcrumb: marker('breadcrumb.shipping-methods'),
2732
- }, ɵ15 = {
2733
- breadcrumb: shippingMethodBreadcrumb,
2734
- }, ɵ16 = {
2735
- breadcrumb: marker('breadcrumb.payment-methods'),
2736
- }, ɵ17 = {
2737
- breadcrumb: paymentMethodBreadcrumb,
2738
- }, ɵ18 = {
2739
- breadcrumb: marker('breadcrumb.global-settings'),
2740
- };
2741
- const settingsRoutes = [
2742
- {
2743
- path: 'profile',
2744
- component: ProfileComponent,
2745
- resolve: createResolveData(ProfileResolver),
2746
- canDeactivate: [CanDeactivateDetailGuard],
2747
- data: ɵ0,
2748
- },
2749
- {
2750
- path: 'administrators',
2751
- component: AdministratorListComponent,
2752
- data: ɵ1,
2753
- },
2754
- {
2755
- path: 'administrators/:id',
2756
- component: AdminDetailComponent,
2757
- resolve: createResolveData(AdministratorResolver),
2758
- canDeactivate: [CanDeactivateDetailGuard],
2759
- data: ɵ2,
2760
- },
2761
- {
2762
- path: 'channels',
2763
- component: ChannelListComponent,
2764
- data: ɵ3,
2765
- },
2766
- {
2767
- path: 'channels/:id',
2768
- component: ChannelDetailComponent,
2769
- resolve: createResolveData(ChannelResolver),
2770
- canDeactivate: [CanDeactivateDetailGuard],
2771
- data: ɵ4,
2772
- },
2773
- {
2774
- path: 'roles',
2775
- component: RoleListComponent,
2776
- data: ɵ5,
2777
- },
2778
- {
2779
- path: 'roles/:id',
2780
- component: RoleDetailComponent,
2781
- resolve: createResolveData(RoleResolver),
2782
- canDeactivate: [CanDeactivateDetailGuard],
2783
- data: ɵ6,
2784
- },
2785
- {
2786
- path: 'tax-categories',
2787
- component: TaxCategoryListComponent,
2788
- data: ɵ7,
2789
- },
2790
- {
2791
- path: 'tax-categories/:id',
2792
- component: TaxCategoryDetailComponent,
2793
- resolve: createResolveData(TaxCategoryResolver),
2794
- canDeactivate: [CanDeactivateDetailGuard],
2795
- data: ɵ8,
2796
- },
2797
- {
2798
- path: 'tax-rates',
2799
- component: TaxRateListComponent,
2800
- data: ɵ9,
2801
- },
2802
- {
2803
- path: 'tax-rates/:id',
2804
- component: TaxRateDetailComponent,
2805
- resolve: createResolveData(TaxRateResolver),
2806
- canDeactivate: [CanDeactivateDetailGuard],
2807
- data: ɵ10,
2808
- },
2809
- {
2810
- path: 'countries',
2811
- component: CountryListComponent,
2812
- data: ɵ11,
2813
- },
2814
- {
2815
- path: 'countries/:id',
2816
- component: CountryDetailComponent,
2817
- resolve: createResolveData(CountryResolver),
2818
- canDeactivate: [CanDeactivateDetailGuard],
2819
- data: ɵ12,
2820
- },
2821
- {
2822
- path: 'zones',
2823
- component: ZoneListComponent,
2824
- data: ɵ13,
2825
- },
2826
- {
2827
- path: 'shipping-methods',
2828
- component: ShippingMethodListComponent,
2829
- data: ɵ14,
2830
- },
2831
- {
2832
- path: 'shipping-methods/:id',
2833
- component: ShippingMethodDetailComponent,
2834
- resolve: createResolveData(ShippingMethodResolver),
2835
- canDeactivate: [CanDeactivateDetailGuard],
2836
- data: ɵ15,
2837
- },
2838
- {
2839
- path: 'payment-methods',
2840
- component: PaymentMethodListComponent,
2841
- data: ɵ16,
2842
- },
2843
- {
2844
- path: 'payment-methods/:id',
2845
- component: PaymentMethodDetailComponent,
2846
- resolve: createResolveData(PaymentMethodResolver),
2847
- canDeactivate: [CanDeactivateDetailGuard],
2848
- data: ɵ17,
2849
- },
2850
- {
2851
- path: 'global-settings',
2852
- component: GlobalSettingsComponent,
2853
- resolve: createResolveData(GlobalSettingsResolver),
2854
- canDeactivate: [CanDeactivateDetailGuard],
2855
- data: ɵ18,
2856
- },
2857
- ];
2858
- function administratorBreadcrumb(data, params) {
2859
- return detailBreadcrumb({
2860
- entity: data.entity,
2861
- id: params.id,
2862
- breadcrumbKey: 'breadcrumb.administrators',
2863
- getName: admin => `${admin.firstName} ${admin.lastName}`,
2864
- route: 'administrators',
2865
- });
2866
- }
2867
- function channelBreadcrumb(data, params) {
2868
- return detailBreadcrumb({
2869
- entity: data.entity,
2870
- id: params.id,
2871
- breadcrumbKey: 'breadcrumb.channels',
2872
- getName: channel => channel.code,
2873
- route: 'channels',
2874
- });
2875
- }
2876
- function roleBreadcrumb(data, params) {
2877
- return detailBreadcrumb({
2878
- entity: data.entity,
2879
- id: params.id,
2880
- breadcrumbKey: 'breadcrumb.roles',
2881
- getName: role => role.description,
2882
- route: 'roles',
2883
- });
2884
- }
2885
- function taxCategoryBreadcrumb(data, params) {
2886
- return detailBreadcrumb({
2887
- entity: data.entity,
2888
- id: params.id,
2889
- breadcrumbKey: 'breadcrumb.tax-categories',
2890
- getName: category => category.name,
2891
- route: 'tax-categories',
2892
- });
2893
- }
2894
- function taxRateBreadcrumb(data, params) {
2895
- return detailBreadcrumb({
2896
- entity: data.entity,
2897
- id: params.id,
2898
- breadcrumbKey: 'breadcrumb.tax-rates',
2899
- getName: category => category.name,
2900
- route: 'tax-rates',
2901
- });
2902
- }
2903
- function countryBreadcrumb(data, params) {
2904
- return detailBreadcrumb({
2905
- entity: data.entity,
2906
- id: params.id,
2907
- breadcrumbKey: 'breadcrumb.countries',
2908
- getName: promotion => promotion.name,
2909
- route: 'countries',
2910
- });
2911
- }
2912
- function shippingMethodBreadcrumb(data, params) {
2913
- return detailBreadcrumb({
2914
- entity: data.entity,
2915
- id: params.id,
2916
- breadcrumbKey: 'breadcrumb.shipping-methods',
2917
- getName: method => method.name,
2918
- route: 'shipping-methods',
2919
- });
2920
- }
2921
- function paymentMethodBreadcrumb(data, params) {
2922
- return detailBreadcrumb({
2923
- entity: data.entity,
2924
- id: params.id,
2925
- breadcrumbKey: 'breadcrumb.payment-methods',
2926
- getName: method => method.code,
2927
- route: 'payment-methods',
2928
- });
2929
- }
2930
-
2931
- class SettingsModule {
2932
- }
2933
- SettingsModule.decorators = [
2934
- { type: NgModule, args: [{
2935
- imports: [SharedModule, RouterModule.forChild(settingsRoutes)],
2936
- declarations: [
2937
- TaxCategoryListComponent,
2938
- TaxCategoryDetailComponent,
2939
- AdministratorListComponent,
2940
- RoleListComponent,
2941
- RoleDetailComponent,
2942
- AdminDetailComponent,
2943
- PermissionGridComponent,
2944
- CountryListComponent,
2945
- CountryDetailComponent,
2946
- TaxRateListComponent,
2947
- TaxRateDetailComponent,
2948
- ChannelListComponent,
2949
- ChannelDetailComponent,
2950
- ShippingMethodListComponent,
2951
- ShippingMethodDetailComponent,
2952
- PaymentMethodListComponent,
2953
- PaymentMethodDetailComponent,
2954
- GlobalSettingsComponent,
2955
- TestOrderBuilderComponent,
2956
- TestAddressFormComponent,
2957
- ShippingMethodTestResultComponent,
2958
- ShippingEligibilityTestResultComponent,
2959
- ZoneListComponent,
2960
- AddCountryToZoneDialogComponent,
2961
- ZoneMemberListComponent,
2962
- ZoneMemberListHeaderDirective,
2963
- ZoneMemberControlsDirective,
2964
- ZoneDetailDialogComponent,
2965
- ProfileComponent,
2966
- ],
2967
- },] }
2968
- ];
2969
-
2970
- // This file was generated by the build-public-api.ts script
2971
-
2972
- /**
2973
- * Generated bundle index. Do not edit.
2974
- */
2975
-
2976
- export { AddCountryToZoneDialogComponent, AdminDetailComponent, AdministratorListComponent, AdministratorResolver, ChannelDetailComponent, ChannelListComponent, ChannelResolver, CountryDetailComponent, CountryListComponent, CountryResolver, GlobalSettingsComponent, GlobalSettingsResolver, PaymentMethodDetailComponent, PaymentMethodListComponent, PaymentMethodResolver, PermissionGridComponent, ProfileComponent, ProfileResolver, RoleDetailComponent, RoleListComponent, RoleResolver, SettingsModule, ShippingEligibilityTestResultComponent, ShippingMethodDetailComponent, ShippingMethodListComponent, ShippingMethodResolver, ShippingMethodTestResultComponent, TaxCategoryDetailComponent, TaxCategoryListComponent, TaxCategoryResolver, TaxRateDetailComponent, TaxRateListComponent, TaxRateResolver, TestAddressFormComponent, TestOrderBuilderComponent, ZoneDetailDialogComponent, ZoneListComponent, ZoneMemberControlsDirective, ZoneMemberListComponent, ZoneMemberListHeaderDirective, administratorBreadcrumb, channelBreadcrumb, countryBreadcrumb, paymentMethodBreadcrumb, roleBreadcrumb, settingsRoutes, shippingMethodBreadcrumb, taxCategoryBreadcrumb, taxRateBreadcrumb, ɵ0, ɵ1, ɵ10, ɵ11, ɵ12, ɵ13, ɵ14, ɵ15, ɵ16, ɵ17, ɵ18, ɵ2, ɵ3, ɵ4, ɵ5, ɵ6, ɵ7, ɵ8, ɵ9 };
2977
- //# sourceMappingURL=vendure-admin-ui-settings.js.map