@vendure/admin-ui 1.3.3 → 1.4.1

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 (252) hide show
  1. package/bundles/vendure-admin-ui-catalog.umd.js +87 -162
  2. package/bundles/vendure-admin-ui-catalog.umd.js.map +1 -1
  3. package/bundles/vendure-admin-ui-core.umd.js +2020 -402
  4. package/bundles/vendure-admin-ui-core.umd.js.map +1 -1
  5. package/bundles/vendure-admin-ui-customer.umd.js +79 -57
  6. package/bundles/vendure-admin-ui-customer.umd.js.map +1 -1
  7. package/bundles/vendure-admin-ui-marketing.umd.js +11 -1
  8. package/bundles/vendure-admin-ui-marketing.umd.js.map +1 -1
  9. package/bundles/vendure-admin-ui-order.umd.js +10 -2
  10. package/bundles/vendure-admin-ui-order.umd.js.map +1 -1
  11. package/bundles/vendure-admin-ui-settings.umd.js +156 -153
  12. package/bundles/vendure-admin-ui-settings.umd.js.map +1 -1
  13. package/catalog/components/collection-detail/collection-detail.component.d.ts +0 -1
  14. package/catalog/components/collection-list/collection-list.component.d.ts +3 -0
  15. package/catalog/components/facet-detail/facet-detail.component.d.ts +0 -1
  16. package/catalog/components/facet-list/facet-list.component.d.ts +3 -5
  17. package/catalog/components/product-detail/product-detail.component.d.ts +0 -1
  18. package/catalog/vendure-admin-ui-catalog.metadata.json +1 -1
  19. package/core/app.component.d.ts +1 -0
  20. package/core/common/base-detail.component.d.ts +42 -1
  21. package/core/common/base-entity-resolver.d.ts +28 -1
  22. package/core/common/base-list.component.d.ts +75 -1
  23. package/core/common/component-registry-types.d.ts +46 -0
  24. package/core/common/generated-types.d.ts +282 -23
  25. package/core/common/utilities/get-default-ui-language.d.ts +1 -0
  26. package/core/common/version.d.ts +1 -1
  27. package/core/components/app-shell/app-shell.component.d.ts +1 -1
  28. package/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.d.ts +17 -4
  29. package/core/components/user-menu/user-menu.component.d.ts +1 -1
  30. package/core/data/client-state/client-defaults.d.ts +1 -1
  31. package/core/data/definitions/client-definitions.d.ts +3 -1
  32. package/core/data/definitions/customer-definitions.d.ts +1 -0
  33. package/core/data/definitions/settings-definitions.d.ts +1 -0
  34. package/core/data/providers/client-data.service.d.ts +3 -1
  35. package/core/data/providers/data.service.d.ts +54 -12
  36. package/core/data/providers/settings-data.service.d.ts +3 -0
  37. package/core/data/query-result.d.ts +11 -2
  38. package/core/providers/custom-detail-component/custom-detail-component-types.d.ts +25 -0
  39. package/core/providers/custom-detail-component/custom-detail-component.service.d.ts +15 -0
  40. package/core/providers/custom-field-component/custom-field-component.service.d.ts +3 -3
  41. package/core/providers/local-storage/local-storage.service.d.ts +1 -0
  42. package/core/providers/modal/modal.service.d.ts +41 -12
  43. package/core/providers/nav-builder/nav-builder-types.d.ts +19 -1
  44. package/core/providers/nav-builder/nav-builder.service.d.ts +14 -10
  45. package/core/providers/notification/notification.service.d.ts +37 -0
  46. package/core/public_api.d.ts +8 -0
  47. package/core/shared/components/action-bar-items/action-bar-items.component.d.ts +2 -1
  48. package/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.d.ts +18 -0
  49. package/core/shared/components/asset-preview/asset-preview.component.d.ts +0 -1
  50. package/core/shared/components/chip/chip.component.d.ts +20 -0
  51. package/core/shared/components/currency-input/currency-input.component.d.ts +11 -0
  52. package/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.d.ts +17 -0
  53. package/core/shared/components/data-table/data-table.component.d.ts +59 -0
  54. package/core/shared/components/datetime-picker/datetime-picker.component.d.ts +17 -0
  55. package/core/shared/components/dropdown/dropdown.component.d.ts +25 -0
  56. package/core/shared/components/extension-host/extension-host.service.d.ts +3 -1
  57. package/core/shared/components/facet-value-selector/facet-value-selector.component.d.ts +22 -0
  58. package/core/shared/components/modal-dialog/modal-dialog.component.d.ts +1 -1
  59. package/core/shared/components/object-tree/object-tree.component.d.ts +8 -0
  60. package/core/shared/components/order-state-label/order-state-label.component.d.ts +10 -0
  61. package/core/shared/components/product-selector/product-selector.component.d.ts +12 -0
  62. package/core/shared/components/rich-text-editor/rich-text-editor.component.d.ts +12 -1
  63. package/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.d.ts +21 -0
  64. package/core/shared/components/ui-extension-point/ui-extension-point.component.d.ts +15 -0
  65. package/core/shared/directives/if-multichannel.directive.d.ts +14 -0
  66. package/core/shared/directives/if-permissions.directive.d.ts +3 -0
  67. package/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.d.ts +7 -0
  68. package/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.d.ts +32 -0
  69. package/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.d.ts +7 -0
  70. package/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.d.ts +8 -0
  71. package/core/shared/dynamic-form-inputs/date-form-input/date-form-input.component.d.ts +10 -0
  72. package/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.d.ts +8 -0
  73. package/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.d.ts +12 -0
  74. package/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.d.ts +7 -0
  75. package/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.d.ts +8 -0
  76. package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +40 -3
  77. package/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.d.ts +9 -0
  78. package/core/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.d.ts +16 -0
  79. package/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.d.ts +9 -0
  80. package/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.d.ts +12 -3
  81. package/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.d.ts +7 -0
  82. package/core/shared/pipes/asset-preview.pipe.d.ts +14 -0
  83. package/core/shared/pipes/duration.pipe.d.ts +8 -0
  84. package/core/shared/pipes/file-size.pipe.d.ts +8 -0
  85. package/core/shared/pipes/has-permission.pipe.d.ts +3 -1
  86. package/core/shared/pipes/locale-currency-name.pipe.d.ts +8 -0
  87. package/core/shared/pipes/locale-currency.pipe.d.ts +12 -0
  88. package/core/shared/pipes/locale-date.pipe.d.ts +7 -0
  89. package/core/shared/pipes/locale-language-name.pipe.d.ts +9 -1
  90. package/core/shared/pipes/locale-region-name.pipe.d.ts +18 -0
  91. package/core/shared/pipes/time-ago.pipe.d.ts +8 -0
  92. package/core/vendure-admin-ui-core.metadata.json +1 -1
  93. package/customer/components/customer-detail/customer-detail.component.d.ts +2 -3
  94. package/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.d.ts +14 -3
  95. package/customer/vendure-admin-ui-customer.metadata.json +1 -1
  96. package/esm2015/catalog/catalog.module.js +29 -28
  97. package/esm2015/catalog/components/asset-detail/asset-detail.component.js +2 -10
  98. package/esm2015/catalog/components/collection-detail/collection-detail.component.js +3 -16
  99. package/esm2015/catalog/components/collection-list/collection-list.component.js +23 -5
  100. package/esm2015/catalog/components/facet-detail/facet-detail.component.js +3 -15
  101. package/esm2015/catalog/components/facet-list/facet-list.component.js +24 -9
  102. package/esm2015/catalog/components/product-assets/product-assets.component.js +2 -2
  103. package/esm2015/catalog/components/product-detail/product-detail.component.js +5 -27
  104. package/esm2015/catalog/components/product-variants-list/product-variants-list.component.js +3 -3
  105. package/esm2015/catalog/components/update-product-option-dialog/update-product-option-dialog.component.js +2 -2
  106. package/esm2015/catalog/components/variant-price-detail/variant-price-detail.component.js +2 -2
  107. package/esm2015/core/app.component.js +20 -2
  108. package/esm2015/core/common/base-detail.component.js +53 -1
  109. package/esm2015/core/common/base-entity-resolver.js +29 -2
  110. package/esm2015/core/common/base-list.component.js +76 -2
  111. package/esm2015/core/common/component-registry-types.js +1 -1
  112. package/esm2015/core/common/generated-types.js +1 -1
  113. package/esm2015/core/common/introspection-result.js +249 -183
  114. package/esm2015/core/common/utilities/get-default-ui-language.js +9 -1
  115. package/esm2015/core/common/version.js +2 -2
  116. package/esm2015/core/components/app-shell/app-shell.component.js +12 -7
  117. package/esm2015/core/components/main-nav/main-nav.component.js +2 -2
  118. package/esm2015/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.js +281 -5
  119. package/esm2015/core/components/user-menu/user-menu.component.js +3 -3
  120. package/esm2015/core/data/client-state/client-defaults.js +5 -2
  121. package/esm2015/core/data/client-state/client-resolvers.js +32 -33
  122. package/esm2015/core/data/definitions/client-definitions.js +18 -3
  123. package/esm2015/core/data/definitions/customer-definitions.js +21 -25
  124. package/esm2015/core/data/definitions/settings-definitions.js +50 -5
  125. package/esm2015/core/data/providers/client-data.service.js +15 -4
  126. package/esm2015/core/data/providers/data.service.js +44 -2
  127. package/esm2015/core/data/providers/settings-data.service.js +12 -4
  128. package/esm2015/core/data/query-result.js +14 -4
  129. package/esm2015/core/providers/custom-detail-component/custom-detail-component-types.js +2 -0
  130. package/esm2015/core/providers/custom-detail-component/custom-detail-component.service.js +44 -0
  131. package/esm2015/core/providers/custom-field-component/custom-field-component.service.js +6 -6
  132. package/esm2015/core/providers/local-storage/local-storage.service.js +1 -1
  133. package/esm2015/core/providers/modal/modal.service.js +20 -12
  134. package/esm2015/core/providers/nav-builder/nav-builder-types.js +1 -1
  135. package/esm2015/core/providers/nav-builder/nav-builder.service.js +15 -11
  136. package/esm2015/core/providers/notification/notification.service.js +24 -1
  137. package/esm2015/core/public_api.js +9 -1
  138. package/esm2015/core/shared/components/action-bar/action-bar.component.js +1 -1
  139. package/esm2015/core/shared/components/action-bar-items/action-bar-items.component.js +3 -3
  140. package/esm2015/core/shared/components/address-form/address-form.component.js +2 -2
  141. package/esm2015/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.js +19 -1
  142. package/esm2015/core/shared/components/asset-preview/asset-preview.component.js +2 -6
  143. package/esm2015/core/shared/components/channel-assignment-control/channel-assignment-control.component.js +1 -1
  144. package/esm2015/core/shared/components/chip/chip.component.js +12 -1
  145. package/esm2015/core/shared/components/currency-input/currency-input.component.js +12 -1
  146. package/esm2015/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.js +44 -0
  147. package/esm2015/core/shared/components/data-table/data-table.component.js +60 -1
  148. package/esm2015/core/shared/components/datetime-picker/datetime-picker.component.js +17 -1
  149. package/esm2015/core/shared/components/dropdown/dropdown.component.js +26 -1
  150. package/esm2015/core/shared/components/extension-host/extension-host.component.js +3 -3
  151. package/esm2015/core/shared/components/extension-host/extension-host.service.js +16 -2
  152. package/esm2015/core/shared/components/facet-value-selector/facet-value-selector.component.js +23 -1
  153. package/esm2015/core/shared/components/modal-dialog/modal-dialog.component.js +2 -2
  154. package/esm2015/core/shared/components/object-tree/object-tree.component.js +9 -1
  155. package/esm2015/core/shared/components/order-state-label/order-state-label.component.js +11 -1
  156. package/esm2015/core/shared/components/product-selector/product-selector.component.js +13 -1
  157. package/esm2015/core/shared/components/rich-text-editor/rich-text-editor.component.js +14 -3
  158. package/esm2015/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.js +48 -0
  159. package/esm2015/core/shared/components/title-input/title-input.component.js +1 -1
  160. package/esm2015/core/shared/components/ui-extension-point/ui-extension-point.component.js +31 -0
  161. package/esm2015/core/shared/directives/if-multichannel.directive.js +15 -1
  162. package/esm2015/core/shared/directives/if-permissions.directive.js +4 -1
  163. package/esm2015/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.js +8 -1
  164. package/esm2015/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.js +125 -0
  165. package/esm2015/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.js +8 -1
  166. package/esm2015/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.js +9 -1
  167. package/esm2015/core/shared/dynamic-form-inputs/date-form-input/date-form-input.component.js +21 -2
  168. package/esm2015/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.js +2 -1
  169. package/esm2015/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.js +9 -1
  170. package/esm2015/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.js +29 -2
  171. package/esm2015/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.js +8 -1
  172. package/esm2015/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.js +9 -1
  173. package/esm2015/core/shared/dynamic-form-inputs/register-dynamic-input-components.js +42 -2
  174. package/esm2015/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.js +10 -1
  175. package/esm2015/core/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.js +20 -0
  176. package/esm2015/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.js +14 -2
  177. package/esm2015/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.js +17 -2
  178. package/esm2015/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.js +8 -1
  179. package/esm2015/core/shared/pipes/asset-preview.pipe.js +15 -1
  180. package/esm2015/core/shared/pipes/duration.pipe.js +9 -1
  181. package/esm2015/core/shared/pipes/file-size.pipe.js +9 -1
  182. package/esm2015/core/shared/pipes/has-permission.pipe.js +4 -2
  183. package/esm2015/core/shared/pipes/locale-base.pipe.js +7 -4
  184. package/esm2015/core/shared/pipes/locale-currency-name.pipe.js +9 -1
  185. package/esm2015/core/shared/pipes/locale-currency.pipe.js +13 -1
  186. package/esm2015/core/shared/pipes/locale-date.pipe.js +8 -1
  187. package/esm2015/core/shared/pipes/locale-language-name.pipe.js +10 -2
  188. package/esm2015/core/shared/pipes/locale-region-name.pipe.js +48 -0
  189. package/esm2015/core/shared/pipes/time-ago.pipe.js +9 -1
  190. package/esm2015/core/shared/shared.module.js +13 -1
  191. package/esm2015/customer/components/customer-detail/customer-detail.component.js +5 -16
  192. package/esm2015/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.js +32 -3
  193. package/esm2015/customer/components/customer-group-list/customer-group-list.component.js +22 -18
  194. package/esm2015/marketing/components/promotion-detail/promotion-detail.component.js +9 -2
  195. package/esm2015/order/components/order-detail/order-detail.component.js +11 -3
  196. package/esm2015/settings/components/admin-detail/admin-detail.component.js +3 -14
  197. package/esm2015/settings/components/channel-detail/channel-detail.component.js +3 -14
  198. package/esm2015/settings/components/country-detail/country-detail.component.js +11 -3
  199. package/esm2015/settings/components/country-list/country-list.component.js +19 -7
  200. package/esm2015/settings/components/global-settings/global-settings.component.js +3 -14
  201. package/esm2015/settings/components/payment-method-detail/payment-method-detail.component.js +9 -2
  202. package/esm2015/settings/components/profile/profile.component.js +3 -14
  203. package/esm2015/settings/components/shipping-method-detail/shipping-method-detail.component.js +3 -16
  204. package/esm2015/settings/components/tax-category-detail/tax-category-detail.component.js +13 -3
  205. package/esm2015/settings/components/tax-rate-detail/tax-rate-detail.component.js +9 -2
  206. package/esm2015/settings/components/zone-detail-dialog/zone-detail-dialog.component.js +32 -3
  207. package/esm2015/settings/components/zone-list/zone-list.component.js +19 -8
  208. package/fesm2015/vendure-admin-ui-catalog.js +83 -102
  209. package/fesm2015/vendure-admin-ui-catalog.js.map +1 -1
  210. package/fesm2015/vendure-admin-ui-core.js +1863 -339
  211. package/fesm2015/vendure-admin-ui-core.js.map +1 -1
  212. package/fesm2015/vendure-admin-ui-customer.js +54 -34
  213. package/fesm2015/vendure-admin-ui-customer.js.map +1 -1
  214. package/fesm2015/vendure-admin-ui-marketing.js +8 -1
  215. package/fesm2015/vendure-admin-ui-marketing.js.map +1 -1
  216. package/fesm2015/vendure-admin-ui-order.js +10 -2
  217. package/fesm2015/vendure-admin-ui-order.js.map +1 -1
  218. package/fesm2015/vendure-admin-ui-settings.js +110 -85
  219. package/fesm2015/vendure-admin-ui-settings.js.map +1 -1
  220. package/marketing/components/promotion-detail/promotion-detail.component.d.ts +2 -1
  221. package/marketing/vendure-admin-ui-marketing.metadata.json +1 -1
  222. package/order/vendure-admin-ui-order.metadata.json +1 -1
  223. package/package.json +6 -5
  224. package/settings/components/admin-detail/admin-detail.component.d.ts +0 -1
  225. package/settings/components/channel-detail/channel-detail.component.d.ts +0 -1
  226. package/settings/components/country-detail/country-detail.component.d.ts +2 -1
  227. package/settings/components/country-list/country-list.component.d.ts +7 -2
  228. package/settings/components/global-settings/global-settings.component.d.ts +0 -1
  229. package/settings/components/payment-method-detail/payment-method-detail.component.d.ts +2 -1
  230. package/settings/components/profile/profile.component.d.ts +0 -1
  231. package/settings/components/shipping-method-detail/shipping-method-detail.component.d.ts +0 -1
  232. package/settings/components/tax-category-detail/tax-category-detail.component.d.ts +2 -1
  233. package/settings/components/tax-rate-detail/tax-rate-detail.component.d.ts +2 -1
  234. package/settings/components/zone-detail-dialog/zone-detail-dialog.component.d.ts +14 -3
  235. package/settings/components/zone-list/zone-list.component.d.ts +6 -2
  236. package/settings/vendure-admin-ui-settings.metadata.json +1 -1
  237. package/static/i18n-messages/cs.json +7 -0
  238. package/static/i18n-messages/de.json +7 -0
  239. package/static/i18n-messages/en.json +7 -0
  240. package/static/i18n-messages/es.json +8 -1
  241. package/static/i18n-messages/fr.json +7 -0
  242. package/static/i18n-messages/it.json +7 -0
  243. package/static/i18n-messages/pl.json +7 -0
  244. package/static/i18n-messages/pt_BR.json +7 -0
  245. package/static/i18n-messages/pt_PT.json +7 -0
  246. package/static/i18n-messages/ru.json +7 -0
  247. package/static/i18n-messages/uk.json +7 -0
  248. package/static/i18n-messages/zh_Hans.json +7 -0
  249. package/static/i18n-messages/zh_Hant.json +7 -0
  250. package/static/styles/theme/dark.scss +9 -0
  251. package/static/styles/theme/default.scss +8 -0
  252. package/static/theme.min.css +1 -1
@@ -555,8 +555,8 @@
555
555
  emailAddress: ['', [forms.Validators.required, forms.Validators.email]],
556
556
  password: '',
557
557
  customFields: _this.formBuilder.group(_this.customFields.reduce(function (hash, field) {
558
- var _d;
559
- return (Object.assign(Object.assign({}, hash), (_d = {}, _d[field.name] = '', _d)));
558
+ var _c;
559
+ return (Object.assign(Object.assign({}, hash), (_c = {}, _c[field.name] = '', _c)));
560
560
  }, {})),
561
561
  }),
562
562
  addresses: new forms.FormArray([]),
@@ -587,9 +587,6 @@
587
587
  this.destroy();
588
588
  this.orderListUpdates$.complete();
589
589
  };
590
- CustomerDetailComponent.prototype.customFieldIsSet = function (name) {
591
- return !!this.detailForm.get(['customer', 'customFields', name]);
592
- };
593
590
  CustomerDetailComponent.prototype.getAddressFormControls = function () {
594
591
  var formArray = this.detailForm.get(['addresses']);
595
592
  return formArray.controls;
@@ -603,7 +600,7 @@
603
600
  this.addressDefaultsUpdated = true;
604
601
  };
605
602
  CustomerDetailComponent.prototype.addAddress = function () {
606
- var e_1, _d;
603
+ var e_1, _c;
607
604
  var addressFormArray = this.detailForm.get('addresses');
608
605
  var newAddress = this.formBuilder.group({
609
606
  fullName: '',
@@ -621,15 +618,15 @@
621
618
  if (this.addressCustomFields.length) {
622
619
  var customFieldsGroup = this.formBuilder.group({});
623
620
  try {
624
- for (var _e = __values(this.addressCustomFields), _f = _e.next(); !_f.done; _f = _e.next()) {
625
- var fieldDef = _f.value;
621
+ for (var _d = __values(this.addressCustomFields), _e = _d.next(); !_e.done; _e = _d.next()) {
622
+ var fieldDef = _e.value;
626
623
  customFieldsGroup.addControl(fieldDef.name, new forms.FormControl(''));
627
624
  }
628
625
  }
629
626
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
630
627
  finally {
631
628
  try {
632
- if (_f && !_f.done && (_d = _e.return)) _d.call(_e);
629
+ if (_e && !_e.done && (_c = _d.return)) _c.call(_d);
633
630
  }
634
631
  finally { if (e_1) throw e_1.error; }
635
632
  }
@@ -664,8 +661,8 @@
664
661
  };
665
662
  this.dataService.customer
666
663
  .createCustomer(customer, formValue.password)
667
- .subscribe(function (_d) {
668
- var createCustomer = _d.createCustomer;
664
+ .subscribe(function (_c) {
665
+ var createCustomer = _c.createCustomer;
669
666
  switch (createCustomer.__typename) {
670
667
  case 'Customer':
671
668
  _this.notificationService.success(ngxTranslateExtractMarker.marker('common.notify-create-success'), {
@@ -692,9 +689,9 @@
692
689
  CustomerDetailComponent.prototype.save = function () {
693
690
  var _this = this;
694
691
  this.entity$
695
- .pipe(operators.take(1), operators.mergeMap(function (_d) {
696
- var e_2, _e;
697
- var id = _d.id;
692
+ .pipe(operators.take(1), operators.mergeMap(function (_c) {
693
+ var e_2, _d;
694
+ var id = _c.id;
698
695
  var _a;
699
696
  var saveOperations = [];
700
697
  var customerForm = _this.detailForm.get('customer');
@@ -717,8 +714,8 @@
717
714
  var addressFormArray = _this.detailForm.get('addresses');
718
715
  if ((addressFormArray && addressFormArray.dirty) || _this.addressDefaultsUpdated) {
719
716
  try {
720
- for (var _f = __values(addressFormArray.controls), _g = _f.next(); !_g.done; _g = _f.next()) {
721
- var addressControl = _g.value;
717
+ for (var _e = __values(addressFormArray.controls), _f = _e.next(); !_f.done; _f = _e.next()) {
718
+ var addressControl = _f.value;
722
719
  if (addressControl.dirty || _this.addressDefaultsUpdated) {
723
720
  var address = addressControl.value;
724
721
  var input = {
@@ -751,7 +748,7 @@
751
748
  catch (e_2_1) { e_2 = { error: e_2_1 }; }
752
749
  finally {
753
750
  try {
754
- if (_g && !_g.done && (_e = _f.return)) _e.call(_f);
751
+ if (_f && !_f.done && (_d = _e.return)) _d.call(_e);
755
752
  }
756
753
  finally { if (e_2) throw e_2.error; }
757
754
  }
@@ -759,7 +756,7 @@
759
756
  return rxjs.forkJoin(saveOperations);
760
757
  }))
761
758
  .subscribe(function (data) {
762
- var e_3, _d;
759
+ var e_3, _c;
763
760
  try {
764
761
  for (var data_1 = __values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {
765
762
  var result = data_1_1.value;
@@ -783,7 +780,7 @@
783
780
  catch (e_3_1) { e_3 = { error: e_3_1 }; }
784
781
  finally {
785
782
  try {
786
- if (data_1_1 && !data_1_1.done && (_d = data_1.return)) _d.call(data_1);
783
+ if (data_1_1 && !data_1_1.done && (_c = data_1.return)) _c.call(data_1);
787
784
  }
788
785
  finally { if (e_3) throw e_3.error; }
789
786
  }
@@ -834,9 +831,9 @@
834
831
  _this.fetchHistory.next();
835
832
  });
836
833
  };
837
- CustomerDetailComponent.prototype.addNoteToCustomer = function (_d) {
834
+ CustomerDetailComponent.prototype.addNoteToCustomer = function (_c) {
838
835
  var _this = this;
839
- var note = _d.note;
836
+ var note = _c.note;
840
837
  this.dataService.customer.addNoteToCustomer(this.id, note).subscribe(function () {
841
838
  _this.fetchHistory.next();
842
839
  _this.notificationService.success(ngxTranslateExtractMarker.marker('common.notify-create-success'), {
@@ -892,8 +889,8 @@
892
889
  });
893
890
  };
894
891
  CustomerDetailComponent.prototype.setFormValues = function (entity) {
895
- var e_4, _d, e_5, _e, e_6, _f;
896
- var _a, _b;
892
+ var e_4, _c, e_5, _d;
893
+ var _a;
897
894
  var customerGroup = this.detailForm.get('customer');
898
895
  if (customerGroup) {
899
896
  customerGroup.patchValue({
@@ -907,9 +904,9 @@
907
904
  if (entity.addresses) {
908
905
  var addressesArray = new forms.FormArray([]);
909
906
  try {
910
- for (var _g = __values(entity.addresses), _h = _g.next(); !_h.done; _h = _g.next()) {
911
- var address = _h.value;
912
- var _c = address, customFields = _c.customFields, rest = __rest(_c, ["customFields"]);
907
+ for (var _e = __values(entity.addresses), _f = _e.next(); !_f.done; _f = _e.next()) {
908
+ var address = _f.value;
909
+ var _b = address, customFields = _b.customFields, rest = __rest(_b, ["customFields"]);
913
910
  var addressGroup = this.formBuilder.group(Object.assign(Object.assign({}, rest), { countryCode: address.country.code }));
914
911
  addressesArray.push(addressGroup);
915
912
  if (address.defaultShippingAddress) {
@@ -921,8 +918,8 @@
921
918
  if (this.addressCustomFields.length) {
922
919
  var customFieldsGroup = this.formBuilder.group({});
923
920
  try {
924
- for (var _j = (e_5 = void 0, __values(this.addressCustomFields)), _k = _j.next(); !_k.done; _k = _j.next()) {
925
- var fieldDef = _k.value;
921
+ for (var _g = (e_5 = void 0, __values(this.addressCustomFields)), _h = _g.next(); !_h.done; _h = _g.next()) {
922
+ var fieldDef = _h.value;
926
923
  var key = fieldDef.name;
927
924
  var value = (_a = address.customFields) === null || _a === void 0 ? void 0 : _a[key];
928
925
  var control = new forms.FormControl(value);
@@ -932,7 +929,7 @@
932
929
  catch (e_5_1) { e_5 = { error: e_5_1 }; }
933
930
  finally {
934
931
  try {
935
- if (_k && !_k.done && (_e = _j.return)) _e.call(_j);
932
+ if (_h && !_h.done && (_d = _g.return)) _d.call(_g);
936
933
  }
937
934
  finally { if (e_5) throw e_5.error; }
938
935
  }
@@ -943,32 +940,14 @@
943
940
  catch (e_4_1) { e_4 = { error: e_4_1 }; }
944
941
  finally {
945
942
  try {
946
- if (_h && !_h.done && (_d = _g.return)) _d.call(_g);
943
+ if (_f && !_f.done && (_c = _e.return)) _c.call(_e);
947
944
  }
948
945
  finally { if (e_4) throw e_4.error; }
949
946
  }
950
947
  this.detailForm.setControl('addresses', addressesArray);
951
948
  }
952
949
  if (this.customFields.length) {
953
- var customFieldsGroup = this.detailForm.get(['customer', 'customFields']);
954
- try {
955
- for (var _l = __values(this.customFields), _m = _l.next(); !_m.done; _m = _l.next()) {
956
- var fieldDef = _m.value;
957
- var key = fieldDef.name;
958
- var value = (_b = entity.customFields) === null || _b === void 0 ? void 0 : _b[key];
959
- var control = customFieldsGroup.get(key);
960
- if (control) {
961
- control.patchValue(value);
962
- }
963
- }
964
- }
965
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
966
- finally {
967
- try {
968
- if (_m && !_m.done && (_f = _l.return)) _f.call(_l);
969
- }
970
- finally { if (e_6) throw e_6.error; }
971
- }
950
+ this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customer', 'customFields']), entity);
972
951
  }
973
952
  this.changeDetector.markForCheck();
974
953
  };
@@ -990,7 +969,7 @@
990
969
  CustomerDetailComponent.decorators = [
991
970
  { type: i0.Component, args: [{
992
971
  selector: 'vdr-customer-detail',
993
- template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <div class=\"flex clr-align-items-center\">\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n <vdr-customer-status-label [customer]=\"entity$ | async\"></vdr-customer-status-label>\r\n <div class=\"last-login\" *ngIf=\"(entity$ | async)?.user?.lastLogin as lastLogin\" [title]=\"lastLogin | localeDate:'medium'\">\r\n {{ 'customer.last-login' | translate }}: {{ lastLogin | timeAgo }}\r\n </div>\r\n </div>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"customer-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]=\"!(addressDefaultsUpdated || (detailForm.valid && detailForm.dirty))\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n *vdrIfPermissions=\"'UpdateCustomer'\"\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"!(addressDefaultsUpdated || (detailForm.valid && detailForm.dirty))\"\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.get('customer')\">\r\n <vdr-form-field [label]=\"'customer.title' | translate\" for=\"title\" [readOnlyToggle]=\"!(isNew$ | async)\">\r\n <input id=\"title\" type=\"text\" formControlName=\"title\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'customer.first-name' | translate\"\r\n for=\"firstName\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"firstName\" type=\"text\" formControlName=\"firstName\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'customer.last-name' | translate\"\r\n for=\"lastName\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"lastName\" type=\"text\" formControlName=\"lastName\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'customer.email-address' | translate\"\r\n for=\"emailAddress\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"emailAddress\" type=\"text\" formControlName=\"emailAddress\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'customer.phone-number' | translate\"\r\n for=\"phoneNumber\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"phoneNumber\" type=\"text\" formControlName=\"phoneNumber\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'customer.password' | translate\" for=\"password\" *ngIf=\"isNew$ | async\">\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\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 <ng-container *ngFor=\"let customField of customFields\">\r\n <vdr-custom-field-control\r\n *ngIf=\"customFieldIsSet(customField.name)\"\r\n entityName=\"Customer\"\r\n [customFieldsFormGroup]=\"detailForm.get(['customer', 'customFields'])\"\r\n [customField]=\"customField\"\r\n ></vdr-custom-field-control>\r\n </ng-container>\r\n </section>\r\n</form>\r\n\r\n<div class=\"groups\" *ngIf=\"(entity$ | async)?.groups as groups\">\r\n <label class=\"clr-control-label\">{{ 'customer.customer-groups' | translate }}</label>\r\n <ng-container *ngIf=\"groups.length; else noGroups\">\r\n <vdr-chip\r\n *ngFor=\"let group of groups\"\r\n [colorFrom]=\"group.id\"\r\n icon=\"times\"\r\n (iconClick)=\"removeFromGroup(group)\"\r\n >{{ group.name }}</vdr-chip\r\n >\r\n </ng-container>\r\n <ng-template #noGroups>\r\n {{ 'customer.not-a-member-of-any-groups' | translate }}\r\n </ng-template>\r\n <div>\r\n <button class=\"btn btn-sm btn-secondary\" (click)=\"addToGroup()\" *vdrIfPermissions=\"'UpdateCustomerGroup'\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.add-customer-to-group' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div class=\"clr-row\" *ngIf=\"!(isNew$ | async)\">\r\n <div class=\"clr-col-md-4\">\r\n <h3>{{ 'customer.addresses' | translate }}</h3>\r\n <vdr-address-card\r\n *ngFor=\"let addressForm of getAddressFormControls()\"\r\n [availableCountries]=\"availableCountries$ | async\"\r\n [isDefaultBilling]=\"defaultBillingAddressId === addressForm.value.id\"\r\n [isDefaultShipping]=\"defaultShippingAddressId === addressForm.value.id\"\r\n [addressForm]=\"addressForm\"\r\n [customFields]=\"addressCustomFields\"\r\n [editable]=\"['UpdateCustomer'] | hasPermission\"\r\n (setAsDefaultBilling)=\"setDefaultBillingAddressId($event)\"\r\n (setAsDefaultShipping)=\"setDefaultShippingAddressId($event)\"\r\n ></vdr-address-card>\r\n <button class=\"btn btn-secondary\" (click)=\"addAddress()\" *vdrIfPermissions=\"'UpdateCustomer'\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-address' | translate }}\r\n </button>\r\n </div>\r\n <div class=\"clr-col-md-8\">\r\n <h3>{{ 'customer.orders' | translate }}</h3>\r\n <vdr-data-table\r\n [items]=\"orders$ | async\"\r\n [itemsPerPage]=\"ordersPerPage\"\r\n [totalItems]=\"ordersCount$ | async\"\r\n [currentPage]=\"currentOrdersPage\"\r\n [emptyStateLabel]=\"'customer.no-orders-placed' | translate\"\r\n (itemsPerPageChange)=\"setOrderItemsPerPage($event)\"\r\n (pageChange)=\"setOrderCurrentPage($event)\"\r\n >\r\n <vdr-dt-column>{{ 'common.code' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'order.state' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'order.total' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'common.updated-at' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-order=\"item\">\r\n <td class=\"left\">{{ order.code }}</td>\r\n <td class=\"left\">{{ order.state }}</td>\r\n <td class=\"left\">{{ order.totalWithTax | localeCurrency: order.currencyCode }}</td>\r\n <td class=\"left\">{{ order.updatedAt | localeDate: 'medium' }}</td>\r\n <td class=\"right\">\r\n <vdr-table-row-action\r\n iconShape=\"shopping-cart\"\r\n [label]=\"'common.open' | translate\"\r\n [linkTo]=\"['/orders/', order.id]\"\r\n ></vdr-table-row-action>\r\n </td>\r\n </ng-template>\r\n </vdr-data-table>\r\n </div>\r\n</div>\r\n<div class=\"clr-row\" *ngIf=\"!(isNew$ | async)\">\r\n <div class=\"clr-col-md-6\">\r\n <vdr-customer-history\r\n [customer]=\"entity$ | async\"\r\n [history]=\"history$ | async\"\r\n (addNote)=\"addNoteToCustomer($event)\"\r\n (updateNote)=\"updateNote($event)\"\r\n (deleteNote)=\"deleteNote($event)\"\r\n ></vdr-customer-history>\r\n </div>\r\n</div>\r\n",
972
+ template: "<vdr-action-bar>\r\n <vdr-ab-left>\r\n <div class=\"flex clr-align-items-center\">\r\n <vdr-entity-info [entity]=\"entity$ | async\"></vdr-entity-info>\r\n <vdr-customer-status-label [customer]=\"entity$ | async\"></vdr-customer-status-label>\r\n <div\r\n class=\"last-login\"\r\n *ngIf=\"(entity$ | async)?.user?.lastLogin as lastLogin\"\r\n [title]=\"lastLogin | localeDate: 'medium'\"\r\n >\r\n {{ 'customer.last-login' | translate }}: {{ lastLogin | timeAgo }}\r\n </div>\r\n </div>\r\n </vdr-ab-left>\r\n\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"customer-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]=\"!(addressDefaultsUpdated || (detailForm.valid && detailForm.dirty))\"\r\n >\r\n {{ 'common.create' | translate }}\r\n </button>\r\n <ng-template #updateButton>\r\n <button\r\n *vdrIfPermissions=\"'UpdateCustomer'\"\r\n class=\"btn btn-primary\"\r\n (click)=\"save()\"\r\n [disabled]=\"!(addressDefaultsUpdated || (detailForm.valid && detailForm.dirty))\"\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.get('customer')\">\r\n <vdr-form-field [label]=\"'customer.title' | translate\" for=\"title\" [readOnlyToggle]=\"!(isNew$ | async)\">\r\n <input id=\"title\" type=\"text\" formControlName=\"title\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'customer.first-name' | translate\"\r\n for=\"firstName\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"firstName\" type=\"text\" formControlName=\"firstName\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'customer.last-name' | translate\"\r\n for=\"lastName\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"lastName\" type=\"text\" formControlName=\"lastName\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'customer.email-address' | translate\"\r\n for=\"emailAddress\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"emailAddress\" type=\"text\" formControlName=\"emailAddress\" />\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'customer.phone-number' | translate\"\r\n for=\"phoneNumber\"\r\n [readOnlyToggle]=\"!(isNew$ | async)\"\r\n >\r\n <input id=\"phoneNumber\" type=\"text\" formControlName=\"phoneNumber\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'customer.password' | translate\" for=\"password\" *ngIf=\"isNew$ | async\">\r\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\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=\"Customer\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"detailForm.get(['customer', 'customFields'])\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n <vdr-custom-detail-component-host\r\n locationId=\"customer-detail\"\r\n [entity$]=\"entity$\"\r\n [detailForm]=\"detailForm\"\r\n ></vdr-custom-detail-component-host>\r\n</form>\r\n\r\n<div class=\"groups\" *ngIf=\"(entity$ | async)?.groups as groups\">\r\n <label class=\"clr-control-label\">{{ 'customer.customer-groups' | translate }}</label>\r\n <ng-container *ngIf=\"groups.length; else noGroups\">\r\n <vdr-chip\r\n *ngFor=\"let group of groups\"\r\n [colorFrom]=\"group.id\"\r\n icon=\"times\"\r\n (iconClick)=\"removeFromGroup(group)\"\r\n >{{ group.name }}</vdr-chip\r\n >\r\n </ng-container>\r\n <ng-template #noGroups>\r\n {{ 'customer.not-a-member-of-any-groups' | translate }}\r\n </ng-template>\r\n <div>\r\n <button\r\n class=\"btn btn-sm btn-secondary\"\r\n (click)=\"addToGroup()\"\r\n *vdrIfPermissions=\"'UpdateCustomerGroup'\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.add-customer-to-group' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div class=\"clr-row\" *ngIf=\"!(isNew$ | async)\">\r\n <div class=\"clr-col-md-4\">\r\n <h3>{{ 'customer.addresses' | translate }}</h3>\r\n <vdr-address-card\r\n *ngFor=\"let addressForm of getAddressFormControls()\"\r\n [availableCountries]=\"availableCountries$ | async\"\r\n [isDefaultBilling]=\"defaultBillingAddressId === addressForm.value.id\"\r\n [isDefaultShipping]=\"defaultShippingAddressId === addressForm.value.id\"\r\n [addressForm]=\"addressForm\"\r\n [customFields]=\"addressCustomFields\"\r\n [editable]=\"['UpdateCustomer'] | hasPermission\"\r\n (setAsDefaultBilling)=\"setDefaultBillingAddressId($event)\"\r\n (setAsDefaultShipping)=\"setDefaultShippingAddressId($event)\"\r\n ></vdr-address-card>\r\n <button class=\"btn btn-secondary\" (click)=\"addAddress()\" *vdrIfPermissions=\"'UpdateCustomer'\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-address' | translate }}\r\n </button>\r\n </div>\r\n <div class=\"clr-col-md-8\">\r\n <h3>{{ 'customer.orders' | translate }}</h3>\r\n <vdr-data-table\r\n [items]=\"orders$ | async\"\r\n [itemsPerPage]=\"ordersPerPage\"\r\n [totalItems]=\"ordersCount$ | async\"\r\n [currentPage]=\"currentOrdersPage\"\r\n [emptyStateLabel]=\"'customer.no-orders-placed' | translate\"\r\n (itemsPerPageChange)=\"setOrderItemsPerPage($event)\"\r\n (pageChange)=\"setOrderCurrentPage($event)\"\r\n >\r\n <vdr-dt-column>{{ 'common.code' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'order.state' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'order.total' | translate }}</vdr-dt-column>\r\n <vdr-dt-column>{{ 'common.updated-at' | translate }}</vdr-dt-column>\r\n <vdr-dt-column></vdr-dt-column>\r\n <ng-template let-order=\"item\">\r\n <td class=\"left\">{{ order.code }}</td>\r\n <td class=\"left\">{{ order.state }}</td>\r\n <td class=\"left\">{{ order.totalWithTax | localeCurrency: order.currencyCode }}</td>\r\n <td class=\"left\">{{ order.updatedAt | localeDate: 'medium' }}</td>\r\n <td class=\"right\">\r\n <vdr-table-row-action\r\n iconShape=\"shopping-cart\"\r\n [label]=\"'common.open' | translate\"\r\n [linkTo]=\"['/orders/', order.id]\"\r\n ></vdr-table-row-action>\r\n </td>\r\n </ng-template>\r\n </vdr-data-table>\r\n </div>\r\n</div>\r\n<div class=\"clr-row\" *ngIf=\"!(isNew$ | async)\">\r\n <div class=\"clr-col-md-6\">\r\n <vdr-customer-history\r\n [customer]=\"entity$ | async\"\r\n [history]=\"history$ | async\"\r\n (addNote)=\"addNoteToCustomer($event)\"\r\n (updateNote)=\"updateNote($event)\"\r\n (deleteNote)=\"deleteNote($event)\"\r\n ></vdr-customer-history>\r\n </div>\r\n</div>\r\n",
994
973
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
995
974
  styles: [".last-login{margin-left:6px;color:var(--color-grey-500)}\n"]
996
975
  },] }
@@ -1007,24 +986,63 @@
1007
986
  ]; };
1008
987
 
1009
988
  var CustomerGroupDetailDialogComponent = /** @class */ (function () {
1010
- function CustomerGroupDetailDialogComponent() {
989
+ function CustomerGroupDetailDialogComponent(serverConfigService, formBuilder) {
990
+ this.serverConfigService = serverConfigService;
991
+ this.formBuilder = formBuilder;
992
+ this.customFields = this.serverConfigService.getCustomFieldsFor('CustomerGroup');
1011
993
  }
994
+ CustomerGroupDetailDialogComponent.prototype.ngOnInit = function () {
995
+ var e_1, _b;
996
+ var _a;
997
+ this.form = this.formBuilder.group({
998
+ name: [this.group.name, forms.Validators.required],
999
+ customFields: this.formBuilder.group(this.customFields.reduce(function (hash, field) {
1000
+ var _b;
1001
+ return (Object.assign(Object.assign({}, hash), (_b = {}, _b[field.name] = '', _b)));
1002
+ }, {})),
1003
+ });
1004
+ if (this.customFields.length) {
1005
+ var customFieldsGroup = this.form.get('customFields');
1006
+ try {
1007
+ for (var _c = __values(this.customFields), _d = _c.next(); !_d.done; _d = _c.next()) {
1008
+ var fieldDef = _d.value;
1009
+ var key = fieldDef.name;
1010
+ var value = (_a = this.group.customFields) === null || _a === void 0 ? void 0 : _a[key];
1011
+ var control = customFieldsGroup.get(key);
1012
+ if (control) {
1013
+ control.patchValue(value);
1014
+ }
1015
+ }
1016
+ }
1017
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
1018
+ finally {
1019
+ try {
1020
+ if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
1021
+ }
1022
+ finally { if (e_1) throw e_1.error; }
1023
+ }
1024
+ }
1025
+ };
1012
1026
  CustomerGroupDetailDialogComponent.prototype.cancel = function () {
1013
1027
  this.resolveWith();
1014
1028
  };
1015
1029
  CustomerGroupDetailDialogComponent.prototype.save = function () {
1016
- this.resolveWith(this.group.name);
1030
+ this.resolveWith(this.form.value);
1017
1031
  };
1018
1032
  return CustomerGroupDetailDialogComponent;
1019
1033
  }());
1020
1034
  CustomerGroupDetailDialogComponent.decorators = [
1021
1035
  { type: i0.Component, args: [{
1022
1036
  selector: 'vdr-customer-group-detail-dialog',
1023
- template: "<ng-template vdrDialogTitle>\r\n <span *ngIf=\"group.id\">{{ 'customer.update-customer-group' | translate }}</span>\r\n <span *ngIf=\"!group.id\">{{ 'customer.create-customer-group' | translate }}</span>\r\n</ng-template>\r\n\r\n<vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\r\n <input id=\"name\" type=\"text\" [(ngModel)]=\"group.name\" [readonly]=\"!(['CreateCustomerGroup', 'UpdateCustomerGroup'] | hasPermission)\" />\r\n</vdr-form-field>\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]=\"!group.name\" class=\"btn btn-primary\">\r\n <span *ngIf=\"group.id\">{{ 'customer.update-customer-group' | translate }}</span>\r\n <span *ngIf=\"!group.id\">{{ 'customer.create-customer-group' | translate }}</span>\r\n </button>\r\n</ng-template>\r\n",
1037
+ template: "<ng-template vdrDialogTitle>\r\n <span *ngIf=\"group.id\">{{ 'customer.update-customer-group' | translate }}</span>\r\n <span *ngIf=\"!group.id\">{{ 'customer.create-customer-group' | 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]=\"!(['CreateCustomerGroup', 'UpdateCustomerGroup'] | hasPermission)\"\r\n />\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=\"CustomerGroup\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"form.get('customFields')\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n</form>\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"save()\" [disabled]=\"!group.name\" class=\"btn btn-primary\">\r\n <span *ngIf=\"group.id\">{{ 'customer.update-customer-group' | translate }}</span>\r\n <span *ngIf=\"!group.id\">{{ 'customer.create-customer-group' | translate }}</span>\r\n </button>\r\n</ng-template>\r\n",
1024
1038
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1025
1039
  styles: [""]
1026
1040
  },] }
1027
- ];
1041
+ ];
1042
+ CustomerGroupDetailDialogComponent.ctorParameters = function () { return [
1043
+ { type: i2.ServerConfigService },
1044
+ { type: forms.FormBuilder }
1045
+ ]; };
1028
1046
 
1029
1047
  var CustomerGroupListComponent = /** @class */ (function () {
1030
1048
  function CustomerGroupListComponent(dataService, notificationService, modalService, route, router) {
@@ -1080,7 +1098,9 @@
1080
1098
  var _this = this;
1081
1099
  this.modalService
1082
1100
  .fromComponent(CustomerGroupDetailDialogComponent, { locals: { group: { name: '' } } })
1083
- .pipe(operators.switchMap(function (name) { return name ? _this.dataService.customer.createCustomerGroup({ name: name, customerIds: [] }) : rxjs.EMPTY; }),
1101
+ .pipe(operators.switchMap(function (result) { return result
1102
+ ? _this.dataService.customer.createCustomerGroup(Object.assign(Object.assign({}, result), { customerIds: [] }))
1103
+ : rxjs.EMPTY; }),
1084
1104
  // refresh list
1085
1105
  operators.switchMap(function () { return _this.dataService.customer.getCustomerGroupList().single$; }))
1086
1106
  .subscribe(function () {
@@ -1133,7 +1153,9 @@
1133
1153
  var _this = this;
1134
1154
  this.modalService
1135
1155
  .fromComponent(CustomerGroupDetailDialogComponent, { locals: { group: group } })
1136
- .pipe(operators.switchMap(function (name) { return name ? _this.dataService.customer.updateCustomerGroup({ id: group.id, name: name }) : rxjs.EMPTY; }))
1156
+ .pipe(operators.switchMap(function (result) { return result
1157
+ ? _this.dataService.customer.updateCustomerGroup(Object.assign({ id: group.id }, result))
1158
+ : rxjs.EMPTY; }))
1137
1159
  .subscribe(function () {
1138
1160
  _this.notificationService.success(ngxTranslateExtractMarker.marker('common.notify-update-success'), {
1139
1161
  entity: 'CustomerGroup',
@@ -1194,7 +1216,7 @@
1194
1216
  CustomerGroupListComponent.decorators = [
1195
1217
  { type: i0.Component, args: [{
1196
1218
  selector: 'vdr-customer-group-list',
1197
- template: "<vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"customer-group-list\"></vdr-action-bar-items>\r\n <button class=\"btn btn-primary\" *vdrIfPermissions=\"'CreateCustomerGroup'\" (click)=\"create()\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-customer-group' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n<div class=\"group-wrapper\">\r\n <table class=\"table group-list\" [class.expanded]=\"activeGroup$ | async\" *ngIf=\"!(listIsEmpty$ | async); else emptyPlaceholder\">\r\n <tbody>\r\n <tr *ngFor=\"let group of groups$ | async\" [class.active]=\"group.id === (activeGroup$ | async)?.id\">\r\n <td class=\"left align-middle\"><vdr-entity-info [entity]=\"group\"></vdr-entity-info></td>\r\n <td class=\"left align-middle\"><vdr-chip [colorFrom]=\"group.id\">{{ group.name }}</vdr-chip></td>\r\n <td class=\"text-right align-middle\">\r\n <a\r\n class=\"btn btn-link btn-sm\"\r\n [routerLink]=\"['./', { contents: group.id }]\"\r\n queryParamsHandling=\"preserve\"\r\n >\r\n <clr-icon shape=\"view-list\"></clr-icon>\r\n {{ 'customer.view-group-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(group)\">\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(group.id)\"\r\n [disabled]=\"!('DeleteCustomerGroup' | 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 <ng-template #emptyPlaceholder>\r\n <vdr-empty-placeholder></vdr-empty-placeholder>\r\n </ng-template>\r\n <div class=\"group-members\" [class.expanded]=\"activeGroup$ | async\">\r\n <ng-container *ngIf=\"activeGroup$ | async as activeGroup\">\r\n <div class=\"flex\">\r\n <div class=\"header-title-row\">\r\n {{ activeGroup.name }} ({{ membersTotal$ | async }})\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]=\"selectedCustomerIds.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)=\"removeFromGroup(activeGroup, selectedCustomerIds)\"\r\n vdrDropdownItem\r\n [disabled]=\"!('UpdateCustomerGroup' | hasPermission)\"\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'customer.remove-from-group' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n <button class=\"btn btn-secondary btn-sm\" (click)=\"addToGroup(activeGroup)\">\r\n {{ 'customer.add-customers-to-group' | translate: { groupName: activeGroup.name } }}\r\n </button>\r\n </div>\r\n <vdr-customer-group-member-list\r\n [members]=\"members$ | async\"\r\n [route]=\"route\"\r\n [totalItems]=\"membersTotal$ | async\"\r\n [selectedMemberIds]=\"selectedCustomerIds\"\r\n (selectionChange)=\"selectedCustomerIds = $event\"\r\n (fetchParamsChange)=\"fetchGroupMembers$.next($event)\"\r\n ></vdr-customer-group-member-list>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n",
1219
+ template: "<vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"customer-group-list\"></vdr-action-bar-items>\r\n <button class=\"btn btn-primary\" *vdrIfPermissions=\"'CreateCustomerGroup'\" (click)=\"create()\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'customer.create-new-customer-group' | translate }}\r\n </button>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n<div class=\"group-wrapper\">\r\n <div class=\"group-list\">\r\n <table\r\n class=\"table mt0\"\r\n [class.expanded]=\"activeGroup$ | async\"\r\n *ngIf=\"!(listIsEmpty$ | async); else emptyPlaceholder\"\r\n >\r\n <tbody>\r\n <tr\r\n *ngFor=\"let group of groups$ | async\"\r\n [class.active]=\"group.id === (activeGroup$ | async)?.id\"\r\n >\r\n <td class=\"left align-middle\"><vdr-entity-info [entity]=\"group\"></vdr-entity-info></td>\r\n <td class=\"left align-middle\">\r\n <vdr-chip [colorFrom]=\"group.id\">{{ group.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: group.id }]\"\r\n queryParamsHandling=\"preserve\"\r\n >\r\n <clr-icon shape=\"view-list\"></clr-icon>\r\n {{ 'customer.view-group-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(group)\">\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(group.id)\"\r\n [disabled]=\"!('DeleteCustomerGroup' | 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 <ng-template #emptyPlaceholder>\r\n <vdr-empty-placeholder></vdr-empty-placeholder>\r\n </ng-template>\r\n <div class=\"group-members\" [class.expanded]=\"activeGroup$ | async\">\r\n <ng-container *ngIf=\"activeGroup$ | async as activeGroup\">\r\n <div class=\"flex\">\r\n <div class=\"header-title-row\">{{ activeGroup.name }} ({{ membersTotal$ | async }})</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]=\"selectedCustomerIds.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)=\"removeFromGroup(activeGroup, selectedCustomerIds)\"\r\n vdrDropdownItem\r\n [disabled]=\"!('UpdateCustomerGroup' | hasPermission)\"\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'customer.remove-from-group' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n <button class=\"btn btn-secondary btn-sm\" (click)=\"addToGroup(activeGroup)\">\r\n {{ 'customer.add-customers-to-group' | translate: { groupName: activeGroup.name } }}\r\n </button>\r\n </div>\r\n <vdr-customer-group-member-list\r\n [members]=\"members$ | async\"\r\n [route]=\"route\"\r\n [totalItems]=\"membersTotal$ | async\"\r\n [selectedMemberIds]=\"selectedCustomerIds\"\r\n (selectionChange)=\"selectedCustomerIds = $event\"\r\n (fetchParamsChange)=\"fetchGroupMembers$.next($event)\"\r\n ></vdr-customer-group-member-list>\r\n </ng-container>\r\n </div>\r\n</div>\r\n",
1198
1220
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1199
1221
  styles: [".group-wrapper{display:flex;height:calc(100% - 50px)}.group-wrapper .group-list{flex:1;overflow:auto;margin-top:0}.group-wrapper .group-list tr.active{background-color:var(--color-component-bg-200)}.group-wrapper .group-list.expanded{width:calc(100% - 40vw)}.group-members{height:100%;width:0;opacity:0;visibility:hidden;overflow:auto;transition:width .3s,opacity .2s .3s,visibility 0s .3s}.group-members.expanded{width:40vw;visibility:visible;opacity:1;padding-left:12px}.group-members .close-button{margin:0;background:none;border:none;cursor:pointer}.group-members ::ng-deep table.table{margin-top:0}.group-members ::ng-deep table.table th{top:0}.group-members .controls{display:flex;justify-content:space-between}vdr-empty-placeholder{flex:1}\n"]
1200
1222
  },] }