@deenruv/admin-ui 1.0.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 (1175) hide show
  1. package/LICENSE +23 -0
  2. package/catalog/catalog.module.d.ts +43 -0
  3. package/catalog/catalog.routes.d.ts +4 -0
  4. package/catalog/components/apply-facet-dialog/apply-facet-dialog.component.d.ts +16 -0
  5. package/catalog/components/asset-detail/asset-detail.component.d.ts +28 -0
  6. package/catalog/components/asset-list/asset-list.component.d.ts +23 -0
  7. package/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.d.ts +35 -0
  8. package/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.d.ts +40 -0
  9. package/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.graphql.d.ts +4 -0
  10. package/catalog/components/collection-contents/collection-contents.component.d.ts +39 -0
  11. package/catalog/components/collection-data-table/collection-data-table.component.d.ts +80 -0
  12. package/catalog/components/collection-detail/collection-detail.component.d.ts +71 -0
  13. package/catalog/components/collection-list/collection-breadcrumb.pipe.d.ts +11 -0
  14. package/catalog/components/collection-list/collection-list-bulk-actions.d.ts +8 -0
  15. package/catalog/components/collection-list/collection-list.component.d.ts +25 -0
  16. package/catalog/components/collection-tree/array-to-tree.d.ts +19 -0
  17. package/catalog/components/collection-tree/collection-tree-node.component.d.ts +44 -0
  18. package/catalog/components/collection-tree/collection-tree.component.d.ts +22 -0
  19. package/catalog/components/collection-tree/collection-tree.service.d.ts +33 -0
  20. package/catalog/components/collection-tree/collection-tree.types.d.ts +7 -0
  21. package/catalog/components/confirm-variant-deletion-dialog/confirm-variant-deletion-dialog.component.d.ts +10 -0
  22. package/catalog/components/create-facet-value-dialog/create-facet-value-dialog.component.d.ts +19 -0
  23. package/catalog/components/create-product-option-group-dialog/create-product-option-group-dialog.component.d.ts +18 -0
  24. package/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.d.ts +27 -0
  25. package/catalog/components/facet-detail/facet-detail.component.d.ts +76 -0
  26. package/catalog/components/facet-list/facet-list-bulk-actions.d.ts +7 -0
  27. package/catalog/components/facet-list/facet-list.component.d.ts +19 -0
  28. package/catalog/components/generate-product-variants/generate-product-variants.component.d.ts +65 -0
  29. package/catalog/components/move-collections-dialog/move-collections-dialog.component.d.ts +23 -0
  30. package/catalog/components/option-value-input/option-value-input.component.d.ts +48 -0
  31. package/catalog/components/product-detail/product-detail.component.d.ts +75 -0
  32. package/catalog/components/product-list/product-list-bulk-actions.d.ts +7 -0
  33. package/catalog/components/product-list/product-list.component.d.ts +18 -0
  34. package/catalog/components/product-list/product-list.graphql.d.ts +1 -0
  35. package/catalog/components/product-options-editor/product-options-editor.component.d.ts +47 -0
  36. package/catalog/components/product-variant-detail/product-variant-detail.component.d.ts +79 -0
  37. package/catalog/components/product-variant-detail/product-variant-detail.graphql.d.ts +3 -0
  38. package/catalog/components/product-variant-list/product-variant-list-bulk-actions.d.ts +6 -0
  39. package/catalog/components/product-variant-list/product-variant-list.component.d.ts +14 -0
  40. package/catalog/components/product-variant-list/product-variant-list.graphql.d.ts +1 -0
  41. package/catalog/components/product-variant-quick-jump/product-variant-quick-jump.component.d.ts +18 -0
  42. package/catalog/components/product-variants-editor/product-variants-editor.component.d.ts +88 -0
  43. package/catalog/components/product-variants-table/product-variants-table.component.d.ts +55 -0
  44. package/catalog/components/update-product-option-dialog/update-product-option-dialog.component.d.ts +25 -0
  45. package/catalog/components/variant-price-detail/variant-price-detail.component.d.ts +20 -0
  46. package/catalog/components/variant-price-strategy-detail/variant-price-strategy-detail.component.d.ts +10 -0
  47. package/catalog/index.d.ts +5 -0
  48. package/catalog/providers/product-detail/product-detail.service.d.ts +286 -0
  49. package/catalog/providers/product-detail/replace-last.d.ts +6 -0
  50. package/catalog/providers/routing/product-variants-resolver.d.ts +8 -0
  51. package/catalog/public_api.d.ts +48 -0
  52. package/core/app.component.d.ts +19 -0
  53. package/core/app.component.module.d.ts +9 -0
  54. package/core/app.config.d.ts +3 -0
  55. package/core/common/base-detail.component.d.ts +146 -0
  56. package/core/common/base-entity-resolver.d.ts +45 -0
  57. package/core/common/base-list.component.d.ts +138 -0
  58. package/core/common/component-registry-types.d.ts +65 -0
  59. package/core/common/deactivate-aware.d.ts +8 -0
  60. package/core/common/detail-breadcrumb.d.ts +12 -0
  61. package/core/common/generated-types.d.ts +20279 -0
  62. package/core/common/introspection-result-wrapper.d.ts +1 -0
  63. package/core/common/introspection-result.d.ts +7 -0
  64. package/core/common/single-search-selection-model.d.ts +16 -0
  65. package/core/common/title-setter.d.ts +4 -0
  66. package/core/common/utilities/bulk-action-utils.d.ts +49 -0
  67. package/core/common/utilities/configurable-operation-utils.d.ts +48 -0
  68. package/core/common/utilities/create-updated-translatable.d.ts +25 -0
  69. package/core/common/utilities/custom-field-default-value.d.ts +6 -0
  70. package/core/common/utilities/find-translation.d.ts +14 -0
  71. package/core/common/utilities/get-default-ui-language.d.ts +3 -0
  72. package/core/common/utilities/interpolate-description.d.ts +7 -0
  73. package/core/common/utilities/selection-manager.d.ts +30 -0
  74. package/core/common/utilities/string-to-color.d.ts +4 -0
  75. package/core/common/version.d.ts +1 -0
  76. package/core/components/alerts/alerts.component.d.ts +11 -0
  77. package/core/components/app-shell/app-shell.component.d.ts +41 -0
  78. package/core/components/base-nav/base-nav.component.d.ts +30 -0
  79. package/core/components/breadcrumb/breadcrumb.component.d.ts +27 -0
  80. package/core/components/channel-switcher/channel-switcher.component.d.ts +21 -0
  81. package/core/components/main-nav/main-nav.component.d.ts +22 -0
  82. package/core/components/notification/notification.component.d.ts +37 -0
  83. package/core/components/overlay-host/overlay-host.component.d.ts +12 -0
  84. package/core/components/settings-nav/settings-nav.component.d.ts +11 -0
  85. package/core/components/theme-switcher/theme-switcher.component.d.ts +16 -0
  86. package/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.d.ts +30 -0
  87. package/core/components/user-menu/user-menu.component.d.ts +12 -0
  88. package/core/core.module.d.ts +39 -0
  89. package/core/data/check-jobs-link.d.ts +19 -0
  90. package/core/data/client-state/client-defaults.d.ts +32 -0
  91. package/core/data/client-state/client-resolvers.d.ts +12 -0
  92. package/core/data/data.module.d.ts +17 -0
  93. package/core/data/definitions/administrator-definitions.d.ts +14 -0
  94. package/core/data/definitions/auth-definitions.d.ts +4 -0
  95. package/core/data/definitions/client-definitions.d.ts +17 -0
  96. package/core/data/definitions/collection-definitions.d.ts +13 -0
  97. package/core/data/definitions/customer-definitions.d.ts +23 -0
  98. package/core/data/definitions/facet-definitions.d.ts +13 -0
  99. package/core/data/definitions/order-definitions.d.ts +39 -0
  100. package/core/data/definitions/product-definitions.d.ts +49 -0
  101. package/core/data/definitions/promotion-definitions.d.ts +6 -0
  102. package/core/data/definitions/settings-definitions.d.ts +69 -0
  103. package/core/data/definitions/shared-definitions.d.ts +3 -0
  104. package/core/data/definitions/shipping-definitions.d.ts +8 -0
  105. package/core/data/omit-typename-link.d.ts +11 -0
  106. package/core/data/providers/administrator-data.service.d.ts +19 -0
  107. package/core/data/providers/auth-data.service.d.ts +9 -0
  108. package/core/data/providers/base-data.service.d.ts +26 -0
  109. package/core/data/providers/client-data.service.d.ts +26 -0
  110. package/core/data/providers/collection-data.service.d.ts +25 -0
  111. package/core/data/providers/customer-data.service.d.ts +36 -0
  112. package/core/data/providers/data.service.d.ts +86 -0
  113. package/core/data/providers/facet-data.service.d.ts +19 -0
  114. package/core/data/providers/fetch-adapter.d.ts +14 -0
  115. package/core/data/providers/interceptor.d.ts +49 -0
  116. package/core/data/providers/order-data.service.d.ts +48 -0
  117. package/core/data/providers/product-data.service.d.ts +86 -0
  118. package/core/data/providers/promotion-data.service.d.ts +11 -0
  119. package/core/data/providers/settings-data.service.d.ts +74 -0
  120. package/core/data/providers/shipping-method-data.service.d.ts +17 -0
  121. package/core/data/query-result.d.ts +43 -0
  122. package/core/data/server-config.d.ts +39 -0
  123. package/core/data/utils/add-custom-fields.d.ts +7 -0
  124. package/core/data/utils/get-server-location.d.ts +4 -0
  125. package/core/data/utils/is-entity-create-or-update-mutation.d.ts +6 -0
  126. package/core/data/utils/remove-readonly-custom-fields.d.ts +17 -0
  127. package/core/data/utils/transform-relation-custom-field-inputs.d.ts +8 -0
  128. package/core/extension/add-action-bar-dropdown-menu-item.d.ts +25 -0
  129. package/core/extension/add-action-bar-item.d.ts +21 -0
  130. package/core/extension/add-nav-menu-item.d.ts +56 -0
  131. package/core/extension/components/angular-route.component.d.ts +26 -0
  132. package/core/extension/components/route.component.d.ts +20 -0
  133. package/core/extension/providers/page-metadata.service.d.ts +9 -0
  134. package/core/extension/register-alert.d.ts +11 -0
  135. package/core/extension/register-bulk-action.d.ts +49 -0
  136. package/core/extension/register-custom-detail-component.d.ts +55 -0
  137. package/core/extension/register-dashboard-widget.d.ts +17 -0
  138. package/core/extension/register-data-table-component.d.ts +45 -0
  139. package/core/extension/register-form-input-component.d.ts +51 -0
  140. package/core/extension/register-history-entry-component.d.ts +66 -0
  141. package/core/extension/register-page-tab.d.ts +23 -0
  142. package/core/extension/register-route-component.d.ts +109 -0
  143. package/core/extension/types.d.ts +11 -0
  144. package/core/index.d.ts +5 -0
  145. package/core/providers/alerts/alerts.service.d.ts +150 -0
  146. package/core/providers/auth/auth.service.d.ts +40 -0
  147. package/core/providers/breadcrumb/breadcrumb.service.d.ts +39 -0
  148. package/core/providers/bulk-action-registry/bulk-action-registry.service.d.ts +9 -0
  149. package/core/providers/bulk-action-registry/bulk-action-types.d.ts +149 -0
  150. package/core/providers/channel/channel.service.d.ts +16 -0
  151. package/core/providers/component-registry/component-registry.service.d.ts +13 -0
  152. package/core/providers/currency/currency.service.d.ts +10 -0
  153. package/core/providers/custom-detail-component/custom-detail-component-types.d.ts +26 -0
  154. package/core/providers/custom-detail-component/custom-detail-component.service.d.ts +9 -0
  155. package/core/providers/custom-field-component/custom-field-component.service.d.ts +25 -0
  156. package/core/providers/custom-history-entry-component/history-entry-component-types.d.ts +81 -0
  157. package/core/providers/custom-history-entry-component/history-entry-component.service.d.ts +10 -0
  158. package/core/providers/dashboard-widget/dashboard-widget-types.d.ts +56 -0
  159. package/core/providers/dashboard-widget/dashboard-widget.service.d.ts +24 -0
  160. package/core/providers/data-table/data-table-filter-collection.d.ts +48 -0
  161. package/core/providers/data-table/data-table-filter.d.ts +108 -0
  162. package/core/providers/data-table/data-table-sort-collection.d.ts +24 -0
  163. package/core/providers/data-table/data-table-sort.d.ts +14 -0
  164. package/core/providers/guard/auth.guard.d.ts +17 -0
  165. package/core/providers/health-check/health-check.service.d.ts +40 -0
  166. package/core/providers/i18n/custom-http-loader.d.ts +21 -0
  167. package/core/providers/i18n/custom-message-format-compiler.d.ts +15 -0
  168. package/core/providers/i18n/i18n.service.d.ts +39 -0
  169. package/core/providers/job-queue/job-queue.service.d.ts +22 -0
  170. package/core/providers/local-storage/local-storage.service.d.ts +66 -0
  171. package/core/providers/localization/localization.service.d.ts +21 -0
  172. package/core/providers/modal/modal.service.d.ts +67 -0
  173. package/core/providers/modal/modal.types.d.ts +69 -0
  174. package/core/providers/nav-builder/nav-builder-types.d.ts +279 -0
  175. package/core/providers/nav-builder/nav-builder.service.d.ts +64 -0
  176. package/core/providers/notification/notification.service.d.ts +105 -0
  177. package/core/providers/overlay-host/overlay-host.service.d.ts +25 -0
  178. package/core/providers/page/page.service.d.ts +61 -0
  179. package/core/providers/permissions/permissions.service.d.ts +26 -0
  180. package/core/public_api.d.ts +313 -0
  181. package/core/shared/components/action-bar/action-bar.component.d.ts +17 -0
  182. package/core/shared/components/action-bar-dropdown-menu/action-bar-dropdown-menu.component.d.ts +15 -0
  183. package/core/shared/components/action-bar-items/action-bar-base.component.d.ts +29 -0
  184. package/core/shared/components/action-bar-items/action-bar-items.component.d.ts +11 -0
  185. package/core/shared/components/address-form/address-form.component.d.ts +10 -0
  186. package/core/shared/components/affixed-input/affixed-input.component.d.ts +10 -0
  187. package/core/shared/components/affixed-input/percentage-suffix-input.component.d.ts +22 -0
  188. package/core/shared/components/asset-file-input/asset-file-input.component.d.ts +39 -0
  189. package/core/shared/components/asset-gallery/asset-gallery.component.d.ts +97 -0
  190. package/core/shared/components/asset-gallery/asset-gallery.types.d.ts +3 -0
  191. package/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.d.ts +60 -0
  192. package/core/shared/components/asset-preview/asset-preview.component.d.ts +61 -0
  193. package/core/shared/components/asset-preview-dialog/asset-preview-dialog.component.d.ts +22 -0
  194. package/core/shared/components/asset-preview-links/asset-preview-links.component.d.ts +8 -0
  195. package/core/shared/components/asset-search-input/asset-search-input.component.d.ts +26 -0
  196. package/core/shared/components/assets/assets.component.d.ts +36 -0
  197. package/core/shared/components/assign-to-channel-dialog/assign-to-channel-dialog.component.d.ts +28 -0
  198. package/core/shared/components/bulk-action-menu/bulk-action-menu.component.d.ts +34 -0
  199. package/core/shared/components/card/card.component.d.ts +13 -0
  200. package/core/shared/components/channel-assignment-control/channel-assignment-control.component.d.ts +32 -0
  201. package/core/shared/components/channel-badge/channel-badge.component.d.ts +7 -0
  202. package/core/shared/components/chart/chart.component.d.ts +28 -0
  203. package/core/shared/components/chart/tooltip-plugin.d.ts +21 -0
  204. package/core/shared/components/chip/chip.component.d.ts +38 -0
  205. package/core/shared/components/configurable-input/configurable-input.component.d.ts +43 -0
  206. package/core/shared/components/currency-code-selector/currency-code-selector.component.d.ts +21 -0
  207. package/core/shared/components/currency-input/currency-input.component.d.ts +53 -0
  208. package/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.d.ts +20 -0
  209. package/core/shared/components/custom-field-control/custom-field-control.component.d.ts +31 -0
  210. package/core/shared/components/customer-label/customer-label.component.d.ts +7 -0
  211. package/core/shared/components/data-table/data-table-column.component.d.ts +11 -0
  212. package/core/shared/components/data-table/data-table.component.d.ts +107 -0
  213. package/core/shared/components/data-table-2/data-table-column.component.d.ts +25 -0
  214. package/core/shared/components/data-table-2/data-table-custom-component.service.d.ts +52 -0
  215. package/core/shared/components/data-table-2/data-table-custom-field-column.component.d.ts +18 -0
  216. package/core/shared/components/data-table-2/data-table-search.component.d.ts +10 -0
  217. package/core/shared/components/data-table-2/data-table2.component.d.ts +134 -0
  218. package/core/shared/components/data-table-column-picker/data-table-column-picker.component.d.ts +19 -0
  219. package/core/shared/components/data-table-filter-label/data-table-filter-label.component.d.ts +11 -0
  220. package/core/shared/components/data-table-filter-presets/add-filter-preset-button.component.d.ts +25 -0
  221. package/core/shared/components/data-table-filter-presets/data-table-filter-presets.component.d.ts +30 -0
  222. package/core/shared/components/data-table-filter-presets/filter-preset.service.d.ts +34 -0
  223. package/core/shared/components/data-table-filter-presets/rename-filter-preset-dialog.component.d.ts +9 -0
  224. package/core/shared/components/data-table-filters/custom-filter-component.directive.d.ts +8 -0
  225. package/core/shared/components/data-table-filters/data-table-filters.component.d.ts +30 -0
  226. package/core/shared/components/datetime-picker/constants.d.ts +5 -0
  227. package/core/shared/components/datetime-picker/datetime-picker.component.d.ts +100 -0
  228. package/core/shared/components/datetime-picker/datetime-picker.service.d.ts +37 -0
  229. package/core/shared/components/datetime-picker/types.d.ts +11 -0
  230. package/core/shared/components/dropdown/dropdown-item.directive.d.ts +9 -0
  231. package/core/shared/components/dropdown/dropdown-menu.component.d.ts +42 -0
  232. package/core/shared/components/dropdown/dropdown-trigger.directive.d.ts +11 -0
  233. package/core/shared/components/dropdown/dropdown.component.d.ts +39 -0
  234. package/core/shared/components/duplicate-entity-dialog/duplicate-entity-dialog.component.d.ts +33 -0
  235. package/core/shared/components/duplicate-entity-dialog/duplicate-entity-dialog.graphql.d.ts +2 -0
  236. package/core/shared/components/edit-note-dialog/edit-note-dialog.component.d.ts +18 -0
  237. package/core/shared/components/empty-placeholder/empty-placeholder.component.d.ts +6 -0
  238. package/core/shared/components/entity-info/entity-info.component.d.ts +11 -0
  239. package/core/shared/components/extension-host/extension-host-config.d.ts +9 -0
  240. package/core/shared/components/extension-host/extension-host.component.d.ts +28 -0
  241. package/core/shared/components/extension-host/extension-host.service.d.ts +23 -0
  242. package/core/shared/components/extension-host/host-external-frame.d.ts +28 -0
  243. package/core/shared/components/facet-value-chip/facet-value-chip.component.d.ts +11 -0
  244. package/core/shared/components/facet-value-selector/facet-value-selector.component.d.ts +49 -0
  245. package/core/shared/components/focal-point-control/focal-point-control.component.d.ts +24 -0
  246. package/core/shared/components/form-field/form-field-control.directive.d.ts +15 -0
  247. package/core/shared/components/form-field/form-field.component.d.ts +32 -0
  248. package/core/shared/components/form-item/form-item.component.d.ts +11 -0
  249. package/core/shared/components/formatted-address/formatted-address.component.d.ts +13 -0
  250. package/core/shared/components/help-tooltip/help-tooltip.component.d.ts +7 -0
  251. package/core/shared/components/history-entry-detail/history-entry-detail.component.d.ts +5 -0
  252. package/core/shared/components/items-per-page-controls/items-per-page-controls.component.d.ts +11 -0
  253. package/core/shared/components/labeled-data/labeled-data.component.d.ts +6 -0
  254. package/core/shared/components/language-code-selector/language-code-selector.component.d.ts +20 -0
  255. package/core/shared/components/language-selector/language-selector.component.d.ts +11 -0
  256. package/core/shared/components/localized-text/localized-text.component.d.ts +13 -0
  257. package/core/shared/components/manage-tags-dialog/manage-tags-dialog.component.d.ts +24 -0
  258. package/core/shared/components/modal-dialog/dialog-buttons.directive.d.ts +14 -0
  259. package/core/shared/components/modal-dialog/dialog-component-outlet.component.d.ts +14 -0
  260. package/core/shared/components/modal-dialog/dialog-title.directive.d.ts +14 -0
  261. package/core/shared/components/modal-dialog/modal-dialog.component.d.ts +44 -0
  262. package/core/shared/components/object-tree/object-tree.component.d.ts +32 -0
  263. package/core/shared/components/order-state-label/order-state-label.component.d.ts +17 -0
  264. package/core/shared/components/page/page.component.d.ts +21 -0
  265. package/core/shared/components/page-block/page-block.component.d.ts +5 -0
  266. package/core/shared/components/page-body/page-body.component.d.ts +5 -0
  267. package/core/shared/components/page-detail-layout/page-detail-layout.component.d.ts +5 -0
  268. package/core/shared/components/page-detail-layout/page-detail-sidebar.component.d.ts +5 -0
  269. package/core/shared/components/page-entity-info/page-entity-info.component.d.ts +10 -0
  270. package/core/shared/components/page-header/page-header.component.d.ts +5 -0
  271. package/core/shared/components/page-header-description/page-header-description.component.d.ts +5 -0
  272. package/core/shared/components/page-header-tabs/page-header-tabs.component.d.ts +14 -0
  273. package/core/shared/components/page-title/page-title.component.d.ts +16 -0
  274. package/core/shared/components/pagination-controls/pagination-controls.component.d.ts +11 -0
  275. package/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.d.ts +38 -0
  276. package/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.graphql.d.ts +1 -0
  277. package/core/shared/components/product-search-input/product-search-input.component.d.ts +28 -0
  278. package/core/shared/components/product-variant-selector/product-variant-selector.component.d.ts +58 -0
  279. package/core/shared/components/radio-card/radio-card-fieldset.component.d.ts +24 -0
  280. package/core/shared/components/radio-card/radio-card.component.d.ts +22 -0
  281. package/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.d.ts +21 -0
  282. package/core/shared/components/rich-text-editor/link-dialog/link-dialog.component.d.ts +19 -0
  283. package/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.d.ts +31 -0
  284. package/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.d.ts +34 -0
  285. package/core/shared/components/rich-text-editor/prosemirror/custom-nodes.d.ts +5 -0
  286. package/core/shared/components/rich-text-editor/prosemirror/inputrules.d.ts +8 -0
  287. package/core/shared/components/rich-text-editor/prosemirror/keymap.d.ts +3 -0
  288. package/core/shared/components/rich-text-editor/prosemirror/menu/links.d.ts +4 -0
  289. package/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.d.ts +16 -0
  290. package/core/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.d.ts +9 -0
  291. package/core/shared/components/rich-text-editor/prosemirror/menu/menu.d.ts +3 -0
  292. package/core/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.d.ts +14 -0
  293. package/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.d.ts +7 -0
  294. package/core/shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin.d.ts +5 -0
  295. package/core/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.d.ts +7 -0
  296. package/core/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.d.ts +13 -0
  297. package/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.d.ts +34 -0
  298. package/core/shared/components/rich-text-editor/prosemirror/types.d.ts +9 -0
  299. package/core/shared/components/rich-text-editor/prosemirror/utils.d.ts +9 -0
  300. package/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.d.ts +21 -0
  301. package/core/shared/components/rich-text-editor/rich-text-editor.component.d.ts +42 -0
  302. package/core/shared/components/select-toggle/select-toggle.component.d.ts +15 -0
  303. package/core/shared/components/simple-dialog/simple-dialog.component.d.ts +14 -0
  304. package/core/shared/components/split-view/split-view.component.d.ts +23 -0
  305. package/core/shared/components/split-view/split-view.directive.d.ts +13 -0
  306. package/core/shared/components/status-badge/status-badge.component.d.ts +6 -0
  307. package/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.d.ts +25 -0
  308. package/core/shared/components/table-row-action/table-row-action.component.d.ts +12 -0
  309. package/core/shared/components/tag-selector/tag-selector.component.d.ts +24 -0
  310. package/core/shared/components/timeline-entry/timeline-entry.component.d.ts +19 -0
  311. package/core/shared/components/title-input/title-input.component.d.ts +6 -0
  312. package/core/shared/components/ui-extension-point/ui-extension-point.component.d.ts +27 -0
  313. package/core/shared/components/zone-selector/zone-selector.component.d.ts +51 -0
  314. package/core/shared/directives/disabled.directive.d.ts +14 -0
  315. package/core/shared/directives/if-default-channel-active.directive.d.ts +16 -0
  316. package/core/shared/directives/if-directive-base.d.ts +27 -0
  317. package/core/shared/directives/if-multichannel.directive.d.ts +28 -0
  318. package/core/shared/directives/if-permissions.directive.d.ts +37 -0
  319. package/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.d.ts +19 -0
  320. package/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.d.ts +30 -0
  321. package/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.d.ts +22 -0
  322. package/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.d.ts +23 -0
  323. package/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.d.ts +28 -0
  324. package/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.d.ts +25 -0
  325. package/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.d.ts +33 -0
  326. package/core/shared/dynamic-form-inputs/date-form-input/date-form-input.component.d.ts +22 -0
  327. package/core/shared/dynamic-form-inputs/default-form-inputs.d.ts +19 -0
  328. package/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.d.ts +58 -0
  329. package/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.d.ts +23 -0
  330. package/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.d.ts +24 -0
  331. package/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.d.ts +19 -0
  332. package/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.d.ts +25 -0
  333. package/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.d.ts +34 -0
  334. package/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.d.ts +23 -0
  335. package/core/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.d.ts +25 -0
  336. package/core/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.d.ts +18 -0
  337. package/core/shared/dynamic-form-inputs/relation-form-input/product/relation-product-input.component.d.ts +26 -0
  338. package/core/shared/dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component.d.ts +26 -0
  339. package/core/shared/dynamic-form-inputs/relation-form-input/relation-card/relation-card.component.d.ts +23 -0
  340. package/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.d.ts +22 -0
  341. package/core/shared/dynamic-form-inputs/relation-form-input/relation-selector-dialog/relation-selector-dialog.component.d.ts +10 -0
  342. package/core/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.d.ts +19 -0
  343. package/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.d.ts +30 -0
  344. package/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.d.ts +21 -0
  345. package/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.d.ts +20 -0
  346. package/core/shared/pipes/asset-preview.pipe.d.ts +22 -0
  347. package/core/shared/pipes/channel-label.pipe.d.ts +7 -0
  348. package/core/shared/pipes/custom-field-description.pipe.d.ts +11 -0
  349. package/core/shared/pipes/custom-field-label.pipe.d.ts +13 -0
  350. package/core/shared/pipes/duration.pipe.d.ts +22 -0
  351. package/core/shared/pipes/file-size.pipe.d.ts +18 -0
  352. package/core/shared/pipes/has-permission.pipe.d.ts +27 -0
  353. package/core/shared/pipes/locale-base.pipe.d.ts +21 -0
  354. package/core/shared/pipes/locale-currency-name.pipe.d.ts +21 -0
  355. package/core/shared/pipes/locale-currency.pipe.d.ts +25 -0
  356. package/core/shared/pipes/locale-date.pipe.d.ts +23 -0
  357. package/core/shared/pipes/locale-language-name.pipe.d.ts +21 -0
  358. package/core/shared/pipes/locale-region-name.pipe.d.ts +21 -0
  359. package/core/shared/pipes/sentence-case.pipe.d.ts +10 -0
  360. package/core/shared/pipes/sort.pipe.d.ts +12 -0
  361. package/core/shared/pipes/state-i18n-token.pipe.d.ts +9 -0
  362. package/core/shared/pipes/string-to-color.pipe.d.ts +7 -0
  363. package/core/shared/pipes/time-ago.pipe.d.ts +21 -0
  364. package/core/shared/providers/routing/can-deactivate-detail-guard.d.ts +11 -0
  365. package/core/shared/shared.module.d.ts +168 -0
  366. package/core/validators/unicode-pattern.validator.d.ts +2 -0
  367. package/customer/components/add-customer-to-group-dialog/add-customer-to-group-dialog.component.d.ts +22 -0
  368. package/customer/components/address-card/address-card.component.d.ts +28 -0
  369. package/customer/components/address-detail-dialog/address-detail-dialog.component.d.ts +17 -0
  370. package/customer/components/customer-detail/customer-detail.component.d.ts +70 -0
  371. package/customer/components/customer-group-detail/customer-group-detail.component.d.ts +26 -0
  372. package/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.d.ts +24 -0
  373. package/customer/components/customer-group-list/customer-group-list-bulk-actions.d.ts +1 -0
  374. package/customer/components/customer-group-list/customer-group-list.component.d.ts +29 -0
  375. package/customer/components/customer-group-member-list/customer-group-member-list-bulk-actions.d.ts +3 -0
  376. package/customer/components/customer-group-member-list/customer-group-member-list.component.d.ts +39 -0
  377. package/customer/components/customer-history/customer-history-entry-host.component.d.ts +18 -0
  378. package/customer/components/customer-history/customer-history.component.d.ts +51 -0
  379. package/customer/components/customer-list/customer-list-bulk-actions.d.ts +1 -0
  380. package/customer/components/customer-list/customer-list.component.d.ts +12 -0
  381. package/customer/components/customer-status-label/customer-status-label.component.d.ts +7 -0
  382. package/customer/components/select-customer-group-dialog/select-customer-group-dialog.component.d.ts +16 -0
  383. package/customer/customer.module.d.ts +24 -0
  384. package/customer/customer.routes.d.ts +4 -0
  385. package/customer/index.d.ts +5 -0
  386. package/customer/public_api.d.ts +18 -0
  387. package/dashboard/components/dashboard/dashboard.component.d.ts +34 -0
  388. package/dashboard/components/dashboard-widget/dashboard-widget.component.d.ts +13 -0
  389. package/dashboard/dashboard.module.d.ts +13 -0
  390. package/dashboard/dashboard.routes.d.ts +2 -0
  391. package/dashboard/default-widgets.d.ts +5 -0
  392. package/dashboard/index.d.ts +5 -0
  393. package/dashboard/public_api.d.ts +10 -0
  394. package/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.d.ts +18 -0
  395. package/dashboard/widgets/order-chart-widget/order-chart-widget.component.d.ts +17 -0
  396. package/dashboard/widgets/order-summary-widget/order-summary-widget.component.d.ts +32 -0
  397. package/dashboard/widgets/test-widget/test-widget.component.d.ts +10 -0
  398. package/dashboard/widgets/welcome-widget/welcome-widget.component.d.ts +22 -0
  399. package/esm2022/catalog/catalog.module.mjs +331 -0
  400. package/esm2022/catalog/catalog.routes.mjs +144 -0
  401. package/esm2022/catalog/components/apply-facet-dialog/apply-facet-dialog.component.mjs +30 -0
  402. package/esm2022/catalog/components/asset-detail/asset-detail.component.mjs +77 -0
  403. package/esm2022/catalog/components/asset-list/asset-list.component.mjs +120 -0
  404. package/esm2022/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.mjs +102 -0
  405. package/esm2022/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.mjs +83 -0
  406. package/esm2022/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.graphql.mjs +69 -0
  407. package/esm2022/catalog/components/collection-contents/collection-contents.component.mjs +124 -0
  408. package/esm2022/catalog/components/collection-data-table/collection-data-table.component.mjs +95 -0
  409. package/esm2022/catalog/components/collection-detail/collection-detail.component.mjs +263 -0
  410. package/esm2022/catalog/components/collection-list/collection-breadcrumb.pipe.mjs +19 -0
  411. package/esm2022/catalog/components/collection-list/collection-list-bulk-actions.mjs +97 -0
  412. package/esm2022/catalog/components/collection-list/collection-list.component.mjs +157 -0
  413. package/esm2022/catalog/components/collection-tree/array-to-tree.mjs +56 -0
  414. package/esm2022/catalog/components/collection-tree/collection-tree-node.component.mjs +125 -0
  415. package/esm2022/catalog/components/collection-tree/collection-tree.component.mjs +49 -0
  416. package/esm2022/catalog/components/collection-tree/collection-tree.service.mjs +68 -0
  417. package/esm2022/catalog/components/collection-tree/collection-tree.types.mjs +2 -0
  418. package/esm2022/catalog/components/confirm-variant-deletion-dialog/confirm-variant-deletion-dialog.component.mjs +23 -0
  419. package/esm2022/catalog/components/create-facet-value-dialog/create-facet-value-dialog.component.mjs +44 -0
  420. package/esm2022/catalog/components/create-product-option-group-dialog/create-product-option-group-dialog.component.mjs +44 -0
  421. package/esm2022/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.mjs +80 -0
  422. package/esm2022/catalog/components/facet-detail/facet-detail.component.mjs +338 -0
  423. package/esm2022/catalog/components/facet-list/facet-list-bulk-actions.mjs +148 -0
  424. package/esm2022/catalog/components/facet-list/facet-list.component.mjs +91 -0
  425. package/esm2022/catalog/components/generate-product-variants/generate-product-variants.component.mjs +133 -0
  426. package/esm2022/catalog/components/move-collections-dialog/move-collections-dialog.component.mjs +100 -0
  427. package/esm2022/catalog/components/option-value-input/option-value-input.component.mjs +156 -0
  428. package/esm2022/catalog/components/product-detail/product-detail.component.mjs +321 -0
  429. package/esm2022/catalog/components/product-list/product-list-bulk-actions.mjs +144 -0
  430. package/esm2022/catalog/components/product-list/product-list.component.mjs +159 -0
  431. package/esm2022/catalog/components/product-list/product-list.graphql.mjs +37 -0
  432. package/esm2022/catalog/components/product-options-editor/product-options-editor.component.mjs +207 -0
  433. package/esm2022/catalog/components/product-variant-detail/product-variant-detail.component.mjs +266 -0
  434. package/esm2022/catalog/components/product-variant-detail/product-variant-detail.graphql.mjs +129 -0
  435. package/esm2022/catalog/components/product-variant-list/product-variant-list-bulk-actions.mjs +123 -0
  436. package/esm2022/catalog/components/product-variant-list/product-variant-list.component.mjs +118 -0
  437. package/esm2022/catalog/components/product-variant-list/product-variant-list.graphql.mjs +51 -0
  438. package/esm2022/catalog/components/product-variant-quick-jump/product-variant-quick-jump.component.mjs +53 -0
  439. package/esm2022/catalog/components/product-variants-editor/product-variants-editor.component.mjs +292 -0
  440. package/esm2022/catalog/components/product-variants-table/product-variants-table.component.mjs +72 -0
  441. package/esm2022/catalog/components/update-product-option-dialog/update-product-option-dialog.component.mjs +64 -0
  442. package/esm2022/catalog/components/variant-price-detail/variant-price-detail.component.mjs +59 -0
  443. package/esm2022/catalog/components/variant-price-strategy-detail/variant-price-strategy-detail.component.mjs +33 -0
  444. package/esm2022/catalog/deenruv-admin-ui-catalog.mjs +5 -0
  445. package/esm2022/catalog/providers/product-detail/product-detail.service.mjs +236 -0
  446. package/esm2022/catalog/providers/product-detail/replace-last.mjs +18 -0
  447. package/esm2022/catalog/providers/routing/product-variants-resolver.mjs +28 -0
  448. package/esm2022/catalog/public_api.mjs +50 -0
  449. package/esm2022/core/app.component.mjs +94 -0
  450. package/esm2022/core/app.component.module.mjs +19 -0
  451. package/esm2022/core/app.config.mjs +11 -0
  452. package/esm2022/core/common/base-detail.component.mjs +208 -0
  453. package/esm2022/core/common/base-entity-resolver.mjs +60 -0
  454. package/esm2022/core/common/base-list.component.mjs +186 -0
  455. package/esm2022/core/common/component-registry-types.mjs +2 -0
  456. package/esm2022/core/common/deactivate-aware.mjs +2 -0
  457. package/esm2022/core/common/detail-breadcrumb.mjs +26 -0
  458. package/esm2022/core/common/generated-types.mjs +1371 -0
  459. package/esm2022/core/common/introspection-result-wrapper.mjs +3 -0
  460. package/esm2022/core/common/introspection-result.mjs +329 -0
  461. package/esm2022/core/common/single-search-selection-model.mjs +51 -0
  462. package/esm2022/core/common/title-setter.mjs +14 -0
  463. package/esm2022/core/common/utilities/bulk-action-utils.mjs +271 -0
  464. package/esm2022/core/common/utilities/configurable-operation-utils.mjs +116 -0
  465. package/esm2022/core/common/utilities/create-updated-translatable.mjs +58 -0
  466. package/esm2022/core/common/utilities/custom-field-default-value.mjs +28 -0
  467. package/esm2022/core/common/utilities/find-translation.mjs +9 -0
  468. package/esm2022/core/common/utilities/get-default-ui-language.mjs +12 -0
  469. package/esm2022/core/common/utilities/interpolate-description.mjs +27 -0
  470. package/esm2022/core/common/utilities/selection-manager.mjs +96 -0
  471. package/esm2022/core/common/utilities/string-to-color.mjs +36 -0
  472. package/esm2022/core/common/version.mjs +3 -0
  473. package/esm2022/core/components/alerts/alerts.component.mjs +26 -0
  474. package/esm2022/core/components/app-shell/app-shell.component.mjs +104 -0
  475. package/esm2022/core/components/base-nav/base-nav.component.mjs +298 -0
  476. package/esm2022/core/components/breadcrumb/breadcrumb.component.mjs +33 -0
  477. package/esm2022/core/components/channel-switcher/channel-switcher.component.mjs +50 -0
  478. package/esm2022/core/components/main-nav/main-nav.component.mjs +62 -0
  479. package/esm2022/core/components/notification/notification.component.mjs +85 -0
  480. package/esm2022/core/components/overlay-host/overlay-host.component.mjs +22 -0
  481. package/esm2022/core/components/settings-nav/settings-nav.component.mjs +27 -0
  482. package/esm2022/core/components/theme-switcher/theme-switcher.component.mjs +39 -0
  483. package/esm2022/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.mjs +75 -0
  484. package/esm2022/core/components/user-menu/user-menu.component.mjs +37 -0
  485. package/esm2022/core/core.module.mjs +165 -0
  486. package/esm2022/core/data/check-jobs-link.mjs +32 -0
  487. package/esm2022/core/data/client-state/client-defaults.mjs +33 -0
  488. package/esm2022/core/data/client-state/client-resolvers.mjs +136 -0
  489. package/esm2022/core/data/data.module.mjs +135 -0
  490. package/esm2022/core/data/definitions/administrator-definitions.mjs +135 -0
  491. package/esm2022/core/data/definitions/auth-definitions.mjs +40 -0
  492. package/esm2022/core/data/definitions/client-definitions.mjs +137 -0
  493. package/esm2022/core/data/definitions/collection-definitions.mjs +184 -0
  494. package/esm2022/core/data/definitions/customer-definitions.mjs +261 -0
  495. package/esm2022/core/data/definitions/facet-definitions.mjs +155 -0
  496. package/esm2022/core/data/definitions/order-definitions.mjs +594 -0
  497. package/esm2022/core/data/definitions/product-definitions.mjs +828 -0
  498. package/esm2022/core/data/definitions/promotion-definitions.mjs +76 -0
  499. package/esm2022/core/data/definitions/settings-definitions.mjs +735 -0
  500. package/esm2022/core/data/definitions/shared-definitions.mjs +33 -0
  501. package/esm2022/core/data/definitions/shipping-definitions.mjs +98 -0
  502. package/esm2022/core/data/omit-typename-link.mjs +20 -0
  503. package/esm2022/core/data/providers/administrator-data.service.mjs +53 -0
  504. package/esm2022/core/data/providers/auth-data.service.mjs +20 -0
  505. package/esm2022/core/data/providers/base-data.service.mjs +66 -0
  506. package/esm2022/core/data/providers/client-data.service.mjs +82 -0
  507. package/esm2022/core/data/providers/collection-data.service.mjs +84 -0
  508. package/esm2022/core/data/providers/customer-data.service.mjs +125 -0
  509. package/esm2022/core/data/providers/data.service.mjs +90 -0
  510. package/esm2022/core/data/providers/facet-data.service.mjs +63 -0
  511. package/esm2022/core/data/providers/fetch-adapter.mjs +34 -0
  512. package/esm2022/core/data/providers/interceptor.mjs +162 -0
  513. package/esm2022/core/data/providers/order-data.service.mjs +135 -0
  514. package/esm2022/core/data/providers/product-data.service.mjs +257 -0
  515. package/esm2022/core/data/providers/promotion-data.service.mjs +50 -0
  516. package/esm2022/core/data/providers/settings-data.service.mjs +246 -0
  517. package/esm2022/core/data/providers/shipping-method-data.service.mjs +58 -0
  518. package/esm2022/core/data/query-result.mjs +77 -0
  519. package/esm2022/core/data/server-config.mjs +78 -0
  520. package/esm2022/core/data/utils/add-custom-fields.mjs +84 -0
  521. package/esm2022/core/data/utils/get-server-location.mjs +17 -0
  522. package/esm2022/core/data/utils/is-entity-create-or-update-mutation.mjs +45 -0
  523. package/esm2022/core/data/utils/remove-readonly-custom-fields.mjs +30 -0
  524. package/esm2022/core/data/utils/transform-relation-custom-field-inputs.mjs +46 -0
  525. package/esm2022/core/deenruv-admin-ui-core.mjs +5 -0
  526. package/esm2022/core/extension/add-action-bar-dropdown-menu-item.mjs +35 -0
  527. package/esm2022/core/extension/add-action-bar-item.mjs +31 -0
  528. package/esm2022/core/extension/add-nav-menu-item.mjs +75 -0
  529. package/esm2022/core/extension/components/angular-route.component.mjs +67 -0
  530. package/esm2022/core/extension/components/route.component.mjs +80 -0
  531. package/esm2022/core/extension/providers/page-metadata.service.mjs +20 -0
  532. package/esm2022/core/extension/register-alert.mjs +22 -0
  533. package/esm2022/core/extension/register-bulk-action.mjs +59 -0
  534. package/esm2022/core/extension/register-custom-detail-component.mjs +65 -0
  535. package/esm2022/core/extension/register-dashboard-widget.mjs +36 -0
  536. package/esm2022/core/extension/register-data-table-component.mjs +51 -0
  537. package/esm2022/core/extension/register-form-input-component.mjs +61 -0
  538. package/esm2022/core/extension/register-history-entry-component.mjs +76 -0
  539. package/esm2022/core/extension/register-page-tab.mjs +36 -0
  540. package/esm2022/core/extension/register-route-component.mjs +95 -0
  541. package/esm2022/core/extension/types.mjs +2 -0
  542. package/esm2022/core/providers/alerts/alerts.service.mjs +114 -0
  543. package/esm2022/core/providers/auth/auth.service.mjs +124 -0
  544. package/esm2022/core/providers/breadcrumb/breadcrumb.service.mjs +109 -0
  545. package/esm2022/core/providers/bulk-action-registry/bulk-action-registry.service.mjs +28 -0
  546. package/esm2022/core/providers/bulk-action-registry/bulk-action-types.mjs +2 -0
  547. package/esm2022/core/providers/channel/channel.service.mjs +39 -0
  548. package/esm2022/core/providers/component-registry/component-registry.service.mjs +25 -0
  549. package/esm2022/core/providers/currency/currency.service.mjs +21 -0
  550. package/esm2022/core/providers/custom-detail-component/custom-detail-component-types.mjs +2 -0
  551. package/esm2022/core/providers/custom-detail-component/custom-detail-component.service.mjs +27 -0
  552. package/esm2022/core/providers/custom-field-component/custom-field-component.service.mjs +38 -0
  553. package/esm2022/core/providers/custom-history-entry-component/history-entry-component-types.mjs +2 -0
  554. package/esm2022/core/providers/custom-history-entry-component/history-entry-component.service.mjs +22 -0
  555. package/esm2022/core/providers/dashboard-widget/dashboard-widget-types.mjs +2 -0
  556. package/esm2022/core/providers/dashboard-widget/dashboard-widget.service.mjs +91 -0
  557. package/esm2022/core/providers/data-table/data-table-filter-collection.mjs +295 -0
  558. package/esm2022/core/providers/data-table/data-table-filter.mjs +114 -0
  559. package/esm2022/core/providers/data-table/data-table-sort-collection.mjs +115 -0
  560. package/esm2022/core/providers/data-table/data-table-sort.mjs +34 -0
  561. package/esm2022/core/providers/guard/auth.guard.mjs +38 -0
  562. package/esm2022/core/providers/health-check/health-check.service.mjs +34 -0
  563. package/esm2022/core/providers/i18n/custom-http-loader.mjs +39 -0
  564. package/esm2022/core/providers/i18n/custom-message-format-compiler.mjs +31 -0
  565. package/esm2022/core/providers/i18n/i18n.service.mjs +78 -0
  566. package/esm2022/core/providers/job-queue/job-queue.service.mjs +91 -0
  567. package/esm2022/core/providers/local-storage/local-storage.service.mjs +97 -0
  568. package/esm2022/core/providers/localization/localization.service.mjs +31 -0
  569. package/esm2022/core/providers/modal/modal.service.mjs +96 -0
  570. package/esm2022/core/providers/modal/modal.types.mjs +2 -0
  571. package/esm2022/core/providers/nav-builder/nav-builder-types.mjs +2 -0
  572. package/esm2022/core/providers/nav-builder/nav-builder.service.mjs +174 -0
  573. package/esm2022/core/providers/notification/notification.service.mjs +157 -0
  574. package/esm2022/core/providers/overlay-host/overlay-host.service.mjs +48 -0
  575. package/esm2022/core/providers/page/page.service.mjs +63 -0
  576. package/esm2022/core/providers/permissions/permissions.service.mjs +46 -0
  577. package/esm2022/core/public_api.mjs +315 -0
  578. package/esm2022/core/shared/components/action-bar/action-bar.component.mjs +54 -0
  579. package/esm2022/core/shared/components/action-bar-dropdown-menu/action-bar-dropdown-menu.component.mjs +69 -0
  580. package/esm2022/core/shared/components/action-bar-items/action-bar-base.component.mjs +72 -0
  581. package/esm2022/core/shared/components/action-bar-items/action-bar-items.component.mjs +50 -0
  582. package/esm2022/core/shared/components/address-form/address-form.component.mjs +24 -0
  583. package/esm2022/core/shared/components/affixed-input/affixed-input.component.mjs +19 -0
  584. package/esm2022/core/shared/components/affixed-input/percentage-suffix-input.component.mjs +86 -0
  585. package/esm2022/core/shared/components/asset-file-input/asset-file-input.component.mjs +97 -0
  586. package/esm2022/core/shared/components/asset-gallery/asset-gallery.component.mjs +96 -0
  587. package/esm2022/core/shared/components/asset-gallery/asset-gallery.types.mjs +2 -0
  588. package/esm2022/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.mjs +144 -0
  589. package/esm2022/core/shared/components/asset-preview/asset-preview.component.mjs +229 -0
  590. package/esm2022/core/shared/components/asset-preview-dialog/asset-preview-dialog.component.mjs +49 -0
  591. package/esm2022/core/shared/components/asset-preview-links/asset-preview-links.component.mjs +25 -0
  592. package/esm2022/core/shared/components/asset-search-input/asset-search-input.component.mjs +102 -0
  593. package/esm2022/core/shared/components/assets/assets.component.mjs +109 -0
  594. package/esm2022/core/shared/components/assign-to-channel-dialog/assign-to-channel-dialog.component.mjs +56 -0
  595. package/esm2022/core/shared/components/bulk-action-menu/bulk-action-menu.component.mjs +100 -0
  596. package/esm2022/core/shared/components/card/card.component.mjs +32 -0
  597. package/esm2022/core/shared/components/channel-assignment-control/channel-assignment-control.component.mjs +116 -0
  598. package/esm2022/core/shared/components/channel-badge/channel-badge.component.mjs +19 -0
  599. package/esm2022/core/shared/components/chart/chart.component.mjs +100 -0
  600. package/esm2022/core/shared/components/chart/tooltip-plugin.mjs +143 -0
  601. package/esm2022/core/shared/components/chip/chip.component.mjs +47 -0
  602. package/esm2022/core/shared/components/configurable-input/configurable-input.component.mjs +161 -0
  603. package/esm2022/core/shared/components/currency-code-selector/currency-code-selector.component.mjs +64 -0
  604. package/esm2022/core/shared/components/currency-input/currency-input.component.mjs +155 -0
  605. package/esm2022/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.mjs +44 -0
  606. package/esm2022/core/shared/components/custom-field-control/custom-field-control.component.mjs +88 -0
  607. package/esm2022/core/shared/components/customer-label/customer-label.component.mjs +17 -0
  608. package/esm2022/core/shared/components/data-table/data-table-column.component.mjs +29 -0
  609. package/esm2022/core/shared/components/data-table/data-table.component.mjs +177 -0
  610. package/esm2022/core/shared/components/data-table-2/data-table-column.component.mjs +64 -0
  611. package/esm2022/core/shared/components/data-table-2/data-table-custom-component.service.mjs +26 -0
  612. package/esm2022/core/shared/components/data-table-2/data-table-custom-field-column.component.mjs +52 -0
  613. package/esm2022/core/shared/components/data-table-2/data-table-search.component.mjs +21 -0
  614. package/esm2022/core/shared/components/data-table-2/data-table2.component.mjs +308 -0
  615. package/esm2022/core/shared/components/data-table-column-picker/data-table-column-picker.component.mjs +44 -0
  616. package/esm2022/core/shared/components/data-table-filter-label/data-table-filter-label.component.mjs +32 -0
  617. package/esm2022/core/shared/components/data-table-filter-presets/add-filter-preset-button.component.mjs +69 -0
  618. package/esm2022/core/shared/components/data-table-filter-presets/data-table-filter-presets.component.mjs +80 -0
  619. package/esm2022/core/shared/components/data-table-filter-presets/filter-preset.service.mjs +79 -0
  620. package/esm2022/core/shared/components/data-table-filter-presets/rename-filter-preset-dialog.component.mjs +20 -0
  621. package/esm2022/core/shared/components/data-table-filters/custom-filter-component.directive.mjs +16 -0
  622. package/esm2022/core/shared/components/data-table-filters/data-table-filters.component.mjs +220 -0
  623. package/esm2022/core/shared/components/datetime-picker/constants.mjs +20 -0
  624. package/esm2022/core/shared/components/datetime-picker/datetime-picker.component.mjs +226 -0
  625. package/esm2022/core/shared/components/datetime-picker/datetime-picker.service.mjs +201 -0
  626. package/esm2022/core/shared/components/datetime-picker/types.mjs +2 -0
  627. package/esm2022/core/shared/components/dropdown/dropdown-item.directive.mjs +28 -0
  628. package/esm2022/core/shared/components/dropdown/dropdown-menu.component.mjs +202 -0
  629. package/esm2022/core/shared/components/dropdown/dropdown-trigger.directive.mjs +25 -0
  630. package/esm2022/core/shared/components/dropdown/dropdown.component.mjs +58 -0
  631. package/esm2022/core/shared/components/duplicate-entity-dialog/duplicate-entity-dialog.component.mjs +111 -0
  632. package/esm2022/core/shared/components/duplicate-entity-dialog/duplicate-entity-dialog.graphql.mjs +38 -0
  633. package/esm2022/core/shared/components/edit-note-dialog/edit-note-dialog.component.mjs +32 -0
  634. package/esm2022/core/shared/components/empty-placeholder/empty-placeholder.component.mjs +16 -0
  635. package/esm2022/core/shared/components/entity-info/entity-info.component.mjs +26 -0
  636. package/esm2022/core/shared/components/extension-host/extension-host-config.mjs +7 -0
  637. package/esm2022/core/shared/components/extension-host/extension-host.component.mjs +81 -0
  638. package/esm2022/core/shared/components/extension-host/extension-host.service.mjs +99 -0
  639. package/esm2022/core/shared/components/extension-host/host-external-frame.mjs +41 -0
  640. package/esm2022/core/shared/components/facet-value-chip/facet-value-chip.component.mjs +26 -0
  641. package/esm2022/core/shared/components/facet-value-selector/facet-value-selector.component.mjs +150 -0
  642. package/esm2022/core/shared/components/focal-point-control/focal-point-control.component.mjs +71 -0
  643. package/esm2022/core/shared/components/form-field/form-field-control.directive.mjs +37 -0
  644. package/esm2022/core/shared/components/form-field/form-field.component.mjs +73 -0
  645. package/esm2022/core/shared/components/form-item/form-item.component.mjs +21 -0
  646. package/esm2022/core/shared/components/formatted-address/formatted-address.component.mjs +38 -0
  647. package/esm2022/core/shared/components/help-tooltip/help-tooltip.component.mjs +16 -0
  648. package/esm2022/core/shared/components/history-entry-detail/history-entry-detail.component.mjs +16 -0
  649. package/esm2022/core/shared/components/items-per-page-controls/items-per-page-controls.component.mjs +28 -0
  650. package/esm2022/core/shared/components/labeled-data/labeled-data.component.mjs +13 -0
  651. package/esm2022/core/shared/components/language-code-selector/language-code-selector.component.mjs +72 -0
  652. package/esm2022/core/shared/components/language-selector/language-selector.component.mjs +30 -0
  653. package/esm2022/core/shared/components/localized-text/localized-text.component.mjs +24 -0
  654. package/esm2022/core/shared/components/manage-tags-dialog/manage-tags-dialog.component.mjs +61 -0
  655. package/esm2022/core/shared/components/modal-dialog/dialog-buttons.directive.mjs +23 -0
  656. package/esm2022/core/shared/components/modal-dialog/dialog-component-outlet.component.mjs +29 -0
  657. package/esm2022/core/shared/components/modal-dialog/dialog-title.directive.mjs +23 -0
  658. package/esm2022/core/shared/components/modal-dialog/modal-dialog.component.mjs +69 -0
  659. package/esm2022/core/shared/components/object-tree/object-tree.component.mjs +56 -0
  660. package/esm2022/core/shared/components/order-state-label/order-state-label.component.mjs +47 -0
  661. package/esm2022/core/shared/components/page/page.component.mjs +38 -0
  662. package/esm2022/core/shared/components/page-block/page-block.component.mjs +11 -0
  663. package/esm2022/core/shared/components/page-body/page-body.component.mjs +11 -0
  664. package/esm2022/core/shared/components/page-detail-layout/page-detail-layout.component.mjs +11 -0
  665. package/esm2022/core/shared/components/page-detail-layout/page-detail-sidebar.component.mjs +15 -0
  666. package/esm2022/core/shared/components/page-entity-info/page-entity-info.component.mjs +16 -0
  667. package/esm2022/core/shared/components/page-header/page-header.component.mjs +11 -0
  668. package/esm2022/core/shared/components/page-header-description/page-header-description.component.mjs +11 -0
  669. package/esm2022/core/shared/components/page-header-tabs/page-header-tabs.component.mjs +26 -0
  670. package/esm2022/core/shared/components/page-title/page-title.component.mjs +40 -0
  671. package/esm2022/core/shared/components/pagination-controls/pagination-controls.component.mjs +26 -0
  672. package/esm2022/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.mjs +138 -0
  673. package/esm2022/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.graphql.mjs +44 -0
  674. package/esm2022/core/shared/components/product-search-input/product-search-input.component.mjs +104 -0
  675. package/esm2022/core/shared/components/product-variant-selector/product-variant-selector.component.mjs +62 -0
  676. package/esm2022/core/shared/components/radio-card/radio-card-fieldset.component.mjs +54 -0
  677. package/esm2022/core/shared/components/radio-card/radio-card.component.mjs +53 -0
  678. package/esm2022/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.mjs +37 -0
  679. package/esm2022/core/shared/components/rich-text-editor/link-dialog/link-dialog.component.mjs +35 -0
  680. package/esm2022/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.mjs +136 -0
  681. package/esm2022/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.mjs +44 -0
  682. package/esm2022/core/shared/components/rich-text-editor/prosemirror/custom-nodes.mjs +97 -0
  683. package/esm2022/core/shared/components/rich-text-editor/prosemirror/inputrules.mjs +61 -0
  684. package/esm2022/core/shared/components/rich-text-editor/prosemirror/keymap.mjs +118 -0
  685. package/esm2022/core/shared/components/rich-text-editor/prosemirror/menu/links.mjs +69 -0
  686. package/esm2022/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.mjs +41 -0
  687. package/esm2022/core/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.mjs +12 -0
  688. package/esm2022/core/shared/components/rich-text-editor/prosemirror/menu/menu.mjs +247 -0
  689. package/esm2022/core/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.mjs +16 -0
  690. package/esm2022/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.mjs +98 -0
  691. package/esm2022/core/shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin.mjs +22 -0
  692. package/esm2022/core/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.mjs +96 -0
  693. package/esm2022/core/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.mjs +164 -0
  694. package/esm2022/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.mjs +155 -0
  695. package/esm2022/core/shared/components/rich-text-editor/prosemirror/types.mjs +2 -0
  696. package/esm2022/core/shared/components/rich-text-editor/prosemirror/utils.mjs +26 -0
  697. package/esm2022/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.mjs +59 -0
  698. package/esm2022/core/shared/components/rich-text-editor/rich-text-editor.component.mjs +106 -0
  699. package/esm2022/core/shared/components/select-toggle/select-toggle.component.mjs +35 -0
  700. package/esm2022/core/shared/components/simple-dialog/simple-dialog.component.mjs +24 -0
  701. package/esm2022/core/shared/components/split-view/split-view.component.mjs +62 -0
  702. package/esm2022/core/shared/components/split-view/split-view.directive.mjs +28 -0
  703. package/esm2022/core/shared/components/status-badge/status-badge.component.mjs +16 -0
  704. package/esm2022/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.mjs +70 -0
  705. package/esm2022/core/shared/components/table-row-action/table-row-action.component.mjs +28 -0
  706. package/esm2022/core/shared/components/tag-selector/tag-selector.component.mjs +60 -0
  707. package/esm2022/core/shared/components/timeline-entry/timeline-entry.component.mjs +54 -0
  708. package/esm2022/core/shared/components/title-input/title-input.component.mjs +21 -0
  709. package/esm2022/core/shared/components/ui-extension-point/ui-extension-point.component.mjs +142 -0
  710. package/esm2022/core/shared/components/zone-selector/zone-selector.component.mjs +99 -0
  711. package/esm2022/core/shared/directives/disabled.directive.mjs +41 -0
  712. package/esm2022/core/shared/directives/if-default-channel-active.directive.mjs +37 -0
  713. package/esm2022/core/shared/directives/if-directive-base.mjs +73 -0
  714. package/esm2022/core/shared/directives/if-multichannel.directive.mjs +43 -0
  715. package/esm2022/core/shared/directives/if-permissions.directive.mjs +66 -0
  716. package/esm2022/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.mjs +23 -0
  717. package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.mjs +62 -0
  718. package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.mjs +59 -0
  719. package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.mjs +85 -0
  720. package/esm2022/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.mjs +45 -0
  721. package/esm2022/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.mjs +32 -0
  722. package/esm2022/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.mjs +47 -0
  723. package/esm2022/core/shared/dynamic-form-inputs/date-form-input/date-form-input.component.mjs +32 -0
  724. package/esm2022/core/shared/dynamic-form-inputs/default-form-inputs.mjs +44 -0
  725. package/esm2022/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.mjs +271 -0
  726. package/esm2022/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.mjs +34 -0
  727. package/esm2022/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.mjs +39 -0
  728. package/esm2022/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.mjs +21 -0
  729. package/esm2022/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.mjs +49 -0
  730. package/esm2022/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.mjs +66 -0
  731. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.mjs +84 -0
  732. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.mjs +66 -0
  733. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.mjs +54 -0
  734. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/product/relation-product-input.component.mjs +87 -0
  735. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component.mjs +87 -0
  736. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-card/relation-card.component.mjs +60 -0
  737. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.mjs +29 -0
  738. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-selector-dialog/relation-selector-dialog.component.mjs +14 -0
  739. package/esm2022/core/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.mjs +21 -0
  740. package/esm2022/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.mjs +40 -0
  741. package/esm2022/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.mjs +28 -0
  742. package/esm2022/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.mjs +24 -0
  743. package/esm2022/core/shared/pipes/asset-preview.pipe.mjs +42 -0
  744. package/esm2022/core/shared/pipes/channel-label.pipe.mjs +23 -0
  745. package/esm2022/core/shared/pipes/custom-field-description.pipe.mjs +30 -0
  746. package/esm2022/core/shared/pipes/custom-field-label.pipe.mjs +39 -0
  747. package/esm2022/core/shared/pipes/duration.pipe.mjs +49 -0
  748. package/esm2022/core/shared/pipes/file-size.pipe.mjs +47 -0
  749. package/esm2022/core/shared/pipes/has-permission.pipe.mjs +54 -0
  750. package/esm2022/core/shared/pipes/locale-base.pipe.mjs +55 -0
  751. package/esm2022/core/shared/pipes/locale-currency-name.pipe.mjs +60 -0
  752. package/esm2022/core/shared/pipes/locale-currency.pipe.mjs +56 -0
  753. package/esm2022/core/shared/pipes/locale-date.pipe.mjs +90 -0
  754. package/esm2022/core/shared/pipes/locale-language-name.pipe.mjs +51 -0
  755. package/esm2022/core/shared/pipes/locale-region-name.pipe.mjs +51 -0
  756. package/esm2022/core/shared/pipes/sentence-case.pipe.mjs +30 -0
  757. package/esm2022/core/shared/pipes/sort.pipe.mjs +34 -0
  758. package/esm2022/core/shared/pipes/state-i18n-token.pipe.mjs +54 -0
  759. package/esm2022/core/shared/pipes/string-to-color.pipe.mjs +18 -0
  760. package/esm2022/core/shared/pipes/time-ago.pipe.mjs +52 -0
  761. package/esm2022/core/shared/providers/routing/can-deactivate-detail-guard.mjs +33 -0
  762. package/esm2022/core/shared/shared.module.mjs +707 -0
  763. package/esm2022/core/validators/unicode-pattern.validator.mjs +8 -0
  764. package/esm2022/customer/components/add-customer-to-group-dialog/add-customer-to-group-dialog.component.mjs +39 -0
  765. package/esm2022/customer/components/address-card/address-card.component.mjs +97 -0
  766. package/esm2022/customer/components/address-detail-dialog/address-detail-dialog.component.mjs +28 -0
  767. package/esm2022/customer/components/customer-detail/customer-detail.component.mjs +441 -0
  768. package/esm2022/customer/components/customer-group-detail/customer-group-detail.component.mjs +90 -0
  769. package/esm2022/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.mjs +46 -0
  770. package/esm2022/customer/components/customer-group-list/customer-group-list-bulk-actions.mjs +9 -0
  771. package/esm2022/customer/components/customer-group-list/customer-group-list.component.mjs +148 -0
  772. package/esm2022/customer/components/customer-group-member-list/customer-group-member-list-bulk-actions.mjs +27 -0
  773. package/esm2022/customer/components/customer-group-member-list/customer-group-member-list.component.mjs +91 -0
  774. package/esm2022/customer/components/customer-history/customer-history-entry-host.component.mjs +62 -0
  775. package/esm2022/customer/components/customer-history/customer-history.component.mjs +89 -0
  776. package/esm2022/customer/components/customer-list/customer-list-bulk-actions.mjs +9 -0
  777. package/esm2022/customer/components/customer-list/customer-list.component.mjs +108 -0
  778. package/esm2022/customer/components/customer-status-label/customer-status-label.component.mjs +17 -0
  779. package/esm2022/customer/components/select-customer-group-dialog/select-customer-group-dialog.component.mjs +31 -0
  780. package/esm2022/customer/customer.module.mjs +146 -0
  781. package/esm2022/customer/customer.routes.mjs +50 -0
  782. package/esm2022/customer/deenruv-admin-ui-customer.mjs +5 -0
  783. package/esm2022/customer/public_api.mjs +20 -0
  784. package/esm2022/dashboard/components/dashboard/dashboard.component.mjs +124 -0
  785. package/esm2022/dashboard/components/dashboard-widget/dashboard-widget.component.mjs +32 -0
  786. package/esm2022/dashboard/dashboard.module.mjs +34 -0
  787. package/esm2022/dashboard/dashboard.routes.mjs +9 -0
  788. package/esm2022/dashboard/deenruv-admin-ui-dashboard.mjs +5 -0
  789. package/esm2022/dashboard/default-widgets.mjs +31 -0
  790. package/esm2022/dashboard/public_api.mjs +12 -0
  791. package/esm2022/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.mjs +73 -0
  792. package/esm2022/dashboard/widgets/order-chart-widget/order-chart-widget.component.mjs +66 -0
  793. package/esm2022/dashboard/widgets/order-summary-widget/order-summary-widget.component.mjs +68 -0
  794. package/esm2022/dashboard/widgets/test-widget/test-widget.component.mjs +22 -0
  795. package/esm2022/dashboard/widgets/welcome-widget/welcome-widget.component.mjs +39 -0
  796. package/esm2022/deenruv-admin-ui.mjs +5 -0
  797. package/esm2022/login/components/login/login.component.mjs +97 -0
  798. package/esm2022/login/deenruv-admin-ui-login.mjs +5 -0
  799. package/esm2022/login/login.module.mjs +21 -0
  800. package/esm2022/login/login.routes.mjs +11 -0
  801. package/esm2022/login/providers/login.guard.mjs +31 -0
  802. package/esm2022/login/public_api.mjs +6 -0
  803. package/esm2022/marketing/components/promotion-detail/promotion-detail.component.mjs +269 -0
  804. package/esm2022/marketing/components/promotion-list/promotion-list-bulk-actions.mjs +78 -0
  805. package/esm2022/marketing/components/promotion-list/promotion-list.component.mjs +128 -0
  806. package/esm2022/marketing/deenruv-admin-ui-marketing.mjs +5 -0
  807. package/esm2022/marketing/marketing.module.mjs +75 -0
  808. package/esm2022/marketing/marketing.routes.mjs +32 -0
  809. package/esm2022/marketing/public_api.mjs +7 -0
  810. package/esm2022/order/common/get-refundable-payments.mjs +19 -0
  811. package/esm2022/order/common/modify-order-types.mjs +2 -0
  812. package/esm2022/order/components/add-manual-payment-dialog/add-manual-payment-dialog.component.mjs +61 -0
  813. package/esm2022/order/components/cancel-order-dialog/cancel-order-dialog.component.mjs +80 -0
  814. package/esm2022/order/components/coupon-code-selector/coupon-code-selector.component.mjs +62 -0
  815. package/esm2022/order/components/draft-order-detail/draft-order-detail.component.mjs +183 -0
  816. package/esm2022/order/components/draft-order-variant-selector/draft-order-variant-selector.component.mjs +59 -0
  817. package/esm2022/order/components/fulfill-order-dialog/fulfill-order-dialog.component.mjs +79 -0
  818. package/esm2022/order/components/fulfillment-card/fulfillment-card.component.mjs +48 -0
  819. package/esm2022/order/components/fulfillment-detail/fulfillment-detail.component.mjs +50 -0
  820. package/esm2022/order/components/fulfillment-state-label/fulfillment-state-label.component.mjs +28 -0
  821. package/esm2022/order/components/line-fulfillment/line-fulfillment.component.mjs +62 -0
  822. package/esm2022/order/components/line-refunds/line-refunds.component.mjs +28 -0
  823. package/esm2022/order/components/modification-detail/modification-detail.component.mjs +71 -0
  824. package/esm2022/order/components/order-custom-fields-card/order-custom-fields-card.component.mjs +64 -0
  825. package/esm2022/order/components/order-data-table/order-data-table.component.mjs +59 -0
  826. package/esm2022/order/components/order-data-table/order-total-column.component.mjs +20 -0
  827. package/esm2022/order/components/order-detail/order-detail.component.mjs +602 -0
  828. package/esm2022/order/components/order-editor/order-editor.component.mjs +485 -0
  829. package/esm2022/order/components/order-edits-preview-dialog/order-edits-preview-dialog.component.mjs +93 -0
  830. package/esm2022/order/components/order-history/order-history-entry-host.component.mjs +62 -0
  831. package/esm2022/order/components/order-history/order-history.component.mjs +184 -0
  832. package/esm2022/order/components/order-list/order-list.component.mjs +154 -0
  833. package/esm2022/order/components/order-modification-summary/order-modification-summary.component.mjs +76 -0
  834. package/esm2022/order/components/order-payment-card/order-payment-card.component.mjs +43 -0
  835. package/esm2022/order/components/order-process-graph/constants.mjs +2 -0
  836. package/esm2022/order/components/order-process-graph/order-process-edge.component.mjs +45 -0
  837. package/esm2022/order/components/order-process-graph/order-process-graph.component.mjs +96 -0
  838. package/esm2022/order/components/order-process-graph/order-process-node.component.mjs +53 -0
  839. package/esm2022/order/components/order-process-graph/types.mjs +2 -0
  840. package/esm2022/order/components/order-process-graph-dialog/order-process-graph-dialog.component.mjs +21 -0
  841. package/esm2022/order/components/order-state-select-dialog/order-state-select-dialog.component.mjs +28 -0
  842. package/esm2022/order/components/order-table/order-table.component.mjs +96 -0
  843. package/esm2022/order/components/payment-detail/payment-detail.component.mjs +18 -0
  844. package/esm2022/order/components/payment-for-refund-selector/payment-for-refund-selector.component.mjs +24 -0
  845. package/esm2022/order/components/payment-state-label/payment-state-label.component.mjs +28 -0
  846. package/esm2022/order/components/refund-detail/refund-detail.component.mjs +18 -0
  847. package/esm2022/order/components/refund-order-dialog/refund-order-dialog.component.mjs +173 -0
  848. package/esm2022/order/components/refund-state-label/refund-state-label.component.mjs +27 -0
  849. package/esm2022/order/components/select-address-dialog/select-address-dialog.component.mjs +89 -0
  850. package/esm2022/order/components/select-address-dialog/select-address-dialog.graphql.mjs +14 -0
  851. package/esm2022/order/components/select-customer-dialog/select-customer-dialog.component.mjs +65 -0
  852. package/esm2022/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.mjs +30 -0
  853. package/esm2022/order/components/seller-orders-card/seller-orders-card.component.mjs +39 -0
  854. package/esm2022/order/components/seller-orders-card/seller-orders-card.graphql.mjs +25 -0
  855. package/esm2022/order/components/settle-refund-dialog/settle-refund-dialog.component.mjs +24 -0
  856. package/esm2022/order/components/simple-item-list/simple-item-list.component.mjs +15 -0
  857. package/esm2022/order/deenruv-admin-ui-order.mjs +5 -0
  858. package/esm2022/order/order.module.mjs +244 -0
  859. package/esm2022/order/order.routes.mjs +56 -0
  860. package/esm2022/order/providers/order-transition.service.mjs +112 -0
  861. package/esm2022/order/providers/routing/order.guard.mjs +57 -0
  862. package/esm2022/order/public_api.mjs +53 -0
  863. package/esm2022/public_api.mjs +5 -0
  864. package/esm2022/react/components/react-custom-column.component.mjs +25 -0
  865. package/esm2022/react/components/react-custom-detail.component.mjs +23 -0
  866. package/esm2022/react/components/react-form-input.component.mjs +24 -0
  867. package/esm2022/react/components/react-route.component.mjs +26 -0
  868. package/esm2022/react/deenruv-admin-ui-react.mjs +5 -0
  869. package/esm2022/react/directives/react-component-host.directive.mjs +54 -0
  870. package/esm2022/react/public_api.mjs +27 -0
  871. package/esm2022/react/react-components/ActionBar.mjs +26 -0
  872. package/esm2022/react/react-components/Card.mjs +28 -0
  873. package/esm2022/react/react-components/CdsIcon.mjs +30 -0
  874. package/esm2022/react/react-components/FormField.mjs +28 -0
  875. package/esm2022/react/react-components/Link.mjs +30 -0
  876. package/esm2022/react/react-components/PageBlock.mjs +24 -0
  877. package/esm2022/react/react-components/PageDetailLayout.mjs +26 -0
  878. package/esm2022/react/react-components/RichTextEditor.mjs +73 -0
  879. package/esm2022/react/react-hooks/use-detail-component-data.mjs +48 -0
  880. package/esm2022/react/react-hooks/use-form-control.mjs +66 -0
  881. package/esm2022/react/react-hooks/use-injector.mjs +33 -0
  882. package/esm2022/react/react-hooks/use-page-metadata.mjs +41 -0
  883. package/esm2022/react/react-hooks/use-query.mjs +198 -0
  884. package/esm2022/react/react-hooks/use-rich-text-editor.mjs +50 -0
  885. package/esm2022/react/react-hooks/use-route-params.mjs +39 -0
  886. package/esm2022/react/register-react-custom-detail-component.mjs +33 -0
  887. package/esm2022/react/register-react-data-table-component.mjs +64 -0
  888. package/esm2022/react/register-react-form-input-component.mjs +27 -0
  889. package/esm2022/react/register-react-route-component.mjs +25 -0
  890. package/esm2022/react/types.mjs +2 -0
  891. package/esm2022/settings/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.mjs +57 -0
  892. package/esm2022/settings/components/admin-detail/admin-detail.component.mjs +205 -0
  893. package/esm2022/settings/components/administrator-list/administrator-list-bulk-actions.mjs +9 -0
  894. package/esm2022/settings/components/administrator-list/administrator-list.component.mjs +120 -0
  895. package/esm2022/settings/components/channel-detail/channel-detail.component.mjs +202 -0
  896. package/esm2022/settings/components/channel-list/channel-list-bulk-actions.mjs +16 -0
  897. package/esm2022/settings/components/channel-list/channel-list.component.mjs +81 -0
  898. package/esm2022/settings/components/country-detail/country-detail.component.mjs +126 -0
  899. package/esm2022/settings/components/country-list/country-list-bulk-actions.mjs +10 -0
  900. package/esm2022/settings/components/country-list/country-list.component.mjs +91 -0
  901. package/esm2022/settings/components/global-settings/global-settings.component.mjs +102 -0
  902. package/esm2022/settings/components/payment-method-detail/payment-method-detail.component.mjs +206 -0
  903. package/esm2022/settings/components/payment-method-list/payment-method-list-bulk-actions.mjs +56 -0
  904. package/esm2022/settings/components/payment-method-list/payment-method-list.component.mjs +99 -0
  905. package/esm2022/settings/components/permission-grid/permission-grid.component.mjs +81 -0
  906. package/esm2022/settings/components/profile/profile.component.mjs +96 -0
  907. package/esm2022/settings/components/role-detail/role-detail.component.mjs +119 -0
  908. package/esm2022/settings/components/role-list/role-list-bulk-actions.mjs +9 -0
  909. package/esm2022/settings/components/role-list/role-list.component.mjs +82 -0
  910. package/esm2022/settings/components/seller-detail/seller-detail.component.mjs +119 -0
  911. package/esm2022/settings/components/seller-list/seller-list-bulk-actions.mjs +9 -0
  912. package/esm2022/settings/components/seller-list/seller-list.component.mjs +75 -0
  913. package/esm2022/settings/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.mjs +30 -0
  914. package/esm2022/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +256 -0
  915. package/esm2022/settings/components/shipping-method-list/shipping-method-list-bulk-actions.mjs +54 -0
  916. package/esm2022/settings/components/shipping-method-list/shipping-method-list.component.mjs +99 -0
  917. package/esm2022/settings/components/shipping-method-test-result/shipping-method-test-result.component.mjs +30 -0
  918. package/esm2022/settings/components/stock-location-detail/stock-location-detail.component.mjs +137 -0
  919. package/esm2022/settings/components/stock-location-list/stock-location-list-bulk-actions.mjs +68 -0
  920. package/esm2022/settings/components/stock-location-list/stock-location-list.component.mjs +87 -0
  921. package/esm2022/settings/components/tax-category-detail/tax-category-detail.component.mjs +114 -0
  922. package/esm2022/settings/components/tax-category-list/tax-category-list-bulk-actions.mjs +10 -0
  923. package/esm2022/settings/components/tax-category-list/tax-category-list.component.mjs +69 -0
  924. package/esm2022/settings/components/tax-rate-detail/tax-rate-detail.component.mjs +137 -0
  925. package/esm2022/settings/components/tax-rate-list/tax-rate-list-bulk-actions.mjs +10 -0
  926. package/esm2022/settings/components/tax-rate-list/tax-rate-list.component.mjs +83 -0
  927. package/esm2022/settings/components/test-address-form/test-address-form.component.mjs +48 -0
  928. package/esm2022/settings/components/test-order-builder/test-order-builder.component.mjs +71 -0
  929. package/esm2022/settings/components/test-shipping-methods/test-shipping-methods.component.mjs +52 -0
  930. package/esm2022/settings/components/zone-detail/zone-detail.component.mjs +117 -0
  931. package/esm2022/settings/components/zone-list/zone-list-bulk-actions.mjs +10 -0
  932. package/esm2022/settings/components/zone-list/zone-list.component.mjs +143 -0
  933. package/esm2022/settings/components/zone-member-list/zone-member-controls.directive.mjs +16 -0
  934. package/esm2022/settings/components/zone-member-list/zone-member-list-bulk-actions.mjs +26 -0
  935. package/esm2022/settings/components/zone-member-list/zone-member-list-header.directive.mjs +16 -0
  936. package/esm2022/settings/components/zone-member-list/zone-member-list.component.mjs +95 -0
  937. package/esm2022/settings/deenruv-admin-ui-settings.mjs +5 -0
  938. package/esm2022/settings/providers/routing/profile-resolver.mjs +30 -0
  939. package/esm2022/settings/public_api.mjs +51 -0
  940. package/esm2022/settings/settings.module.mjs +467 -0
  941. package/esm2022/settings/settings.routes.mjs +232 -0
  942. package/esm2022/system/components/health-check/health-check.component.mjs +18 -0
  943. package/esm2022/system/components/job-list/job-list.component.mjs +72 -0
  944. package/esm2022/system/components/job-state-label/job-state-label.component.mjs +46 -0
  945. package/esm2022/system/deenruv-admin-ui-system.mjs +5 -0
  946. package/esm2022/system/public_api.mjs +7 -0
  947. package/esm2022/system/system.module.mjs +22 -0
  948. package/esm2022/system/system.routes.mjs +20 -0
  949. package/fesm2022/deenruv-admin-ui-catalog.mjs +5171 -0
  950. package/fesm2022/deenruv-admin-ui-catalog.mjs.map +1 -0
  951. package/fesm2022/deenruv-admin-ui-core.mjs +22758 -0
  952. package/fesm2022/deenruv-admin-ui-core.mjs.map +1 -0
  953. package/fesm2022/deenruv-admin-ui-customer.mjs +1400 -0
  954. package/fesm2022/deenruv-admin-ui-customer.mjs.map +1 -0
  955. package/fesm2022/deenruv-admin-ui-dashboard.mjs +454 -0
  956. package/fesm2022/deenruv-admin-ui-dashboard.mjs.map +1 -0
  957. package/fesm2022/deenruv-admin-ui-login.mjs +157 -0
  958. package/fesm2022/deenruv-admin-ui-login.mjs.map +1 -0
  959. package/fesm2022/deenruv-admin-ui-marketing.mjs +566 -0
  960. package/fesm2022/deenruv-admin-ui-marketing.mjs.map +1 -0
  961. package/fesm2022/deenruv-admin-ui-order.mjs +3664 -0
  962. package/fesm2022/deenruv-admin-ui-order.mjs.map +1 -0
  963. package/fesm2022/deenruv-admin-ui-react.mjs +999 -0
  964. package/fesm2022/deenruv-admin-ui-react.mjs.map +1 -0
  965. package/fesm2022/deenruv-admin-ui-settings.mjs +4067 -0
  966. package/fesm2022/deenruv-admin-ui-settings.mjs.map +1 -0
  967. package/fesm2022/deenruv-admin-ui-system.mjs +164 -0
  968. package/fesm2022/deenruv-admin-ui-system.mjs.map +1 -0
  969. package/fesm2022/deenruv-admin-ui.mjs +11 -0
  970. package/fesm2022/deenruv-admin-ui.mjs.map +1 -0
  971. package/index.d.ts +5 -0
  972. package/login/components/login/login.component.d.ts +37 -0
  973. package/login/index.d.ts +5 -0
  974. package/login/login.module.d.ts +9 -0
  975. package/login/login.routes.d.ts +2 -0
  976. package/login/providers/login.guard.d.ts +15 -0
  977. package/login/public_api.d.ts +4 -0
  978. package/marketing/components/promotion-detail/promotion-detail.component.d.ts +70 -0
  979. package/marketing/components/promotion-list/promotion-list-bulk-actions.d.ts +6 -0
  980. package/marketing/components/promotion-list/promotion-list.component.d.ts +13 -0
  981. package/marketing/index.d.ts +5 -0
  982. package/marketing/marketing.module.d.ts +14 -0
  983. package/marketing/marketing.routes.d.ts +4 -0
  984. package/marketing/public_api.d.ts +5 -0
  985. package/order/common/get-refundable-payments.d.ts +9 -0
  986. package/order/common/modify-order-types.d.ts +29 -0
  987. package/order/components/add-manual-payment-dialog/add-manual-payment-dialog.component.d.ts +19 -0
  988. package/order/components/cancel-order-dialog/cancel-order-dialog.component.d.ts +24 -0
  989. package/order/components/coupon-code-selector/coupon-code-selector.component.d.ts +22 -0
  990. package/order/components/draft-order-detail/draft-order-detail.component.d.ts +51 -0
  991. package/order/components/draft-order-variant-selector/draft-order-variant-selector.component.d.ts +24 -0
  992. package/order/components/fulfill-order-dialog/fulfill-order-dialog.component.d.ts +28 -0
  993. package/order/components/fulfillment-card/fulfillment-card.component.d.ts +12 -0
  994. package/order/components/fulfillment-detail/fulfillment-detail.component.d.ts +23 -0
  995. package/order/components/fulfillment-state-label/fulfillment-state-label.component.d.ts +7 -0
  996. package/order/components/line-fulfillment/line-fulfillment.component.d.ts +26 -0
  997. package/order/components/line-refunds/line-refunds.component.d.ts +9 -0
  998. package/order/components/modification-detail/modification-detail.component.d.ts +34 -0
  999. package/order/components/order-custom-fields-card/order-custom-fields-card.component.d.ts +21 -0
  1000. package/order/components/order-data-table/order-data-table.component.d.ts +15 -0
  1001. package/order/components/order-data-table/order-total-column.component.d.ts +7 -0
  1002. package/order/components/order-detail/order-detail.component.d.ts +68 -0
  1003. package/order/components/order-editor/order-editor.component.d.ts +99 -0
  1004. package/order/components/order-edits-preview-dialog/order-edits-preview-dialog.component.d.ts +51 -0
  1005. package/order/components/order-history/order-history-entry-host.component.d.ts +18 -0
  1006. package/order/components/order-history/order-history.component.d.ts +92 -0
  1007. package/order/components/order-list/order-list.component.d.ts +21 -0
  1008. package/order/components/order-modification-summary/order-modification-summary.component.d.ts +19 -0
  1009. package/order/components/order-payment-card/order-payment-card.component.d.ts +67 -0
  1010. package/order/components/order-process-graph/constants.d.ts +1 -0
  1011. package/order/components/order-process-graph/order-process-edge.component.d.ts +21 -0
  1012. package/order/components/order-process-graph/order-process-graph.component.d.ts +32 -0
  1013. package/order/components/order-process-graph/order-process-node.component.d.ts +26 -0
  1014. package/order/components/order-process-graph/types.d.ts +4 -0
  1015. package/order/components/order-process-graph-dialog/order-process-graph-dialog.component.d.ts +13 -0
  1016. package/order/components/order-state-select-dialog/order-state-select-dialog.component.d.ts +13 -0
  1017. package/order/components/order-table/order-table.component.d.ts +43 -0
  1018. package/order/components/payment-detail/payment-detail.component.d.ts +8 -0
  1019. package/order/components/payment-for-refund-selector/payment-for-refund-selector.component.d.ts +14 -0
  1020. package/order/components/payment-state-label/payment-state-label.component.d.ts +7 -0
  1021. package/order/components/refund-detail/refund-detail.component.d.ts +8 -0
  1022. package/order/components/refund-order-dialog/refund-order-dialog.component.d.ts +46 -0
  1023. package/order/components/refund-state-label/refund-state-label.component.d.ts +7 -0
  1024. package/order/components/select-address-dialog/select-address-dialog.component.d.ts +27 -0
  1025. package/order/components/select-address-dialog/select-address-dialog.graphql.d.ts +1 -0
  1026. package/order/components/select-customer-dialog/select-customer-dialog.component.d.ts +32 -0
  1027. package/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.d.ts +18 -0
  1028. package/order/components/seller-orders-card/seller-orders-card.component.d.ts +24 -0
  1029. package/order/components/seller-orders-card/seller-orders-card.graphql.d.ts +1 -0
  1030. package/order/components/settle-refund-dialog/settle-refund-dialog.component.d.ts +11 -0
  1031. package/order/components/simple-item-list/simple-item-list.component.d.ts +9 -0
  1032. package/order/index.d.ts +5 -0
  1033. package/order/order.module.d.ts +52 -0
  1034. package/order/order.routes.d.ts +3 -0
  1035. package/order/providers/order-transition.service.d.ts +32 -0
  1036. package/order/providers/routing/order.guard.d.ts +13 -0
  1037. package/order/public_api.d.ts +51 -0
  1038. package/package.json +133 -0
  1039. package/public_api.d.ts +4 -0
  1040. package/react/components/react-custom-column.component.d.ts +17 -0
  1041. package/react/components/react-custom-detail.component.d.ts +24 -0
  1042. package/react/components/react-form-input.component.d.ts +20 -0
  1043. package/react/components/react-route.component.d.ts +10 -0
  1044. package/react/directives/react-component-host.directive.d.ts +23 -0
  1045. package/react/index.d.ts +5 -0
  1046. package/react/public_api.d.ts +25 -0
  1047. package/react/react-components/ActionBar.d.ts +23 -0
  1048. package/react/react-components/Card.d.ts +24 -0
  1049. package/react/react-components/CdsIcon.d.ts +45 -0
  1050. package/react/react-components/FormField.d.ts +27 -0
  1051. package/react/react-components/Link.d.ts +22 -0
  1052. package/react/react-components/PageBlock.d.ts +21 -0
  1053. package/react/react-components/PageDetailLayout.d.ts +23 -0
  1054. package/react/react-components/RichTextEditor.d.ts +62 -0
  1055. package/react/react-hooks/use-detail-component-data.d.ts +32 -0
  1056. package/react/react-hooks/use-form-control.d.ts +29 -0
  1057. package/react/react-hooks/use-injector.d.ts +24 -0
  1058. package/react/react-hooks/use-page-metadata.d.ts +30 -0
  1059. package/react/react-hooks/use-query.d.ts +163 -0
  1060. package/react/react-hooks/use-rich-text-editor.d.ts +37 -0
  1061. package/react/react-hooks/use-route-params.d.ts +22 -0
  1062. package/react/register-react-custom-detail-component.d.ts +38 -0
  1063. package/react/register-react-data-table-component.d.ts +83 -0
  1064. package/react/register-react-form-input-component.d.ts +9 -0
  1065. package/react/register-react-route-component.d.ts +32 -0
  1066. package/react/types.d.ts +17 -0
  1067. package/settings/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.d.ts +20 -0
  1068. package/settings/components/admin-detail/admin-detail.component.d.ts +64 -0
  1069. package/settings/components/administrator-list/administrator-list-bulk-actions.d.ts +1 -0
  1070. package/settings/components/administrator-list/administrator-list.component.d.ts +29 -0
  1071. package/settings/components/channel-detail/channel-detail.component.d.ts +46 -0
  1072. package/settings/components/channel-list/channel-list-bulk-actions.d.ts +1 -0
  1073. package/settings/components/channel-list/channel-list.component.d.ts +13 -0
  1074. package/settings/components/country-detail/country-detail.component.d.ts +29 -0
  1075. package/settings/components/country-list/country-list-bulk-actions.d.ts +1 -0
  1076. package/settings/components/country-list/country-list.component.d.ts +11 -0
  1077. package/settings/components/global-settings/global-settings.component.d.ts +29 -0
  1078. package/settings/components/payment-method-detail/payment-method-detail.component.d.ts +64 -0
  1079. package/settings/components/payment-method-list/payment-method-list-bulk-actions.d.ts +3 -0
  1080. package/settings/components/payment-method-list/payment-method-list.component.d.ts +11 -0
  1081. package/settings/components/permission-grid/permission-grid.component.d.ts +28 -0
  1082. package/settings/components/profile/profile.component.d.ts +28 -0
  1083. package/settings/components/role-detail/role-detail.component.d.ts +31 -0
  1084. package/settings/components/role-list/role-list-bulk-actions.d.ts +1 -0
  1085. package/settings/components/role-list/role-list.component.d.ts +17 -0
  1086. package/settings/components/seller-detail/seller-detail.component.d.ts +31 -0
  1087. package/settings/components/seller-list/seller-list-bulk-actions.d.ts +1 -0
  1088. package/settings/components/seller-list/seller-list.component.d.ts +11 -0
  1089. package/settings/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.d.ts +12 -0
  1090. package/settings/components/shipping-method-detail/shipping-method-detail.component.d.ts +76 -0
  1091. package/settings/components/shipping-method-list/shipping-method-list-bulk-actions.d.ts +3 -0
  1092. package/settings/components/shipping-method-list/shipping-method-list.component.d.ts +12 -0
  1093. package/settings/components/shipping-method-test-result/shipping-method-test-result.component.d.ts +12 -0
  1094. package/settings/components/stock-location-detail/stock-location-detail.component.d.ts +32 -0
  1095. package/settings/components/stock-location-list/stock-location-list-bulk-actions.d.ts +3 -0
  1096. package/settings/components/stock-location-list/stock-location-list.component.d.ts +12 -0
  1097. package/settings/components/tax-category-detail/tax-category-detail.component.d.ts +32 -0
  1098. package/settings/components/tax-category-list/tax-category-list-bulk-actions.d.ts +1 -0
  1099. package/settings/components/tax-category-list/tax-category-list.component.d.ts +11 -0
  1100. package/settings/components/tax-rate-detail/tax-rate-detail.component.d.ts +39 -0
  1101. package/settings/components/tax-rate-list/tax-rate-list-bulk-actions.d.ts +1 -0
  1102. package/settings/components/tax-rate-list/tax-rate-list.component.d.ts +11 -0
  1103. package/settings/components/test-address-form/test-address-form.component.d.ts +25 -0
  1104. package/settings/components/test-order-builder/test-order-builder.component.d.ts +31 -0
  1105. package/settings/components/test-shipping-methods/test-shipping-methods.component.d.ts +23 -0
  1106. package/settings/components/zone-detail/zone-detail.component.d.ts +31 -0
  1107. package/settings/components/zone-list/zone-list-bulk-actions.d.ts +1 -0
  1108. package/settings/components/zone-list/zone-list.component.d.ts +26 -0
  1109. package/settings/components/zone-member-list/zone-member-controls.directive.d.ts +8 -0
  1110. package/settings/components/zone-member-list/zone-member-list-bulk-actions.d.ts +3 -0
  1111. package/settings/components/zone-member-list/zone-member-list-header.directive.d.ts +8 -0
  1112. package/settings/components/zone-member-list/zone-member-list.component.d.ts +40 -0
  1113. package/settings/index.d.ts +5 -0
  1114. package/settings/providers/routing/profile-resolver.d.ts +8 -0
  1115. package/settings/public_api.d.ts +49 -0
  1116. package/settings/settings.module.d.ts +45 -0
  1117. package/settings/settings.routes.d.ts +3 -0
  1118. package/static/assets/.gitkeep +0 -0
  1119. package/static/assets/logo-login.webp +0 -0
  1120. package/static/assets/logo-top.webp +0 -0
  1121. package/static/deenruv-ui-config.json +290 -0
  1122. package/static/favicon.ico +0 -0
  1123. package/static/fonts/fonts.scss +253 -0
  1124. package/static/fonts/inter-cyrillic-ext.woff2 +0 -0
  1125. package/static/fonts/inter-cyrillic.woff2 +0 -0
  1126. package/static/fonts/inter-greek-ext.woff2 +0 -0
  1127. package/static/fonts/inter-greek.woff2 +0 -0
  1128. package/static/fonts/inter-latin-ext.woff2 +0 -0
  1129. package/static/fonts/inter-latin.woff2 +0 -0
  1130. package/static/fonts/inter-vietnamese.woff2 +0 -0
  1131. package/static/i18n-messages/ar.json +814 -0
  1132. package/static/i18n-messages/cs.json +814 -0
  1133. package/static/i18n-messages/de.json +814 -0
  1134. package/static/i18n-messages/en.json +814 -0
  1135. package/static/i18n-messages/es.json +814 -0
  1136. package/static/i18n-messages/fa.json +814 -0
  1137. package/static/i18n-messages/fr.json +814 -0
  1138. package/static/i18n-messages/he.json +814 -0
  1139. package/static/i18n-messages/hr.json +814 -0
  1140. package/static/i18n-messages/it.json +814 -0
  1141. package/static/i18n-messages/nb.json +812 -0
  1142. package/static/i18n-messages/ne.json +814 -0
  1143. package/static/i18n-messages/pl.json +814 -0
  1144. package/static/i18n-messages/pt_BR.json +814 -0
  1145. package/static/i18n-messages/pt_PT.json +814 -0
  1146. package/static/i18n-messages/ru.json +814 -0
  1147. package/static/i18n-messages/sv.json +807 -0
  1148. package/static/i18n-messages/uk.json +814 -0
  1149. package/static/i18n-messages/zh_Hans.json +814 -0
  1150. package/static/i18n-messages/zh_Hant.json +814 -0
  1151. package/static/index.html +14 -0
  1152. package/static/polyfills.ts +66 -0
  1153. package/static/styles/_mixins.scss +60 -0
  1154. package/static/styles/_variables.scss +11 -0
  1155. package/static/styles/component/prosemirror.scss +511 -0
  1156. package/static/styles/global/_buttons.scss +147 -0
  1157. package/static/styles/global/_clarity.scss +140 -0
  1158. package/static/styles/global/_forms.scss +187 -0
  1159. package/static/styles/global/_global.scss +41 -0
  1160. package/static/styles/global/_overrides.scss +165 -0
  1161. package/static/styles/global/_sass-overrides.scss +8 -0
  1162. package/static/styles/global/_utilities.scss +155 -0
  1163. package/static/styles/rtl.scss +143 -0
  1164. package/static/styles/styles.scss +19 -0
  1165. package/static/styles/theme/dark.scss +591 -0
  1166. package/static/styles/theme/default.scss +254 -0
  1167. package/static/styles/ui-extension-theme.scss +13 -0
  1168. package/static/theme.min.css +1 -0
  1169. package/system/components/health-check/health-check.component.d.ts +8 -0
  1170. package/system/components/job-list/job-list.component.d.ts +19 -0
  1171. package/system/components/job-state-label/job-state-label.component.d.ts +9 -0
  1172. package/system/index.d.ts +5 -0
  1173. package/system/public_api.d.ts +5 -0
  1174. package/system/system.module.d.ts +11 -0
  1175. package/system/system.routes.d.ts +2 -0
@@ -0,0 +1,1400 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Input, ChangeDetectionStrategy, Component, EventEmitter, Output, ViewContainerRef, ViewChild, NgModule } from '@angular/core';
3
+ import { BehaviorSubject, Subject, combineLatest, forkJoin, from, EMPTY, of } from 'rxjs';
4
+ import { map, startWith, distinctUntilChanged, debounceTime, tap, takeUntil, switchMap, filter, take, shareReplay, merge, mergeMap, concatMap, mapTo } from 'rxjs/operators';
5
+ import * as i1 from '@deenruv/admin-ui/core';
6
+ import { SelectionManager, HistoryEntryType, CUSTOMER_FRAGMENT, TypedBaseDetailComponent, getCustomFieldsDefaults, SortOrder, EditNoteDialogComponent, CustomerDetailQueryDocument, createBulkDeleteAction, Permission, CUSTOMER_GROUP_FRAGMENT, TypedBaseListComponent, GetCustomerGroupListDocument, ModalService, DataService, NotificationService, LogicalOperator, CustomerListQueryDocument, PageComponent, detailBreadcrumb, detailComponentWithResolver, GetCustomerGroupDetailDocument, SharedModule, PageService } from '@deenruv/admin-ui/core';
7
+ import * as i1$1 from '@angular/forms';
8
+ import { FormControl, UntypedFormArray, Validators } from '@angular/forms';
9
+ import * as i2 from '@angular/router';
10
+ import { RouterModule, ROUTES } from '@angular/router';
11
+ import * as i3 from '@clr/angular';
12
+ import * as i3$1 from '@angular/common';
13
+ import * as i4 from '@ngx-translate/core';
14
+ import { marker } from '@biesbjerg/ngx-translate-extract-marker';
15
+ import { notNullOrUndefined } from '@deenruv/common/lib/shared-utils';
16
+ import { gql } from 'apollo-angular';
17
+ import * as i3$2 from '@ng-select/ng-select';
18
+
19
+ class CustomerStatusLabelComponent {
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerStatusLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CustomerStatusLabelComponent, selector: "vdr-customer-status-label", inputs: { customer: "customer" }, ngImport: i0, template: "<vdr-chip *ngIf=\"customer.user?.id\">\n <ng-container *ngIf=\"customer.user?.verified\">\n <clr-icon shape=\"check-circle\" class=\"verified-user-icon\"></clr-icon>\n {{ 'customer.verified' | translate }}\n </ng-container>\n <ng-container *ngIf=\"!customer.user?.verified\">\n <clr-icon shape=\"check-circle\" class=\"registered-user-icon\"></clr-icon>\n {{ 'customer.registered' | translate }}\n </ng-container>\n</vdr-chip>\n<vdr-chip *ngIf=\"!customer.user?.id\">{{ 'customer.guest' | translate }}</vdr-chip>\n", styles: [".registered-user-icon{color:var(--color-grey-300)}.verified-user-icon{color:var(--color-success-500)}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerStatusLabelComponent, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: 'vdr-customer-status-label', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-chip *ngIf=\"customer.user?.id\">\n <ng-container *ngIf=\"customer.user?.verified\">\n <clr-icon shape=\"check-circle\" class=\"verified-user-icon\"></clr-icon>\n {{ 'customer.verified' | translate }}\n </ng-container>\n <ng-container *ngIf=\"!customer.user?.verified\">\n <clr-icon shape=\"check-circle\" class=\"registered-user-icon\"></clr-icon>\n {{ 'customer.registered' | translate }}\n </ng-container>\n</vdr-chip>\n<vdr-chip *ngIf=\"!customer.user?.id\">{{ 'customer.guest' | translate }}</vdr-chip>\n", styles: [".registered-user-icon{color:var(--color-grey-300)}.verified-user-icon{color:var(--color-success-500)}\n"] }]
26
+ }], propDecorators: { customer: [{
27
+ type: Input
28
+ }] } });
29
+
30
+ class CustomerGroupMemberListComponent {
31
+ constructor(router, dataService) {
32
+ this.router = router;
33
+ this.dataService = dataService;
34
+ this.selectedMemberIds = [];
35
+ this.selectionChange = new EventEmitter();
36
+ this.fetchParamsChange = new EventEmitter();
37
+ this.filterTermControl = new FormControl('');
38
+ this.selectionManager = new SelectionManager({
39
+ multiSelect: true,
40
+ itemsAreEqual: (a, b) => a.id === b.id,
41
+ additiveMode: true,
42
+ });
43
+ this.refresh$ = new BehaviorSubject(true);
44
+ this.destroy$ = new Subject();
45
+ }
46
+ ngOnInit() {
47
+ this.membersCurrentPage$ = this.route.paramMap.pipe(map(qpm => qpm.get('membersPage')), map(page => (!page ? 1 : +page)), startWith(1), distinctUntilChanged());
48
+ this.membersItemsPerPage$ = this.route.paramMap.pipe(map(qpm => qpm.get('membersPerPage')), map(perPage => (!perPage ? 10 : +perPage)), startWith(10), distinctUntilChanged());
49
+ const filterTerm$ = this.filterTermControl.valueChanges.pipe(debounceTime(250), tap(() => this.setContentsPageNumber(1)), startWith(''));
50
+ combineLatest(this.membersCurrentPage$, this.membersItemsPerPage$, filterTerm$, this.refresh$)
51
+ .pipe(takeUntil(this.destroy$))
52
+ .subscribe(([currentPage, itemsPerPage, filterTerm]) => {
53
+ const take = itemsPerPage;
54
+ const skip = (currentPage - 1) * itemsPerPage;
55
+ this.fetchParamsChange.emit({
56
+ filterTerm: filterTerm ?? '',
57
+ skip,
58
+ take,
59
+ });
60
+ });
61
+ this.selectionManager.setCurrentItems(this.members?.filter(m => this.selectedMemberIds.includes(m.id)) ?? []);
62
+ this.selectionManager.selectionChanges$.pipe(takeUntil(this.destroy$)).subscribe(selection => {
63
+ this.selectionChange.emit(selection.map(s => s.id));
64
+ });
65
+ }
66
+ ngOnDestroy() {
67
+ this.destroy$.next();
68
+ this.destroy$.complete();
69
+ }
70
+ setContentsPageNumber(page) {
71
+ this.setParam('membersPage', page);
72
+ }
73
+ setContentsItemsPerPage(perPage) {
74
+ this.setParam('membersPerPage', perPage);
75
+ }
76
+ refresh() {
77
+ this.refresh$.next(true);
78
+ }
79
+ setParam(key, value) {
80
+ this.router.navigate(['./', { ...this.route.snapshot.params, [key]: value }], {
81
+ relativeTo: this.route,
82
+ queryParamsHandling: 'merge',
83
+ });
84
+ }
85
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerGroupMemberListComponent, deps: [{ token: i2.Router }, { token: i1.DataService }], target: i0.ɵɵFactoryTarget.Component }); }
86
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CustomerGroupMemberListComponent, selector: "vdr-customer-group-member-list", inputs: { locationId: "locationId", members: "members", totalItems: "totalItems", route: "route", selectedMemberIds: "selectedMemberIds", activeGroup: "activeGroup" }, outputs: { selectionChange: "selectionChange", fetchParamsChange: "fetchParamsChange" }, ngImport: i0, template: "<vdr-data-table-2\n [id]=\"locationId\"\n [items]=\"members\"\n [itemsPerPage]=\"membersItemsPerPage$ | async\"\n [totalItems]=\"totalItems\"\n [currentPage]=\"membersCurrentPage$ | async\"\n (pageChange)=\"setContentsPageNumber($event)\"\n (itemsPerPageChange)=\"setContentsItemsPerPage($event)\"\n>\n <vdr-bulk-action-menu\n [locationId]=\"locationId\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n ></vdr-bulk-action-menu>\n <vdr-dt2-search\n [searchTermControl]=\"filterTermControl\"\n [searchTermPlaceholder]=\"'customer.search-customers-by-email' | translate\"\n ></vdr-dt2-search>\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-customerGroup=\"item\">\n {{ customerGroup.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.created-at' | translate\" id=\"created-at\" [hiddenByDefault]=\"true\">\n <ng-template let-customer=\"item\">\n {{ customer.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.updated-at' | translate\" id=\"updated-at\" [hiddenByDefault]=\"true\">\n <ng-template let-customer=\"item\">\n {{ customer.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'customer.name' | translate\" id=\"name\" [optional]=\"false\">\n <ng-template let-customer=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['/customer/customers', customer.id]\"\n ><span> {{ customer.title }} {{ customer.firstName }} {{ customer.lastName }} </span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.status' | translate\" id=\"status\" [hiddenByDefault]=\"true\">\n <ng-template let-customer=\"item\">\n <vdr-customer-status-label [customer]=\"customer\" />\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'customer.email-address' | translate\" id=\"email-address\">\n <ng-template let-customer=\"item\">\n {{ customer.emailAddress }}\n </ng-template>\n </vdr-dt2-column>\n</vdr-data-table-2>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.BulkActionMenuComponent, selector: "vdr-bulk-action-menu", inputs: ["locationId", "selectionManager", "hostComponent"] }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["id", "expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.DataTable2SearchComponent, selector: "vdr-dt2-search", inputs: ["searchTermControl", "searchTermPlaceholder"] }, { kind: "component", type: CustomerStatusLabelComponent, selector: "vdr-customer-status-label", inputs: ["customer"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
87
+ }
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerGroupMemberListComponent, decorators: [{
89
+ type: Component,
90
+ args: [{ selector: 'vdr-customer-group-member-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-data-table-2\n [id]=\"locationId\"\n [items]=\"members\"\n [itemsPerPage]=\"membersItemsPerPage$ | async\"\n [totalItems]=\"totalItems\"\n [currentPage]=\"membersCurrentPage$ | async\"\n (pageChange)=\"setContentsPageNumber($event)\"\n (itemsPerPageChange)=\"setContentsItemsPerPage($event)\"\n>\n <vdr-bulk-action-menu\n [locationId]=\"locationId\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n ></vdr-bulk-action-menu>\n <vdr-dt2-search\n [searchTermControl]=\"filterTermControl\"\n [searchTermPlaceholder]=\"'customer.search-customers-by-email' | translate\"\n ></vdr-dt2-search>\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-customerGroup=\"item\">\n {{ customerGroup.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.created-at' | translate\" id=\"created-at\" [hiddenByDefault]=\"true\">\n <ng-template let-customer=\"item\">\n {{ customer.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.updated-at' | translate\" id=\"updated-at\" [hiddenByDefault]=\"true\">\n <ng-template let-customer=\"item\">\n {{ customer.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'customer.name' | translate\" id=\"name\" [optional]=\"false\">\n <ng-template let-customer=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['/customer/customers', customer.id]\"\n ><span> {{ customer.title }} {{ customer.firstName }} {{ customer.lastName }} </span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.status' | translate\" id=\"status\" [hiddenByDefault]=\"true\">\n <ng-template let-customer=\"item\">\n <vdr-customer-status-label [customer]=\"customer\" />\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'customer.email-address' | translate\" id=\"email-address\">\n <ng-template let-customer=\"item\">\n {{ customer.emailAddress }}\n </ng-template>\n </vdr-dt2-column>\n</vdr-data-table-2>\n" }]
91
+ }], ctorParameters: () => [{ type: i2.Router }, { type: i1.DataService }], propDecorators: { locationId: [{
92
+ type: Input
93
+ }], members: [{
94
+ type: Input
95
+ }], totalItems: [{
96
+ type: Input
97
+ }], route: [{
98
+ type: Input
99
+ }], selectedMemberIds: [{
100
+ type: Input
101
+ }], activeGroup: [{
102
+ type: Input
103
+ }], selectionChange: [{
104
+ type: Output
105
+ }], fetchParamsChange: [{
106
+ type: Output
107
+ }] } });
108
+
109
+ class AddCustomerToGroupDialogComponent {
110
+ constructor(dataService) {
111
+ this.dataService = dataService;
112
+ this.selectedCustomerIds = [];
113
+ this.fetchGroupMembers$ = new BehaviorSubject({
114
+ skip: 0,
115
+ take: 10,
116
+ filterTerm: '',
117
+ });
118
+ }
119
+ ngOnInit() {
120
+ const customerResult$ = this.fetchGroupMembers$.pipe(switchMap(({ skip, take, filterTerm }) => this.dataService.customer
121
+ .getCustomerList(take, skip, filterTerm)
122
+ .mapStream(res => res.customers)));
123
+ this.customers$ = customerResult$.pipe(map(res => res.items));
124
+ this.customersTotal$ = customerResult$.pipe(map(res => res.totalItems));
125
+ }
126
+ cancel() {
127
+ this.resolveWith();
128
+ }
129
+ add() {
130
+ this.resolveWith(this.selectedCustomerIds);
131
+ }
132
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddCustomerToGroupDialogComponent, deps: [{ token: i1.DataService }], target: i0.ɵɵFactoryTarget.Component }); }
133
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AddCustomerToGroupDialogComponent, selector: "vdr-add-customer-to-group-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\n {{ 'customer.add-customers-to-group-with-name' | translate: {groupName: group.name} }}\n</ng-template>\n\n<vdr-customer-group-member-list\n locationId=\"customer-group-members-picker-list\"\n [members]=\"customers$ | async\"\n [totalItems]=\"customersTotal$ | async\"\n [route]=\"route\"\n [selectedMemberIds]=\"selectedCustomerIds\"\n (fetchParamsChange)=\"fetchGroupMembers$.next($event)\"\n (selectionChange)=\"selectedCustomerIds = $event\"\n/>\n\n<ng-template vdrDialogButtons>\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\n <button type=\"submit\" (click)=\"add()\" [disabled]=\"!selectedCustomerIds.length\" class=\"btn btn-primary\">\n {{ 'customer.add-customers-to-group-with-count' | translate: {count: selectedCustomerIds.length} }}\n </button>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "component", type: CustomerGroupMemberListComponent, selector: "vdr-customer-group-member-list", inputs: ["locationId", "members", "totalItems", "route", "selectedMemberIds", "activeGroup"], outputs: ["selectionChange", "fetchParamsChange"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
134
+ }
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddCustomerToGroupDialogComponent, decorators: [{
136
+ type: Component,
137
+ args: [{ selector: 'vdr-add-customer-to-group-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\n {{ 'customer.add-customers-to-group-with-name' | translate: {groupName: group.name} }}\n</ng-template>\n\n<vdr-customer-group-member-list\n locationId=\"customer-group-members-picker-list\"\n [members]=\"customers$ | async\"\n [totalItems]=\"customersTotal$ | async\"\n [route]=\"route\"\n [selectedMemberIds]=\"selectedCustomerIds\"\n (fetchParamsChange)=\"fetchGroupMembers$.next($event)\"\n (selectionChange)=\"selectedCustomerIds = $event\"\n/>\n\n<ng-template vdrDialogButtons>\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\n <button type=\"submit\" (click)=\"add()\" [disabled]=\"!selectedCustomerIds.length\" class=\"btn btn-primary\">\n {{ 'customer.add-customers-to-group-with-count' | translate: {count: selectedCustomerIds.length} }}\n </button>\n</ng-template>\n" }]
138
+ }], ctorParameters: () => [{ type: i1.DataService }] });
139
+
140
+ class AddressDetailDialogComponent {
141
+ constructor(changeDetector) {
142
+ this.changeDetector = changeDetector;
143
+ this.availableCountries = [];
144
+ }
145
+ ngOnInit() {
146
+ this.addressForm.valueChanges.subscribe(() => this.changeDetector.markForCheck());
147
+ }
148
+ cancel() {
149
+ this.resolveWith();
150
+ }
151
+ save() {
152
+ this.resolveWith(this.addressForm);
153
+ }
154
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddressDetailDialogComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
155
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AddressDetailDialogComponent, selector: "vdr-address-detail-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\n <span *ngIf=\"addressForm.get('streetLine1')?.value as streetLine1\">{{ streetLine1 }},</span>\n <span *ngIf=\"addressForm.get('countryCode')?.value as countryCode\"> {{ countryCode }}</span>\n</ng-template>\n\n<vdr-address-form\n [formGroup]=\"addressForm\"\n [availableCountries]=\"availableCountries\"\n [customFields]=\"customFields\"\n></vdr-address-form>\n\n<ng-template vdrDialogButtons>\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\n <button\n type=\"submit\"\n (click)=\"save()\"\n [disabled]=\"!addressForm.valid || !addressForm.touched\"\n class=\"btn btn-primary\"\n >\n {{ 'common.update' | translate }}\n </button>\n</ng-template>\n", styles: ["clr-input-container{margin-bottom:12px}\n"], dependencies: [{ kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "component", type: i1.AddressFormComponent, selector: "vdr-address-form", inputs: ["customFields", "formGroup", "availableCountries"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
156
+ }
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddressDetailDialogComponent, decorators: [{
158
+ type: Component,
159
+ args: [{ selector: 'vdr-address-detail-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\n <span *ngIf=\"addressForm.get('streetLine1')?.value as streetLine1\">{{ streetLine1 }},</span>\n <span *ngIf=\"addressForm.get('countryCode')?.value as countryCode\"> {{ countryCode }}</span>\n</ng-template>\n\n<vdr-address-form\n [formGroup]=\"addressForm\"\n [availableCountries]=\"availableCountries\"\n [customFields]=\"customFields\"\n></vdr-address-form>\n\n<ng-template vdrDialogButtons>\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\n <button\n type=\"submit\"\n (click)=\"save()\"\n [disabled]=\"!addressForm.valid || !addressForm.touched\"\n class=\"btn btn-primary\"\n >\n {{ 'common.update' | translate }}\n </button>\n</ng-template>\n", styles: ["clr-input-container{margin-bottom:12px}\n"] }]
160
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
161
+
162
+ class AddressCardComponent {
163
+ constructor(modalService, changeDetector) {
164
+ this.modalService = modalService;
165
+ this.changeDetector = changeDetector;
166
+ this.availableCountries = [];
167
+ this.editable = true;
168
+ this.setAsDefaultShipping = new EventEmitter();
169
+ this.setAsDefaultBilling = new EventEmitter();
170
+ this.deleteAddress = new EventEmitter();
171
+ this.dataDependenciesPopulated = new BehaviorSubject(false);
172
+ }
173
+ ngOnInit() {
174
+ const streetLine1 = this.addressForm.get('streetLine1');
175
+ // Make the address dialog display automatically if there is no address line
176
+ // as is the case when adding a new address.
177
+ if (!streetLine1.value) {
178
+ this.dataDependenciesPopulated
179
+ .pipe(filter(value => value), take(1))
180
+ .subscribe(() => {
181
+ this.editAddress();
182
+ });
183
+ }
184
+ }
185
+ ngOnChanges(changes) {
186
+ if (this.customFields != null && this.availableCountries != null) {
187
+ this.dataDependenciesPopulated.next(true);
188
+ }
189
+ }
190
+ getCountryName(countryCode) {
191
+ if (!this.availableCountries) {
192
+ return '';
193
+ }
194
+ const match = this.availableCountries.find(c => c.code === countryCode);
195
+ return match ? match.name : '';
196
+ }
197
+ setAsDefaultBillingAddress() {
198
+ this.setAsDefaultBilling.emit(this.addressForm.value.id);
199
+ this.addressForm.markAsDirty();
200
+ }
201
+ setAsDefaultShippingAddress() {
202
+ this.setAsDefaultShipping.emit(this.addressForm.value.id);
203
+ this.addressForm.markAsDirty();
204
+ }
205
+ delete() {
206
+ this.deleteAddress.emit(this.addressForm.value.id);
207
+ this.addressForm.markAsDirty();
208
+ }
209
+ editAddress() {
210
+ this.modalService
211
+ .fromComponent(AddressDetailDialogComponent, {
212
+ locals: {
213
+ addressForm: this.addressForm,
214
+ customFields: this.customFields,
215
+ availableCountries: this.availableCountries,
216
+ },
217
+ size: 'md',
218
+ closable: true,
219
+ })
220
+ .subscribe(() => {
221
+ this.changeDetector.markForCheck();
222
+ });
223
+ }
224
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddressCardComponent, deps: [{ token: i1.ModalService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
225
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AddressCardComponent, selector: "vdr-address-card", inputs: { addressForm: "addressForm", customFields: "customFields", availableCountries: "availableCountries", isDefaultBilling: "isDefaultBilling", isDefaultShipping: "isDefaultShipping", editable: "editable" }, outputs: { setAsDefaultShipping: "setAsDefaultShipping", setAsDefaultBilling: "setAsDefaultBilling", deleteAddress: "deleteAddress" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"card\" *ngIf=\"addressForm.value as address\">\n <div class=\"card-header\">\n <div class=\"address-title\">\n <span class=\"street-line\" *ngIf=\"address.streetLine1\">{{ address.streetLine1 }},</span>\n {{ address.countryCode }}\n </div>\n <div class=\"default-controls\">\n <vdr-chip class=\"is-default p8\" *ngIf=\"isDefaultShipping\">\n <clr-icon shape=\"truck\"></clr-icon>\n {{ 'customer.default-shipping-address' | translate }}\n </vdr-chip>\n <vdr-chip class=\"is-default p8\" *ngIf=\"isDefaultBilling\">\n <clr-icon shape=\"credit-card\"></clr-icon>\n {{ 'customer.default-billing-address' | translate }}\n </vdr-chip>\n </div>\n </div>\n <div class=\"card-block\">\n <div class=\"card-text\">\n <vdr-formatted-address [address]=\"address\"></vdr-formatted-address>\n </div>\n </div>\n <div class=\"card-footer\">\n <div class=\"address-actions\">\n <vdr-entity-info [entity]=\"address\"></vdr-entity-info>\n <ng-container *ngIf=\"editable\">\n <button class=\"button-small\" (click)=\"editAddress()\">\n {{ 'common.edit' | translate }}\n </button>\n <vdr-dropdown>\n <button type=\"button\" class=\"button-small\" vdrDropdownTrigger>\n {{ 'common.more' | translate }}\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"></clr-icon>\n </button>\n <vdr-dropdown-menu>\n <button\n vdrDropdownItem\n [disabled]=\"isDefaultShipping\"\n (click)=\"setAsDefaultShippingAddress()\"\n >\n {{ 'customer.set-as-default-shipping-address' | translate }}\n </button>\n <button\n vdrDropdownItem\n [disabled]=\"isDefaultBilling\"\n (click)=\"setAsDefaultBillingAddress()\"\n >\n {{ 'customer.set-as-default-billing-address' | translate }}\n </button>\n <div class=\"dropdown-divider\"></div>\n <button type=\"button\" (click)=\"delete()\" vdrDropdownItem>\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\n {{ 'common.delete' | translate }}\n </button>\n </vdr-dropdown-menu>\n </vdr-dropdown>\n </ng-container>\n </div>\n </div>\n</div>\n", styles: [":host{display:block;max-width:360px}clr-input-container{margin-bottom:12px}.defaul-controls{display:flex}.is-default{margin:0;color:var(--color-success-500)}.address-actions{display:flex;align-items:center;gap:var(--space-unit)}.address-actions vdr-entity-info{margin-top:1px}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { kind: "component", type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i1.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "component", type: i1.FormattedAddressComponent, selector: "vdr-formatted-address", inputs: ["address"] }, { kind: "component", type: i1.EntityInfoComponent, selector: "vdr-entity-info", inputs: ["small", "entity"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
226
+ }
227
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddressCardComponent, decorators: [{
228
+ type: Component,
229
+ args: [{ selector: 'vdr-address-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card\" *ngIf=\"addressForm.value as address\">\n <div class=\"card-header\">\n <div class=\"address-title\">\n <span class=\"street-line\" *ngIf=\"address.streetLine1\">{{ address.streetLine1 }},</span>\n {{ address.countryCode }}\n </div>\n <div class=\"default-controls\">\n <vdr-chip class=\"is-default p8\" *ngIf=\"isDefaultShipping\">\n <clr-icon shape=\"truck\"></clr-icon>\n {{ 'customer.default-shipping-address' | translate }}\n </vdr-chip>\n <vdr-chip class=\"is-default p8\" *ngIf=\"isDefaultBilling\">\n <clr-icon shape=\"credit-card\"></clr-icon>\n {{ 'customer.default-billing-address' | translate }}\n </vdr-chip>\n </div>\n </div>\n <div class=\"card-block\">\n <div class=\"card-text\">\n <vdr-formatted-address [address]=\"address\"></vdr-formatted-address>\n </div>\n </div>\n <div class=\"card-footer\">\n <div class=\"address-actions\">\n <vdr-entity-info [entity]=\"address\"></vdr-entity-info>\n <ng-container *ngIf=\"editable\">\n <button class=\"button-small\" (click)=\"editAddress()\">\n {{ 'common.edit' | translate }}\n </button>\n <vdr-dropdown>\n <button type=\"button\" class=\"button-small\" vdrDropdownTrigger>\n {{ 'common.more' | translate }}\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"></clr-icon>\n </button>\n <vdr-dropdown-menu>\n <button\n vdrDropdownItem\n [disabled]=\"isDefaultShipping\"\n (click)=\"setAsDefaultShippingAddress()\"\n >\n {{ 'customer.set-as-default-shipping-address' | translate }}\n </button>\n <button\n vdrDropdownItem\n [disabled]=\"isDefaultBilling\"\n (click)=\"setAsDefaultBillingAddress()\"\n >\n {{ 'customer.set-as-default-billing-address' | translate }}\n </button>\n <div class=\"dropdown-divider\"></div>\n <button type=\"button\" (click)=\"delete()\" vdrDropdownItem>\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\n {{ 'common.delete' | translate }}\n </button>\n </vdr-dropdown-menu>\n </vdr-dropdown>\n </ng-container>\n </div>\n </div>\n</div>\n", styles: [":host{display:block;max-width:360px}clr-input-container{margin-bottom:12px}.defaul-controls{display:flex}.is-default{margin:0;color:var(--color-success-500)}.address-actions{display:flex;align-items:center;gap:var(--space-unit)}.address-actions vdr-entity-info{margin-top:1px}\n"] }]
230
+ }], ctorParameters: () => [{ type: i1.ModalService }, { type: i0.ChangeDetectorRef }], propDecorators: { addressForm: [{
231
+ type: Input
232
+ }], customFields: [{
233
+ type: Input
234
+ }], availableCountries: [{
235
+ type: Input
236
+ }], isDefaultBilling: [{
237
+ type: Input
238
+ }], isDefaultShipping: [{
239
+ type: Input
240
+ }], editable: [{
241
+ type: Input
242
+ }], setAsDefaultShipping: [{
243
+ type: Output
244
+ }], setAsDefaultBilling: [{
245
+ type: Output
246
+ }], deleteAddress: [{
247
+ type: Output
248
+ }] } });
249
+
250
+ class SelectCustomerGroupDialogComponent {
251
+ constructor(dataService) {
252
+ this.dataService = dataService;
253
+ this.selectedGroupIds = [];
254
+ }
255
+ ngOnInit() {
256
+ this.groups$ = this.dataService.customer
257
+ .getCustomerGroupList()
258
+ .mapStream(res => res.customerGroups.items);
259
+ }
260
+ cancel() {
261
+ this.resolveWith();
262
+ }
263
+ add() {
264
+ this.resolveWith(this.selectedGroupIds);
265
+ }
266
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectCustomerGroupDialogComponent, deps: [{ token: i1.DataService }], target: i0.ɵɵFactoryTarget.Component }); }
267
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SelectCustomerGroupDialogComponent, selector: "vdr-select-customer-group-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\n {{ 'customer.add-customer-to-group' | translate }}\n</ng-template>\n\n<ng-select\n [items]=\"groups$ | async\"\n appendTo=\"body\"\n [addTag]=\"false\"\n [multiple]=\"true\"\n bindValue=\"id\"\n [(ngModel)]=\"selectedGroupIds\"\n [clearable]=\"true\"\n [searchable]=\"false\"\n>\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\n <span aria-hidden=\"true\" class=\"ng-value-icon left\" (click)=\"clear(item)\"> \u00D7 </span>\n <vdr-chip [colorFrom]=\"item.id\">{{ item.name }}</vdr-chip>\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\">\n <vdr-chip [colorFrom]=\"item.id\">{{ item.name }}</vdr-chip>\n </ng-template>\n</ng-select>\n\n\n<ng-template vdrDialogButtons>\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\n <button type=\"submit\" (click)=\"add()\" [disabled]=\"!selectedGroupIds.length\" class=\"btn btn-primary\">\n {{ 'customer.add-customer-to-groups-with-count' | translate: {count: selectedGroupIds.length} }}\n </button>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$2.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i3$2.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i3$2.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "component", type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { kind: "directive", type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
268
+ }
269
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectCustomerGroupDialogComponent, decorators: [{
270
+ type: Component,
271
+ args: [{ selector: 'vdr-select-customer-group-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\n {{ 'customer.add-customer-to-group' | translate }}\n</ng-template>\n\n<ng-select\n [items]=\"groups$ | async\"\n appendTo=\"body\"\n [addTag]=\"false\"\n [multiple]=\"true\"\n bindValue=\"id\"\n [(ngModel)]=\"selectedGroupIds\"\n [clearable]=\"true\"\n [searchable]=\"false\"\n>\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\n <span aria-hidden=\"true\" class=\"ng-value-icon left\" (click)=\"clear(item)\"> \u00D7 </span>\n <vdr-chip [colorFrom]=\"item.id\">{{ item.name }}</vdr-chip>\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\">\n <vdr-chip [colorFrom]=\"item.id\">{{ item.name }}</vdr-chip>\n </ng-template>\n</ng-select>\n\n\n<ng-template vdrDialogButtons>\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\n <button type=\"submit\" (click)=\"add()\" [disabled]=\"!selectedGroupIds.length\" class=\"btn btn-primary\">\n {{ 'customer.add-customer-to-groups-with-count' | translate: {count: selectedGroupIds.length} }}\n </button>\n</ng-template>\n" }]
272
+ }], ctorParameters: () => [{ type: i1.DataService }] });
273
+
274
+ class CustomerHistoryEntryHostComponent {
275
+ constructor(historyEntryComponentService) {
276
+ this.historyEntryComponentService = historyEntryComponentService;
277
+ this.expandClick = new EventEmitter();
278
+ }
279
+ ngOnInit() {
280
+ const componentType = this.historyEntryComponentService.getComponent(this.entry.type);
281
+ const componentRef = this.portalRef.createComponent(componentType);
282
+ componentRef.instance.entry = this.entry;
283
+ componentRef.instance.customer = this.customer;
284
+ this.instance = componentRef.instance;
285
+ this.componentRef = componentRef;
286
+ }
287
+ ngOnDestroy() {
288
+ this.componentRef?.destroy();
289
+ }
290
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerHistoryEntryHostComponent, deps: [{ token: i1.HistoryEntryComponentService }], target: i0.ɵɵFactoryTarget.Component }); }
291
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CustomerHistoryEntryHostComponent, selector: "vdr-customer-history-entry-host", inputs: { entry: "entry", customer: "customer", expanded: "expanded" }, outputs: { expandClick: "expandClick" }, viewQueries: [{ propertyName: "portalRef", first: true, predicate: ["portal"], descendants: true, read: ViewContainerRef, static: true }], exportAs: ["historyEntry"], ngImport: i0, template: ` <vdr-timeline-entry
292
+ [displayType]="instance.getDisplayType(entry)"
293
+ [iconShape]="instance.getIconShape && instance.getIconShape(entry)"
294
+ [createdAt]="entry.createdAt"
295
+ [name]="instance.getName && instance.getName(entry)"
296
+ [featured]="instance.isFeatured(entry)"
297
+ [collapsed]="!expanded && !instance.isFeatured(entry)"
298
+ (expandClick)="expandClick.emit()"
299
+ >
300
+ <div #portal></div>
301
+ </vdr-timeline-entry>`, isInline: true, dependencies: [{ kind: "component", type: i1.TimelineEntryComponent, selector: "vdr-timeline-entry", inputs: ["displayType", "createdAt", "name", "featured", "iconShape", "isFirst", "isLast", "collapsed"], outputs: ["expandClick"] }] }); }
302
+ }
303
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerHistoryEntryHostComponent, decorators: [{
304
+ type: Component,
305
+ args: [{
306
+ selector: 'vdr-customer-history-entry-host',
307
+ template: ` <vdr-timeline-entry
308
+ [displayType]="instance.getDisplayType(entry)"
309
+ [iconShape]="instance.getIconShape && instance.getIconShape(entry)"
310
+ [createdAt]="entry.createdAt"
311
+ [name]="instance.getName && instance.getName(entry)"
312
+ [featured]="instance.isFeatured(entry)"
313
+ [collapsed]="!expanded && !instance.isFeatured(entry)"
314
+ (expandClick)="expandClick.emit()"
315
+ >
316
+ <div #portal></div>
317
+ </vdr-timeline-entry>`,
318
+ exportAs: 'historyEntry',
319
+ }]
320
+ }], ctorParameters: () => [{ type: i1.HistoryEntryComponentService }], propDecorators: { entry: [{
321
+ type: Input
322
+ }], customer: [{
323
+ type: Input
324
+ }], expanded: [{
325
+ type: Input
326
+ }], expandClick: [{
327
+ type: Output
328
+ }], portalRef: [{
329
+ type: ViewChild,
330
+ args: ['portal', { static: true, read: ViewContainerRef }]
331
+ }] } });
332
+
333
+ class CustomerHistoryComponent {
334
+ constructor(historyEntryComponentService) {
335
+ this.historyEntryComponentService = historyEntryComponentService;
336
+ this.addNote = new EventEmitter();
337
+ this.updateNote = new EventEmitter();
338
+ this.deleteNote = new EventEmitter();
339
+ this.note = '';
340
+ this.expanded = false;
341
+ this.type = HistoryEntryType;
342
+ }
343
+ hasCustomComponent(type) {
344
+ return !!this.historyEntryComponentService.getComponent(type);
345
+ }
346
+ getDisplayType(entry) {
347
+ switch (entry.type) {
348
+ case HistoryEntryType.CUSTOMER_VERIFIED:
349
+ case HistoryEntryType.CUSTOMER_EMAIL_UPDATE_VERIFIED:
350
+ case HistoryEntryType.CUSTOMER_PASSWORD_RESET_VERIFIED:
351
+ return 'success';
352
+ case HistoryEntryType.CUSTOMER_REGISTERED:
353
+ return 'muted';
354
+ case HistoryEntryType.CUSTOMER_REMOVED_FROM_GROUP:
355
+ return 'error';
356
+ default:
357
+ return 'default';
358
+ }
359
+ }
360
+ getTimelineIcon(entry) {
361
+ switch (entry.type) {
362
+ case HistoryEntryType.CUSTOMER_REGISTERED:
363
+ return 'user';
364
+ case HistoryEntryType.CUSTOMER_VERIFIED:
365
+ return ['assign-user', 'is-solid'];
366
+ case HistoryEntryType.CUSTOMER_NOTE:
367
+ return 'note';
368
+ case HistoryEntryType.CUSTOMER_ADDED_TO_GROUP:
369
+ case HistoryEntryType.CUSTOMER_REMOVED_FROM_GROUP:
370
+ return 'users';
371
+ }
372
+ }
373
+ isFeatured(entry) {
374
+ switch (entry.type) {
375
+ case HistoryEntryType.CUSTOMER_REGISTERED:
376
+ case HistoryEntryType.CUSTOMER_VERIFIED:
377
+ return true;
378
+ default:
379
+ return false;
380
+ }
381
+ }
382
+ getName(entry) {
383
+ const { administrator } = entry;
384
+ if (administrator) {
385
+ return `${administrator.firstName} ${administrator.lastName}`;
386
+ }
387
+ else {
388
+ return `${this.customer.firstName} ${this.customer.lastName}`;
389
+ }
390
+ }
391
+ addNoteToCustomer() {
392
+ this.addNote.emit({ note: this.note });
393
+ this.note = '';
394
+ }
395
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerHistoryComponent, deps: [{ token: i1.HistoryEntryComponentService }], target: i0.ɵɵFactoryTarget.Component }); }
396
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CustomerHistoryComponent, selector: "vdr-customer-history", inputs: { customer: "customer", history: "history" }, outputs: { addNote: "addNote", updateNote: "updateNote", deleteNote: "deleteNote" }, ngImport: i0, template: "<div class=\"entry-list\">\n <vdr-timeline-entry iconShape=\"note\" displayType=\"muted\" [featured]=\"true\" *vdrIfPermissions=\"'UpdateCustomer'\"\n [isFirst]=\"true\">\n <div class=\"note-entry\">\n <textarea [(ngModel)]=\"note\" name=\"note\" class=\"note\"></textarea>\n <button class=\"btn btn-secondary\" [disabled]=\"!note\" (click)=\"addNoteToCustomer()\">\n {{ 'order.add-note' | translate }}\n </button>\n </div>\n </vdr-timeline-entry>\n <ng-container *ngFor=\"let entry of history\">\n <vdr-customer-history-entry-host\n *ngIf=\"hasCustomComponent(entry.type); else defaultComponents\"\n [customer]=\"customer\"\n [entry]=\"entry\"\n [expanded]=\"expanded\"\n (expandClick)=\"expanded = !expanded\"\n ></vdr-customer-history-entry-host>\n <ng-template #defaultComponents>\n <vdr-timeline-entry\n [displayType]=\"getDisplayType(entry)\"\n [iconShape]=\"getTimelineIcon(entry)\"\n [createdAt]=\"entry.createdAt\"\n [name]=\"getName(entry)\"\n [featured]=\"isFeatured(entry)\"\n >\n <ng-container [ngSwitch]=\"entry.type\">\n <ng-container *ngSwitchCase=\"type.CUSTOMER_REGISTERED\">\n <div class=\"title\">\n {{ 'customer.history-customer-registered' | translate }}\n </div>\n <ng-container *ngIf=\"entry.data.strategy === 'native'; else namedStrategy\">\n {{ 'customer.history-using-native-auth-strategy' | translate }}\n </ng-container>\n <ng-template #namedStrategy>\n {{\n 'customer.history-using-external-auth-strategy'\n | translate: { strategy: entry.data.strategy }\n }}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_VERIFIED\">\n <div class=\"title\">\n {{ 'customer.history-customer-verified' | translate }}\n </div>\n <ng-container *ngIf=\"entry.data.strategy === 'native'; else namedStrategy\">\n {{ 'customer.history-using-native-auth-strategy' | translate }}\n </ng-container>\n <ng-template #namedStrategy>\n {{\n 'customer.history-using-external-auth-strategy'\n | translate: { strategy: entry.data.strategy }\n }}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_DETAIL_UPDATED\">\n <div class=\"flex\">\n {{ 'customer.history-customer-detail-updated' | translate }}\n <vdr-history-entry-detail>\n <vdr-object-tree [value]=\"entry.data.input\"></vdr-object-tree>\n </vdr-history-entry-detail>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDED_TO_GROUP\">\n {{\n 'customer.history-customer-added-to-group'\n | translate: { groupName: entry.data.groupName }\n }}\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_REMOVED_FROM_GROUP\">\n {{\n 'customer.history-customer-removed-from-group'\n | translate: { groupName: entry.data.groupName }\n }}\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_CREATED\">\n {{ 'customer.history-customer-address-created' | translate }}\n <div class=\"flex\">\n <div class=\"address-string\">{{ entry.data.address }}</div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_UPDATED\">\n {{ 'customer.history-customer-address-updated' | translate }}\n <div class=\"flex\">\n <div class=\"address-string\">{{ entry.data.address }}</div>\n <vdr-history-entry-detail>\n <vdr-object-tree [value]=\"entry.data.input\"></vdr-object-tree>\n </vdr-history-entry-detail>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_DELETED\">\n {{ 'customer.history-customer-address-deleted' | translate }}\n <div class=\"address-string\">{{ entry.data.address }}</div>\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_UPDATED\">\n {{ 'customer.history-customer-password-updated' | translate }}\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_RESET_REQUESTED\">\n {{ 'customer.history-customer-password-reset-requested' | translate }}\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_RESET_VERIFIED\">\n {{ 'customer.history-customer-password-reset-verified' | translate }}\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_EMAIL_UPDATE_REQUESTED\">\n <div class=\"flex\">\n {{ 'customer.history-customer-email-update-requested' | translate }}\n <vdr-history-entry-detail>\n <vdr-labeled-data [label]=\"'customer.old-email-address' | translate\">{{\n entry.data.oldEmailAddress\n }}\n </vdr-labeled-data>\n <vdr-labeled-data [label]=\"'customer.new-email-address' | translate\">{{\n entry.data.newEmailAddress\n }}\n </vdr-labeled-data>\n </vdr-history-entry-detail>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_EMAIL_UPDATE_VERIFIED\">\n <div class=\"flex\">\n {{ 'customer.history-customer-email-update-verified' | translate }}\n <vdr-history-entry-detail>\n <vdr-labeled-data [label]=\"'customer.old-email-address' | translate\">{{\n entry.data.oldEmailAddress\n }}\n </vdr-labeled-data>\n <vdr-labeled-data [label]=\"'customer.new-email-address' | translate\">{{\n entry.data.newEmailAddress\n }}\n </vdr-labeled-data>\n </vdr-history-entry-detail>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_NOTE\">\n <div class=\"flex\">\n <div class=\"note-text\">\n {{ entry.data.note }}\n </div>\n <div class=\"flex-spacer\"></div>\n <vdr-dropdown>\n <button class=\"button-small ml-1\" vdrDropdownTrigger>\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"></clr-icon>\n </button>\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\n <button\n vdrDropdownItem\n (click)=\"updateNote.emit(entry)\"\n [disabled]=\"!('UpdateCustomer' | hasPermission)\"\n >\n <clr-icon shape=\"edit\"></clr-icon>\n {{ 'common.edit' | translate }}\n </button>\n <div class=\"dropdown-divider\"></div>\n <button\n vdrDropdownItem\n (click)=\"deleteNote.emit(entry)\"\n [disabled]=\"!('UpdateCustomer' | hasPermission)\"\n >\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\n {{ 'common.delete' | translate }}\n </button>\n </vdr-dropdown-menu>\n </vdr-dropdown>\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div class=\"title\">\n {{ entry.type | translate }}\n </div>\n <vdr-history-entry-detail *ngIf=\"entry.data\">\n <vdr-object-tree [value]=\"entry.data\"></vdr-object-tree>\n </vdr-history-entry-detail>\n </ng-container>\n </ng-container>\n </vdr-timeline-entry>\n </ng-template>\n </ng-container>\n <vdr-timeline-entry [isLast]=\"true\"></vdr-timeline-entry>\n</div>\n", styles: [".entry-list{margin:24px 12px 24px 24px}.note-entry{display:flex;align-items:center}.note-entry .note{flex:1}.note-entry button{margin:0}textarea.note{flex:1;height:36px;border-radius:3px;margin-inline-end:6px}.note-text{color:var(--color-text-100);white-space:pre-wrap}.address-string{font-size:smaller;color:var(--color-text-200)}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "component", type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i1.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "component", type: i1.LabeledDataComponent, selector: "vdr-labeled-data", inputs: ["label"] }, { kind: "component", type: i1.ObjectTreeComponent, selector: "vdr-object-tree", inputs: ["value", "isArrayItem"] }, { kind: "directive", type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i1.TimelineEntryComponent, selector: "vdr-timeline-entry", inputs: ["displayType", "createdAt", "name", "featured", "iconShape", "isFirst", "isLast", "collapsed"], outputs: ["expandClick"] }, { kind: "component", type: i1.HistoryEntryDetailComponent, selector: "vdr-history-entry-detail" }, { kind: "component", type: CustomerHistoryEntryHostComponent, selector: "vdr-customer-history-entry-host", inputs: ["entry", "customer", "expanded"], outputs: ["expandClick"], exportAs: ["historyEntry"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.HasPermissionPipe, name: "hasPermission" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
397
+ }
398
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerHistoryComponent, decorators: [{
399
+ type: Component,
400
+ args: [{ selector: 'vdr-customer-history', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"entry-list\">\n <vdr-timeline-entry iconShape=\"note\" displayType=\"muted\" [featured]=\"true\" *vdrIfPermissions=\"'UpdateCustomer'\"\n [isFirst]=\"true\">\n <div class=\"note-entry\">\n <textarea [(ngModel)]=\"note\" name=\"note\" class=\"note\"></textarea>\n <button class=\"btn btn-secondary\" [disabled]=\"!note\" (click)=\"addNoteToCustomer()\">\n {{ 'order.add-note' | translate }}\n </button>\n </div>\n </vdr-timeline-entry>\n <ng-container *ngFor=\"let entry of history\">\n <vdr-customer-history-entry-host\n *ngIf=\"hasCustomComponent(entry.type); else defaultComponents\"\n [customer]=\"customer\"\n [entry]=\"entry\"\n [expanded]=\"expanded\"\n (expandClick)=\"expanded = !expanded\"\n ></vdr-customer-history-entry-host>\n <ng-template #defaultComponents>\n <vdr-timeline-entry\n [displayType]=\"getDisplayType(entry)\"\n [iconShape]=\"getTimelineIcon(entry)\"\n [createdAt]=\"entry.createdAt\"\n [name]=\"getName(entry)\"\n [featured]=\"isFeatured(entry)\"\n >\n <ng-container [ngSwitch]=\"entry.type\">\n <ng-container *ngSwitchCase=\"type.CUSTOMER_REGISTERED\">\n <div class=\"title\">\n {{ 'customer.history-customer-registered' | translate }}\n </div>\n <ng-container *ngIf=\"entry.data.strategy === 'native'; else namedStrategy\">\n {{ 'customer.history-using-native-auth-strategy' | translate }}\n </ng-container>\n <ng-template #namedStrategy>\n {{\n 'customer.history-using-external-auth-strategy'\n | translate: { strategy: entry.data.strategy }\n }}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_VERIFIED\">\n <div class=\"title\">\n {{ 'customer.history-customer-verified' | translate }}\n </div>\n <ng-container *ngIf=\"entry.data.strategy === 'native'; else namedStrategy\">\n {{ 'customer.history-using-native-auth-strategy' | translate }}\n </ng-container>\n <ng-template #namedStrategy>\n {{\n 'customer.history-using-external-auth-strategy'\n | translate: { strategy: entry.data.strategy }\n }}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_DETAIL_UPDATED\">\n <div class=\"flex\">\n {{ 'customer.history-customer-detail-updated' | translate }}\n <vdr-history-entry-detail>\n <vdr-object-tree [value]=\"entry.data.input\"></vdr-object-tree>\n </vdr-history-entry-detail>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDED_TO_GROUP\">\n {{\n 'customer.history-customer-added-to-group'\n | translate: { groupName: entry.data.groupName }\n }}\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_REMOVED_FROM_GROUP\">\n {{\n 'customer.history-customer-removed-from-group'\n | translate: { groupName: entry.data.groupName }\n }}\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_CREATED\">\n {{ 'customer.history-customer-address-created' | translate }}\n <div class=\"flex\">\n <div class=\"address-string\">{{ entry.data.address }}</div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_UPDATED\">\n {{ 'customer.history-customer-address-updated' | translate }}\n <div class=\"flex\">\n <div class=\"address-string\">{{ entry.data.address }}</div>\n <vdr-history-entry-detail>\n <vdr-object-tree [value]=\"entry.data.input\"></vdr-object-tree>\n </vdr-history-entry-detail>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_ADDRESS_DELETED\">\n {{ 'customer.history-customer-address-deleted' | translate }}\n <div class=\"address-string\">{{ entry.data.address }}</div>\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_UPDATED\">\n {{ 'customer.history-customer-password-updated' | translate }}\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_RESET_REQUESTED\">\n {{ 'customer.history-customer-password-reset-requested' | translate }}\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_PASSWORD_RESET_VERIFIED\">\n {{ 'customer.history-customer-password-reset-verified' | translate }}\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_EMAIL_UPDATE_REQUESTED\">\n <div class=\"flex\">\n {{ 'customer.history-customer-email-update-requested' | translate }}\n <vdr-history-entry-detail>\n <vdr-labeled-data [label]=\"'customer.old-email-address' | translate\">{{\n entry.data.oldEmailAddress\n }}\n </vdr-labeled-data>\n <vdr-labeled-data [label]=\"'customer.new-email-address' | translate\">{{\n entry.data.newEmailAddress\n }}\n </vdr-labeled-data>\n </vdr-history-entry-detail>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_EMAIL_UPDATE_VERIFIED\">\n <div class=\"flex\">\n {{ 'customer.history-customer-email-update-verified' | translate }}\n <vdr-history-entry-detail>\n <vdr-labeled-data [label]=\"'customer.old-email-address' | translate\">{{\n entry.data.oldEmailAddress\n }}\n </vdr-labeled-data>\n <vdr-labeled-data [label]=\"'customer.new-email-address' | translate\">{{\n entry.data.newEmailAddress\n }}\n </vdr-labeled-data>\n </vdr-history-entry-detail>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"type.CUSTOMER_NOTE\">\n <div class=\"flex\">\n <div class=\"note-text\">\n {{ entry.data.note }}\n </div>\n <div class=\"flex-spacer\"></div>\n <vdr-dropdown>\n <button class=\"button-small ml-1\" vdrDropdownTrigger>\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"></clr-icon>\n </button>\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\n <button\n vdrDropdownItem\n (click)=\"updateNote.emit(entry)\"\n [disabled]=\"!('UpdateCustomer' | hasPermission)\"\n >\n <clr-icon shape=\"edit\"></clr-icon>\n {{ 'common.edit' | translate }}\n </button>\n <div class=\"dropdown-divider\"></div>\n <button\n vdrDropdownItem\n (click)=\"deleteNote.emit(entry)\"\n [disabled]=\"!('UpdateCustomer' | hasPermission)\"\n >\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\n {{ 'common.delete' | translate }}\n </button>\n </vdr-dropdown-menu>\n </vdr-dropdown>\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div class=\"title\">\n {{ entry.type | translate }}\n </div>\n <vdr-history-entry-detail *ngIf=\"entry.data\">\n <vdr-object-tree [value]=\"entry.data\"></vdr-object-tree>\n </vdr-history-entry-detail>\n </ng-container>\n </ng-container>\n </vdr-timeline-entry>\n </ng-template>\n </ng-container>\n <vdr-timeline-entry [isLast]=\"true\"></vdr-timeline-entry>\n</div>\n", styles: [".entry-list{margin:24px 12px 24px 24px}.note-entry{display:flex;align-items:center}.note-entry .note{flex:1}.note-entry button{margin:0}textarea.note{flex:1;height:36px;border-radius:3px;margin-inline-end:6px}.note-text{color:var(--color-text-100);white-space:pre-wrap}.address-string{font-size:smaller;color:var(--color-text-200)}\n"] }]
401
+ }], ctorParameters: () => [{ type: i1.HistoryEntryComponentService }], propDecorators: { customer: [{
402
+ type: Input
403
+ }], history: [{
404
+ type: Input
405
+ }], addNote: [{
406
+ type: Output
407
+ }], updateNote: [{
408
+ type: Output
409
+ }], deleteNote: [{
410
+ type: Output
411
+ }] } });
412
+
413
+ const CUSTOMER_DETAIL_QUERY = gql `
414
+ query CustomerDetailQuery($id: ID!, $orderListOptions: OrderListOptions) {
415
+ customer(id: $id) {
416
+ ...Customer
417
+ groups {
418
+ id
419
+ name
420
+ }
421
+ orders(options: $orderListOptions) {
422
+ items {
423
+ id
424
+ code
425
+ type
426
+ state
427
+ total
428
+ totalWithTax
429
+ currencyCode
430
+ createdAt
431
+ updatedAt
432
+ orderPlacedAt
433
+ }
434
+ totalItems
435
+ }
436
+ }
437
+ }
438
+ ${CUSTOMER_FRAGMENT}
439
+ `;
440
+ class CustomerDetailComponent extends TypedBaseDetailComponent {
441
+ constructor(changeDetector, formBuilder, dataService, modalService, notificationService) {
442
+ super();
443
+ this.changeDetector = changeDetector;
444
+ this.formBuilder = formBuilder;
445
+ this.dataService = dataService;
446
+ this.modalService = modalService;
447
+ this.notificationService = notificationService;
448
+ this.customFields = this.getCustomFieldConfig('Customer');
449
+ this.addressCustomFields = this.getCustomFieldConfig('Address');
450
+ this.detailForm = this.formBuilder.group({
451
+ customer: this.formBuilder.group({
452
+ title: '',
453
+ firstName: ['', Validators.required],
454
+ lastName: ['', Validators.required],
455
+ phoneNumber: '',
456
+ emailAddress: ['', [Validators.required, Validators.email]],
457
+ password: '',
458
+ customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),
459
+ }),
460
+ addresses: new UntypedFormArray([]),
461
+ });
462
+ this.fetchHistory = new Subject();
463
+ this.addressesToDeleteIds = new Set();
464
+ this.addressDefaultsUpdated = false;
465
+ this.ordersPerPage = 10;
466
+ this.currentOrdersPage = 1;
467
+ this.orderListUpdates$ = new Subject();
468
+ }
469
+ ngOnInit() {
470
+ this.init();
471
+ this.availableCountries$ = this.dataService.settings
472
+ .getAvailableCountries()
473
+ .mapSingle(result => result.countries.items)
474
+ .pipe(shareReplay(1));
475
+ const customerWithUpdates$ = this.entity$.pipe(merge(this.orderListUpdates$));
476
+ this.orders$ = customerWithUpdates$.pipe(map(customer => customer.orders.items));
477
+ this.ordersCount$ = this.entity$.pipe(map(customer => customer.orders.totalItems));
478
+ this.history$ = this.fetchHistory.pipe(startWith(null), switchMap(() => this.dataService.customer
479
+ .getCustomerHistory(this.id, {
480
+ sort: {
481
+ createdAt: SortOrder.DESC,
482
+ },
483
+ })
484
+ .mapStream(data => data.customer?.history.items)));
485
+ }
486
+ ngOnDestroy() {
487
+ this.destroy();
488
+ this.orderListUpdates$.complete();
489
+ }
490
+ getAddressFormControls() {
491
+ const formArray = this.detailForm.get(['addresses']);
492
+ return formArray.controls;
493
+ }
494
+ setDefaultBillingAddressId(id) {
495
+ this.defaultBillingAddressId = id;
496
+ this.addressDefaultsUpdated = true;
497
+ }
498
+ setDefaultShippingAddressId(id) {
499
+ this.defaultShippingAddressId = id;
500
+ this.addressDefaultsUpdated = true;
501
+ }
502
+ toggleDeleteAddress(id) {
503
+ if (this.addressesToDeleteIds.has(id)) {
504
+ this.addressesToDeleteIds.delete(id);
505
+ }
506
+ else {
507
+ this.addressesToDeleteIds.add(id);
508
+ }
509
+ }
510
+ addAddress() {
511
+ const addressFormArray = this.detailForm.get('addresses');
512
+ const newAddress = this.formBuilder.group({
513
+ fullName: '',
514
+ company: '',
515
+ streetLine1: ['', Validators.required],
516
+ streetLine2: '',
517
+ city: '',
518
+ province: '',
519
+ postalCode: '',
520
+ countryCode: ['', Validators.required],
521
+ phoneNumber: '',
522
+ defaultShippingAddress: false,
523
+ defaultBillingAddress: false,
524
+ customFields: this.formBuilder.group(this.addressCustomFields.reduce((hash, field) => ({ ...hash, [field.name]: '' }), {})),
525
+ });
526
+ addressFormArray.push(newAddress);
527
+ }
528
+ setOrderItemsPerPage(itemsPerPage) {
529
+ this.ordersPerPage = +itemsPerPage;
530
+ this.fetchOrdersList();
531
+ }
532
+ setOrderCurrentPage(page) {
533
+ this.currentOrdersPage = +page;
534
+ this.fetchOrdersList();
535
+ }
536
+ create() {
537
+ const customerForm = this.detailForm.get('customer');
538
+ if (!customerForm) {
539
+ return;
540
+ }
541
+ const { title, emailAddress, firstName, lastName, phoneNumber, password } = customerForm.value;
542
+ const customFields = customerForm.get('customFields')?.value;
543
+ if (!emailAddress || !firstName || !lastName) {
544
+ return;
545
+ }
546
+ const customer = {
547
+ title,
548
+ emailAddress,
549
+ firstName,
550
+ lastName,
551
+ phoneNumber,
552
+ customFields,
553
+ };
554
+ this.dataService.customer.createCustomer(customer, password).subscribe(({ createCustomer }) => {
555
+ switch (createCustomer.__typename) {
556
+ case 'Customer':
557
+ this.notificationService.success(marker('common.notify-create-success'), {
558
+ entity: 'Customer',
559
+ });
560
+ if (createCustomer.emailAddress && !password) {
561
+ this.notificationService.notify({
562
+ message: marker('customer.email-verification-sent'),
563
+ translationVars: { emailAddress },
564
+ type: 'info',
565
+ duration: 10000,
566
+ });
567
+ }
568
+ this.detailForm.markAsPristine();
569
+ this.addressDefaultsUpdated = false;
570
+ this.changeDetector.markForCheck();
571
+ this.router.navigate(['../', createCustomer.id], { relativeTo: this.route });
572
+ break;
573
+ case 'EmailAddressConflictError':
574
+ this.notificationService.error(createCustomer.message);
575
+ }
576
+ });
577
+ }
578
+ save() {
579
+ this.entity$
580
+ .pipe(take(1), mergeMap(({ id }) => {
581
+ const saveOperations = [];
582
+ const customerForm = this.detailForm.get('customer');
583
+ if (customerForm && customerForm.dirty) {
584
+ const formValue = customerForm.value;
585
+ const customFields = customerForm.get('customFields')?.value;
586
+ const customer = {
587
+ id,
588
+ title: formValue.title,
589
+ emailAddress: formValue.emailAddress,
590
+ firstName: formValue.firstName,
591
+ lastName: formValue.lastName,
592
+ phoneNumber: formValue.phoneNumber,
593
+ customFields,
594
+ };
595
+ saveOperations.push(this.dataService.customer
596
+ .updateCustomer(customer)
597
+ .pipe(map(res => res.updateCustomer)));
598
+ }
599
+ const addressFormArray = this.detailForm.get('addresses');
600
+ if ((addressFormArray && addressFormArray.dirty) || this.addressDefaultsUpdated) {
601
+ for (const addressControl of addressFormArray.controls) {
602
+ if (addressControl.dirty || this.addressDefaultsUpdated) {
603
+ const address = addressControl.value;
604
+ const input = {
605
+ fullName: address.fullName,
606
+ company: address.company,
607
+ streetLine1: address.streetLine1,
608
+ streetLine2: address.streetLine2,
609
+ city: address.city,
610
+ province: address.province,
611
+ postalCode: address.postalCode,
612
+ countryCode: address.countryCode,
613
+ phoneNumber: address.phoneNumber,
614
+ defaultShippingAddress: this.defaultShippingAddressId === address.id,
615
+ defaultBillingAddress: this.defaultBillingAddressId === address.id,
616
+ customFields: address.customFields,
617
+ };
618
+ if (!address.id) {
619
+ saveOperations.push(this.dataService.customer
620
+ .createCustomerAddress(id, input)
621
+ .pipe(map(res => res.createCustomerAddress)));
622
+ }
623
+ else {
624
+ if (this.addressesToDeleteIds.has(address.id)) {
625
+ saveOperations.push(this.dataService.customer
626
+ .deleteCustomerAddress(address.id)
627
+ .pipe(map(res => res.deleteCustomerAddress)));
628
+ }
629
+ else {
630
+ saveOperations.push(this.dataService.customer
631
+ .updateCustomerAddress({
632
+ ...input,
633
+ id: address.id,
634
+ })
635
+ .pipe(map(res => res.updateCustomerAddress)));
636
+ }
637
+ }
638
+ }
639
+ }
640
+ }
641
+ return forkJoin(saveOperations);
642
+ }))
643
+ .subscribe(data => {
644
+ let notified = false;
645
+ for (const result of data) {
646
+ switch (result.__typename) {
647
+ case 'Customer':
648
+ case 'Address':
649
+ case 'Success':
650
+ if (!notified) {
651
+ this.notificationService.success(marker('common.notify-update-success'), {
652
+ entity: 'Customer',
653
+ });
654
+ notified = true;
655
+ this.detailForm.markAsPristine();
656
+ this.addressDefaultsUpdated = false;
657
+ this.changeDetector.markForCheck();
658
+ this.fetchHistory.next();
659
+ this.refreshCustomer().subscribe();
660
+ }
661
+ break;
662
+ case 'EmailAddressConflictError':
663
+ this.notificationService.error(result.message);
664
+ break;
665
+ }
666
+ }
667
+ }, err => {
668
+ this.notificationService.error(marker('common.notify-update-error'), {
669
+ entity: 'Customer',
670
+ });
671
+ });
672
+ }
673
+ addToGroup() {
674
+ this.modalService
675
+ .fromComponent(SelectCustomerGroupDialogComponent, {
676
+ size: 'md',
677
+ })
678
+ .pipe(switchMap(groupIds => (groupIds ? from(groupIds) : EMPTY)), concatMap(groupId => this.dataService.customer.addCustomersToGroup(groupId, [this.id])))
679
+ .subscribe({
680
+ next: res => {
681
+ this.notificationService.success(marker(`customer.add-customers-to-group-success`), {
682
+ customerCount: 1,
683
+ groupName: res.addCustomersToGroup.name,
684
+ });
685
+ },
686
+ complete: () => {
687
+ this.refreshCustomer().subscribe();
688
+ this.fetchHistory.next();
689
+ },
690
+ });
691
+ }
692
+ removeFromGroup(group) {
693
+ this.modalService
694
+ .dialog({
695
+ title: marker('customer.confirm-remove-customer-from-group'),
696
+ buttons: [
697
+ { type: 'secondary', label: marker('common.cancel') },
698
+ { type: 'danger', label: marker('common.delete'), returnValue: true },
699
+ ],
700
+ })
701
+ .pipe(switchMap(response => response
702
+ ? this.dataService.customer.removeCustomersFromGroup(group.id, [this.id])
703
+ : EMPTY), switchMap(() => this.refreshCustomer()))
704
+ .subscribe(result => {
705
+ this.notificationService.success(marker(`customer.remove-customers-from-group-success`), {
706
+ customerCount: 1,
707
+ groupName: group.name,
708
+ });
709
+ this.fetchHistory.next();
710
+ });
711
+ }
712
+ addNoteToCustomer({ note }) {
713
+ this.dataService.customer.addNoteToCustomer(this.id, note).subscribe(() => {
714
+ this.fetchHistory.next();
715
+ this.notificationService.success(marker('common.notify-create-success'), {
716
+ entity: 'Note',
717
+ });
718
+ });
719
+ }
720
+ updateNote(entry) {
721
+ this.modalService
722
+ .fromComponent(EditNoteDialogComponent, {
723
+ closable: true,
724
+ locals: {
725
+ displayPrivacyControls: false,
726
+ note: entry.data.note,
727
+ },
728
+ })
729
+ .pipe(switchMap(result => {
730
+ if (result) {
731
+ return this.dataService.customer.updateCustomerNote({
732
+ noteId: entry.id,
733
+ note: result.note,
734
+ });
735
+ }
736
+ else {
737
+ return EMPTY;
738
+ }
739
+ }))
740
+ .subscribe(result => {
741
+ this.fetchHistory.next();
742
+ this.notificationService.success(marker('common.notify-update-success'), {
743
+ entity: 'Note',
744
+ });
745
+ });
746
+ }
747
+ deleteNote(entry) {
748
+ return this.modalService
749
+ .dialog({
750
+ title: marker('common.confirm-delete-note'),
751
+ body: entry.data.note,
752
+ buttons: [
753
+ { type: 'secondary', label: marker('common.cancel') },
754
+ { type: 'danger', label: marker('common.delete'), returnValue: true },
755
+ ],
756
+ })
757
+ .pipe(switchMap(res => (res ? this.dataService.customer.deleteCustomerNote(entry.id) : EMPTY)))
758
+ .subscribe(() => {
759
+ this.fetchHistory.next();
760
+ this.notificationService.success(marker('common.notify-delete-success'), {
761
+ entity: 'Note',
762
+ });
763
+ });
764
+ }
765
+ setFormValues(entity) {
766
+ const customerGroup = this.detailForm.get('customer');
767
+ if (customerGroup) {
768
+ customerGroup.patchValue({
769
+ title: entity.title ?? null,
770
+ firstName: entity.firstName,
771
+ lastName: entity.lastName,
772
+ phoneNumber: entity.phoneNumber ?? null,
773
+ emailAddress: entity.emailAddress,
774
+ password: '',
775
+ customFields: {},
776
+ });
777
+ }
778
+ if (entity.addresses) {
779
+ const addressesArray = new UntypedFormArray([]);
780
+ for (const address of entity.addresses) {
781
+ const { customFields, ...rest } = address;
782
+ const addressGroup = this.formBuilder.group({
783
+ ...rest,
784
+ countryCode: address.country.code,
785
+ customFields: this.formBuilder.group(this.addressCustomFields.reduce((hash, field) => ({
786
+ ...hash,
787
+ [field.name]: address['customFields'][field.name],
788
+ }), {})),
789
+ });
790
+ addressesArray.push(addressGroup);
791
+ if (address.defaultShippingAddress) {
792
+ this.defaultShippingAddressId = address.id;
793
+ }
794
+ if (address.defaultBillingAddress) {
795
+ this.defaultBillingAddressId = address.id;
796
+ }
797
+ }
798
+ this.detailForm.setControl('addresses', addressesArray);
799
+ }
800
+ if (this.customFields.length) {
801
+ this.setCustomFieldFormValues(this.customFields, this.detailForm.get(['customer', 'customFields']), entity);
802
+ }
803
+ this.changeDetector.markForCheck();
804
+ }
805
+ /**
806
+ * Refetch the customer with the current order list settings.
807
+ */
808
+ fetchOrdersList() {
809
+ this.dataService
810
+ .query(CustomerDetailQueryDocument, {
811
+ id: this.id,
812
+ orderListOptions: {
813
+ take: this.ordersPerPage,
814
+ skip: (this.currentOrdersPage - 1) * this.ordersPerPage,
815
+ sort: { orderPlacedAt: SortOrder.DESC },
816
+ },
817
+ })
818
+ .single$.pipe(map(data => data.customer), filter(notNullOrUndefined))
819
+ .subscribe(result => this.orderListUpdates$.next(result));
820
+ }
821
+ refreshCustomer() {
822
+ return this.dataService.query(CustomerDetailQueryDocument, {
823
+ id: this.id,
824
+ orderListOptions: { take: 0 },
825
+ }).single$;
826
+ }
827
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerDetailComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.FormBuilder }, { token: i1.DataService }, { token: i1.ModalService }, { token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
828
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CustomerDetailComponent, selector: "vdr-customer-detail", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"customer-detail\"></vdr-action-bar-items>\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"!(addressDefaultsUpdated || (detailForm.valid && detailForm.dirty))\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n *vdrIfPermissions=\"'UpdateCustomer'\"\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"!(addressDefaultsUpdated || (detailForm.valid && detailForm.dirty))\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"customer-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as customer\">\n <vdr-customer-status-label [customer]=\"customer\"></vdr-customer-status-label>\n <vdr-labeled-data\n class=\"last-login\"\n *ngIf=\"customer.user?.lastLogin as lastLogin\"\n [label]=\"'customer.last-login' | translate\"\n >\n <time [dateTime]=\"lastLogin\">{{ lastLogin | timeAgo }}</time>\n </vdr-labeled-data>\n </vdr-card>\n <vdr-card\n [title]=\"'customer.customer-groups' | translate\"\n *ngIf=\"(entity$ | async)?.groups as groups\"\n >\n <div *ngIf=\"groups.length; else noGroups\">\n <vdr-chip\n *ngFor=\"let group of groups\"\n [colorFrom]=\"group.id\"\n icon=\"times\"\n (iconClick)=\"removeFromGroup(group)\"\n >{{ group.name }}</vdr-chip\n >\n </div>\n <ng-template #noGroups>\n <span class=\"color-weight-400\">\n {{ 'customer.not-a-member-of-any-groups' | translate }}\n </span>\n </ng-template>\n <div>\n <button\n class=\"button-small mt-1\"\n (click)=\"addToGroup()\"\n *vdrIfPermissions=\"'UpdateCustomerGroup'\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'customer.add-customer-to-group' | translate }}\n </button>\n </div>\n </vdr-card>\n <vdr-card>\n <vdr-page-entity-info *ngIf=\"entity$ | async as entity\" [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <form class=\"form\" [formGroup]=\"detailForm.get('customer')\">\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field\n [label]=\"'customer.title' | translate\"\n for=\"title\"\n [readOnlyToggle]=\"!(isNew$ | async)\"\n >\n <input id=\"title\" type=\"text\" formControlName=\"title\" />\n </vdr-form-field>\n <div><!-- spacer --></div>\n <vdr-form-field\n [label]=\"'customer.first-name' | translate\"\n for=\"firstName\"\n [readOnlyToggle]=\"!(isNew$ | async)\"\n >\n <input id=\"firstName\" type=\"text\" formControlName=\"firstName\" />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'customer.last-name' | translate\"\n for=\"lastName\"\n [readOnlyToggle]=\"!(isNew$ | async)\"\n >\n <input id=\"lastName\" type=\"text\" formControlName=\"lastName\" />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'customer.email-address' | translate\"\n for=\"emailAddress\"\n [readOnlyToggle]=\"!(isNew$ | async)\"\n >\n <input id=\"emailAddress\" type=\"text\" formControlName=\"emailAddress\" />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'customer.phone-number' | translate\"\n for=\"phoneNumber\"\n [readOnlyToggle]=\"!(isNew$ | async)\"\n >\n <input id=\"phoneNumber\" type=\"text\" formControlName=\"phoneNumber\" />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'customer.password' | translate\"\n for=\"password\"\n *ngIf=\"isNew$ | async\"\n >\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"Customer\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customer.customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n </form>\n <vdr-custom-detail-component-host\n locationId=\"customer-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n <ng-container *ngIf=\"!(isNew$ | async)\">\n <vdr-card [title]=\"'customer.addresses' | translate\">\n <div class=\"form-grid\">\n <vdr-address-card\n *ngFor=\"let addressForm of getAddressFormControls()\"\n [class.to-delete]=\"addressesToDeleteIds.has(addressForm.value.id)\"\n [availableCountries]=\"availableCountries$ | async\"\n [isDefaultBilling]=\"defaultBillingAddressId === addressForm.value.id\"\n [isDefaultShipping]=\"defaultShippingAddressId === addressForm.value.id\"\n [addressForm]=\"addressForm\"\n [customFields]=\"addressCustomFields\"\n [editable]=\"\n (['UpdateCustomer'] | hasPermission) &&\n !addressesToDeleteIds.has(addressForm.value.id)\n \"\n (setAsDefaultBilling)=\"setDefaultBillingAddressId($event)\"\n (setAsDefaultShipping)=\"setDefaultShippingAddressId($event)\"\n (deleteAddress)=\"toggleDeleteAddress($event)\"\n ></vdr-address-card>\n </div>\n <button\n class=\"btn btn-secondary mt-2\"\n (click)=\"addAddress()\"\n *vdrIfPermissions=\"'UpdateCustomer'\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'customer.create-new-address' | translate }}\n </button>\n </vdr-card>\n <vdr-card [title]=\"'customer.orders' | translate\" [paddingX]=\"false\">\n <vdr-data-table-2\n id=\"customer-order-list\"\n [items]=\"orders$ | async\"\n [itemsPerPage]=\"ordersPerPage\"\n [totalItems]=\"ordersCount$ | async\"\n [currentPage]=\"currentOrdersPage\"\n [emptyStateLabel]=\"'customer.no-orders-placed' | translate\"\n (itemsPerPageChange)=\"setOrderItemsPerPage($event)\"\n (pageChange)=\"setOrderCurrentPage($event)\"\n >\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-order=\"item\">\n {{ order.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\"\n id=\"created-at\"\n [hiddenByDefault]=\"true\"\n >\n <ng-template let-order=\"item\">\n {{ order.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [optional]=\"false\">\n <ng-template let-order=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['/orders', order.id]\"\n ><span>{{ order.code }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'order.order-type' | translate\"\n id=\"order-type\"\n [hiddenByDefault]=\"true\"\n >\n <ng-template let-order=\"item\">\n <vdr-chip>{{ order.type }}</vdr-chip>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'order.state' | translate\" id=\"state\">\n <ng-template let-order=\"item\">\n <vdr-order-state-label [state]=\"order.state\"></vdr-order-state-label>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'order.total' | translate\" id=\"total\">\n <ng-template let-order=\"item\">\n {{ order.totalWithTax | localeCurrency : order.currencyCode }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.updated-at' | translate\" id=\"updated-at\">\n <ng-template let-order=\"item\">\n {{ order.updatedAt | timeAgo }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'order.placed-at' | translate\" id=\"placed-at\">\n <ng-template let-order=\"item\">\n {{ order.orderPlacedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column\n *ngFor=\"let customField of customFields\"\n [customField]=\"customField\"\n />\n </vdr-data-table-2>\n </vdr-card>\n <vdr-card [title]=\"'customer.customer-history' | translate\">\n <vdr-customer-history\n [customer]=\"entity$ | async\"\n [history]=\"history$ | async\"\n (addNote)=\"addNoteToCustomer($event)\"\n (updateNote)=\"updateNote($event)\"\n (deleteNote)=\"deleteNote($event)\"\n ></vdr-customer-history>\n </vdr-card>\n </ng-container>\n </vdr-page-block>\n</vdr-page-detail-layout>\n", styles: [".last-login{margin-inline-start:6px;color:var(--color-grey-500)}.to-delete{opacity:.5}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { kind: "component", type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { kind: "component", type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { kind: "component", type: i1.ActionBarDropdownMenuComponent, selector: "vdr-action-bar-dropdown-menu", inputs: ["alwaysShow"] }, { kind: "component", type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { kind: "component", type: i1.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"], outputs: ["readOnlyToggleChange"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "component", type: i1.OrderStateLabelComponent, selector: "vdr-order-state-label", inputs: ["state"] }, { kind: "component", type: i1.LabeledDataComponent, selector: "vdr-labeled-data", inputs: ["label"] }, { kind: "directive", type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items" }, { kind: "component", type: i1.TabbedCustomFieldsComponent, selector: "vdr-tabbed-custom-fields", inputs: ["entityName", "customFields", "customFieldsFormGroup", "readonly", "compact", "showLabel"] }, { kind: "component", type: i1.CustomDetailComponentHostComponent, selector: "vdr-custom-detail-component-host", inputs: ["locationId", "entity$", "detailForm"] }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["id", "expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.DataTableCustomFieldColumnComponent, selector: "vdr-dt2-custom-field-column", inputs: ["customField", "sorts"], exportAs: ["row"] }, { kind: "component", type: i1.PageBlockComponent, selector: "vdr-page-block" }, { kind: "component", type: i1.PageEntityInfoComponent, selector: "vdr-page-entity-info", inputs: ["entity"] }, { kind: "component", type: i1.PageDetailLayoutComponent, selector: "vdr-page-detail-layout" }, { kind: "component", type: i1.PageDetailSidebarComponent, selector: "vdr-page-detail-sidebar" }, { kind: "component", type: i1.CardComponent, selector: "vdr-card", inputs: ["title", "paddingX"] }, { kind: "component", type: CustomerStatusLabelComponent, selector: "vdr-customer-status-label", inputs: ["customer"] }, { kind: "component", type: AddressCardComponent, selector: "vdr-address-card", inputs: ["addressForm", "customFields", "availableCountries", "isDefaultBilling", "isDefaultShipping", "editable"], outputs: ["setAsDefaultShipping", "setAsDefaultBilling", "deleteAddress"] }, { kind: "component", type: CustomerHistoryComponent, selector: "vdr-customer-history", inputs: ["customer", "history"], outputs: ["addNote", "updateNote", "deleteNote"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.HasPermissionPipe, name: "hasPermission" }, { kind: "pipe", type: i1.TimeAgoPipe, name: "timeAgo" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }, { kind: "pipe", type: i1.LocaleCurrencyPipe, name: "localeCurrency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
829
+ }
830
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerDetailComponent, decorators: [{
831
+ type: Component,
832
+ args: [{ selector: 'vdr-customer-detail', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"customer-detail\"></vdr-action-bar-items>\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"!(addressDefaultsUpdated || (detailForm.valid && detailForm.dirty))\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n *vdrIfPermissions=\"'UpdateCustomer'\"\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"!(addressDefaultsUpdated || (detailForm.valid && detailForm.dirty))\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"customer-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as customer\">\n <vdr-customer-status-label [customer]=\"customer\"></vdr-customer-status-label>\n <vdr-labeled-data\n class=\"last-login\"\n *ngIf=\"customer.user?.lastLogin as lastLogin\"\n [label]=\"'customer.last-login' | translate\"\n >\n <time [dateTime]=\"lastLogin\">{{ lastLogin | timeAgo }}</time>\n </vdr-labeled-data>\n </vdr-card>\n <vdr-card\n [title]=\"'customer.customer-groups' | translate\"\n *ngIf=\"(entity$ | async)?.groups as groups\"\n >\n <div *ngIf=\"groups.length; else noGroups\">\n <vdr-chip\n *ngFor=\"let group of groups\"\n [colorFrom]=\"group.id\"\n icon=\"times\"\n (iconClick)=\"removeFromGroup(group)\"\n >{{ group.name }}</vdr-chip\n >\n </div>\n <ng-template #noGroups>\n <span class=\"color-weight-400\">\n {{ 'customer.not-a-member-of-any-groups' | translate }}\n </span>\n </ng-template>\n <div>\n <button\n class=\"button-small mt-1\"\n (click)=\"addToGroup()\"\n *vdrIfPermissions=\"'UpdateCustomerGroup'\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'customer.add-customer-to-group' | translate }}\n </button>\n </div>\n </vdr-card>\n <vdr-card>\n <vdr-page-entity-info *ngIf=\"entity$ | async as entity\" [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <form class=\"form\" [formGroup]=\"detailForm.get('customer')\">\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field\n [label]=\"'customer.title' | translate\"\n for=\"title\"\n [readOnlyToggle]=\"!(isNew$ | async)\"\n >\n <input id=\"title\" type=\"text\" formControlName=\"title\" />\n </vdr-form-field>\n <div><!-- spacer --></div>\n <vdr-form-field\n [label]=\"'customer.first-name' | translate\"\n for=\"firstName\"\n [readOnlyToggle]=\"!(isNew$ | async)\"\n >\n <input id=\"firstName\" type=\"text\" formControlName=\"firstName\" />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'customer.last-name' | translate\"\n for=\"lastName\"\n [readOnlyToggle]=\"!(isNew$ | async)\"\n >\n <input id=\"lastName\" type=\"text\" formControlName=\"lastName\" />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'customer.email-address' | translate\"\n for=\"emailAddress\"\n [readOnlyToggle]=\"!(isNew$ | async)\"\n >\n <input id=\"emailAddress\" type=\"text\" formControlName=\"emailAddress\" />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'customer.phone-number' | translate\"\n for=\"phoneNumber\"\n [readOnlyToggle]=\"!(isNew$ | async)\"\n >\n <input id=\"phoneNumber\" type=\"text\" formControlName=\"phoneNumber\" />\n </vdr-form-field>\n <vdr-form-field\n [label]=\"'customer.password' | translate\"\n for=\"password\"\n *ngIf=\"isNew$ | async\"\n >\n <input id=\"password\" type=\"password\" formControlName=\"password\" />\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"Customer\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customer.customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n </form>\n <vdr-custom-detail-component-host\n locationId=\"customer-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n <ng-container *ngIf=\"!(isNew$ | async)\">\n <vdr-card [title]=\"'customer.addresses' | translate\">\n <div class=\"form-grid\">\n <vdr-address-card\n *ngFor=\"let addressForm of getAddressFormControls()\"\n [class.to-delete]=\"addressesToDeleteIds.has(addressForm.value.id)\"\n [availableCountries]=\"availableCountries$ | async\"\n [isDefaultBilling]=\"defaultBillingAddressId === addressForm.value.id\"\n [isDefaultShipping]=\"defaultShippingAddressId === addressForm.value.id\"\n [addressForm]=\"addressForm\"\n [customFields]=\"addressCustomFields\"\n [editable]=\"\n (['UpdateCustomer'] | hasPermission) &&\n !addressesToDeleteIds.has(addressForm.value.id)\n \"\n (setAsDefaultBilling)=\"setDefaultBillingAddressId($event)\"\n (setAsDefaultShipping)=\"setDefaultShippingAddressId($event)\"\n (deleteAddress)=\"toggleDeleteAddress($event)\"\n ></vdr-address-card>\n </div>\n <button\n class=\"btn btn-secondary mt-2\"\n (click)=\"addAddress()\"\n *vdrIfPermissions=\"'UpdateCustomer'\"\n >\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'customer.create-new-address' | translate }}\n </button>\n </vdr-card>\n <vdr-card [title]=\"'customer.orders' | translate\" [paddingX]=\"false\">\n <vdr-data-table-2\n id=\"customer-order-list\"\n [items]=\"orders$ | async\"\n [itemsPerPage]=\"ordersPerPage\"\n [totalItems]=\"ordersCount$ | async\"\n [currentPage]=\"currentOrdersPage\"\n [emptyStateLabel]=\"'customer.no-orders-placed' | translate\"\n (itemsPerPageChange)=\"setOrderItemsPerPage($event)\"\n (pageChange)=\"setOrderCurrentPage($event)\"\n >\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-order=\"item\">\n {{ order.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\"\n id=\"created-at\"\n [hiddenByDefault]=\"true\"\n >\n <ng-template let-order=\"item\">\n {{ order.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\" [optional]=\"false\">\n <ng-template let-order=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['/orders', order.id]\"\n ><span>{{ order.code }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'order.order-type' | translate\"\n id=\"order-type\"\n [hiddenByDefault]=\"true\"\n >\n <ng-template let-order=\"item\">\n <vdr-chip>{{ order.type }}</vdr-chip>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'order.state' | translate\" id=\"state\">\n <ng-template let-order=\"item\">\n <vdr-order-state-label [state]=\"order.state\"></vdr-order-state-label>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'order.total' | translate\" id=\"total\">\n <ng-template let-order=\"item\">\n {{ order.totalWithTax | localeCurrency : order.currencyCode }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.updated-at' | translate\" id=\"updated-at\">\n <ng-template let-order=\"item\">\n {{ order.updatedAt | timeAgo }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'order.placed-at' | translate\" id=\"placed-at\">\n <ng-template let-order=\"item\">\n {{ order.orderPlacedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column\n *ngFor=\"let customField of customFields\"\n [customField]=\"customField\"\n />\n </vdr-data-table-2>\n </vdr-card>\n <vdr-card [title]=\"'customer.customer-history' | translate\">\n <vdr-customer-history\n [customer]=\"entity$ | async\"\n [history]=\"history$ | async\"\n (addNote)=\"addNoteToCustomer($event)\"\n (updateNote)=\"updateNote($event)\"\n (deleteNote)=\"deleteNote($event)\"\n ></vdr-customer-history>\n </vdr-card>\n </ng-container>\n </vdr-page-block>\n</vdr-page-detail-layout>\n", styles: [".last-login{margin-inline-start:6px;color:var(--color-grey-500)}.to-delete{opacity:.5}\n"] }]
833
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1$1.FormBuilder }, { type: i1.DataService }, { type: i1.ModalService }, { type: i1.NotificationService }] });
834
+
835
+ const CUSTOMER_GROUP_DETAIL_QUERY = gql `
836
+ query GetCustomerGroupDetail($id: ID!) {
837
+ customerGroup(id: $id) {
838
+ ...CustomerGroupDetail
839
+ }
840
+ }
841
+ fragment CustomerGroupDetail on CustomerGroup {
842
+ id
843
+ createdAt
844
+ updatedAt
845
+ name
846
+ }
847
+ `;
848
+ class CustomerGroupDetailComponent extends TypedBaseDetailComponent {
849
+ constructor(formBuilder, dataService, modalService, notificationService) {
850
+ super();
851
+ this.formBuilder = formBuilder;
852
+ this.dataService = dataService;
853
+ this.modalService = modalService;
854
+ this.notificationService = notificationService;
855
+ this.customFields = this.getCustomFieldConfig('CustomerGroup');
856
+ this.detailForm = this.formBuilder.group({
857
+ name: '',
858
+ customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),
859
+ });
860
+ }
861
+ ngOnInit() {
862
+ super.init();
863
+ }
864
+ create() {
865
+ const formvalue = this.detailForm.value;
866
+ if (formvalue.name) {
867
+ this.dataService.customer
868
+ .createCustomerGroup({
869
+ name: formvalue.name,
870
+ customFields: formvalue.customFields,
871
+ customerIds: [],
872
+ })
873
+ .subscribe(({ createCustomerGroup }) => {
874
+ this.notificationService.success(marker('common.notify-create-success'), {
875
+ entity: 'CustomerGroup',
876
+ });
877
+ this.detailForm.markAsPristine();
878
+ this.router.navigate(['../', createCustomerGroup.id], { relativeTo: this.route });
879
+ }, err => {
880
+ this.notificationService.error(marker('common.notify-create-error'), {
881
+ entity: 'CustomerGroup',
882
+ });
883
+ });
884
+ }
885
+ }
886
+ save() {
887
+ const formValue = this.detailForm.value;
888
+ this.dataService.customer.updateCustomerGroup({ id: this.id, ...formValue }).subscribe(() => {
889
+ this.notificationService.success(marker('common.notify-update-success'), {
890
+ entity: 'CustomerGroup',
891
+ });
892
+ this.detailForm.markAsPristine();
893
+ }, err => {
894
+ this.notificationService.error(marker('common.notify-update-error'), {
895
+ entity: 'CustomerGroup',
896
+ });
897
+ });
898
+ }
899
+ setFormValues(entity) {
900
+ this.detailForm.patchValue({
901
+ name: entity.name,
902
+ });
903
+ if (this.customFields.length) {
904
+ const customFieldsGroup = this.detailForm.get(['customFields']);
905
+ this.setCustomFieldFormValues(this.customFields, this.detailForm.get('customFields'), entity);
906
+ }
907
+ }
908
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerGroupDetailComponent, deps: [{ token: i1$1.FormBuilder }, { token: i1.DataService }, { token: i1.ModalService }, { token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
909
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CustomerGroupDetailComponent, selector: "vdr-customer-group-detail", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"customer-group-detail\"></vdr-action-bar-items>\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"!(detailForm.valid && detailForm.dirty)\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n *vdrIfPermissions=\"'UpdateCustomer'\"\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"!(detailForm.valid && detailForm.dirty)\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"customer-group-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input id=\"name\" type=\"text\" formControlName=\"name\" />\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"CustomerGroup\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-custom-detail-component-host\n locationId=\"customer-group-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { kind: "component", type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { kind: "component", type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { kind: "component", type: i1.ActionBarDropdownMenuComponent, selector: "vdr-action-bar-dropdown-menu", inputs: ["alwaysShow"] }, { kind: "component", type: i1.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"], outputs: ["readOnlyToggleChange"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "directive", type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items" }, { kind: "component", type: i1.TabbedCustomFieldsComponent, selector: "vdr-tabbed-custom-fields", inputs: ["entityName", "customFields", "customFieldsFormGroup", "readonly", "compact", "showLabel"] }, { kind: "component", type: i1.CustomDetailComponentHostComponent, selector: "vdr-custom-detail-component-host", inputs: ["locationId", "entity$", "detailForm"] }, { kind: "component", type: i1.PageBlockComponent, selector: "vdr-page-block" }, { kind: "component", type: i1.PageEntityInfoComponent, selector: "vdr-page-entity-info", inputs: ["entity"] }, { kind: "component", type: i1.PageDetailLayoutComponent, selector: "vdr-page-detail-layout" }, { kind: "component", type: i1.PageDetailSidebarComponent, selector: "vdr-page-detail-sidebar" }, { kind: "component", type: i1.CardComponent, selector: "vdr-card", inputs: ["title", "paddingX"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
910
+ }
911
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerGroupDetailComponent, decorators: [{
912
+ type: Component,
913
+ args: [{ selector: 'vdr-customer-group-detail', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"customer-group-detail\"></vdr-action-bar-items>\n <button\n class=\"btn btn-primary\"\n *ngIf=\"isNew$ | async; else updateButton\"\n (click)=\"create()\"\n [disabled]=\"!(detailForm.valid && detailForm.dirty)\"\n >\n {{ 'common.create' | translate }}\n </button>\n <ng-template #updateButton>\n <button\n *vdrIfPermissions=\"'UpdateCustomer'\"\n class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"!(detailForm.valid && detailForm.dirty)\"\n >\n {{ 'common.update' | translate }}\n </button>\n </ng-template>\n <vdr-action-bar-dropdown-menu locationId=\"customer-group-detail\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<form class=\"form\" [formGroup]=\"detailForm\">\n <vdr-page-detail-layout>\n <vdr-page-detail-sidebar>\n <vdr-card *ngIf=\"entity$ | async as entity\">\n <vdr-page-entity-info [entity]=\"entity\" />\n </vdr-card>\n </vdr-page-detail-sidebar>\n <vdr-page-block>\n <vdr-card>\n <div class=\"form-grid\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input id=\"name\" type=\"text\" formControlName=\"name\" />\n </vdr-form-field>\n </div>\n </vdr-card>\n <vdr-card\n formGroupName=\"customFields\"\n *ngIf=\"customFields.length\"\n [title]=\"'common.custom-fields' | translate\"\n >\n <vdr-tabbed-custom-fields\n entityName=\"CustomerGroup\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"detailForm.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </vdr-card>\n <vdr-custom-detail-component-host\n locationId=\"customer-group-detail\"\n [entity$]=\"entity$\"\n [detailForm]=\"detailForm\"\n ></vdr-custom-detail-component-host>\n </vdr-page-block>\n </vdr-page-detail-layout>\n</form>\n" }]
914
+ }], ctorParameters: () => [{ type: i1$1.FormBuilder }, { type: i1.DataService }, { type: i1.ModalService }, { type: i1.NotificationService }] });
915
+
916
+ class CustomerGroupDetailDialogComponent {
917
+ constructor(serverConfigService, formBuilder) {
918
+ this.serverConfigService = serverConfigService;
919
+ this.formBuilder = formBuilder;
920
+ this.customFields = this.serverConfigService.getCustomFieldsFor('CustomerGroup');
921
+ }
922
+ ngOnInit() {
923
+ this.form = this.formBuilder.group({
924
+ name: [this.group.name, Validators.required],
925
+ customFields: this.formBuilder.group(getCustomFieldsDefaults(this.customFields)),
926
+ });
927
+ if (this.customFields.length) {
928
+ const customFieldsGroup = this.form.get('customFields');
929
+ for (const fieldDef of this.customFields) {
930
+ const key = fieldDef.name;
931
+ const value = this.group.customFields?.[key];
932
+ const control = customFieldsGroup.get(key);
933
+ if (control) {
934
+ control.patchValue(value);
935
+ }
936
+ }
937
+ }
938
+ }
939
+ cancel() {
940
+ this.resolveWith();
941
+ }
942
+ save() {
943
+ this.resolveWith(this.form.value);
944
+ }
945
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerGroupDetailDialogComponent, deps: [{ token: i1.ServerConfigService }, { token: i1$1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
946
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CustomerGroupDetailDialogComponent, selector: "vdr-customer-group-detail-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\n <span *ngIf=\"group.id\">{{ 'customer.update-customer-group' | translate }}</span>\n <span *ngIf=\"!group.id\">{{ 'customer.create-customer-group' | translate }}</span>\n</ng-template>\n<form [formGroup]=\"form\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input\n id=\"name\"\n type=\"text\"\n formControlName=\"name\"\n [readonly]=\"!(['CreateCustomerGroup', 'UpdateCustomerGroup'] | hasPermission)\"\n />\n </vdr-form-field>\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\n <label>{{ 'common.custom-fields' | translate }}</label>\n <vdr-tabbed-custom-fields\n entityName=\"CustomerGroup\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"form.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </section>\n</form>\n<ng-template vdrDialogButtons>\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\n <button type=\"submit\" (click)=\"save()\" [disabled]=\"!form.valid\" class=\"btn btn-primary\">\n <span *ngIf=\"group.id\">{{ 'customer.update-customer-group' | translate }}</span>\n <span *ngIf=\"!group.id\">{{ 'customer.create-customer-group' | translate }}</span>\n </button>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.ClrLabel, selector: "label", inputs: ["id", "for"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i1.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"], outputs: ["readOnlyToggleChange"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "directive", type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "component", type: i1.TabbedCustomFieldsComponent, selector: "vdr-tabbed-custom-fields", inputs: ["entityName", "customFields", "customFieldsFormGroup", "readonly", "compact", "showLabel"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.HasPermissionPipe, name: "hasPermission" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
947
+ }
948
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerGroupDetailDialogComponent, decorators: [{
949
+ type: Component,
950
+ args: [{ selector: 'vdr-customer-group-detail-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\n <span *ngIf=\"group.id\">{{ 'customer.update-customer-group' | translate }}</span>\n <span *ngIf=\"!group.id\">{{ 'customer.create-customer-group' | translate }}</span>\n</ng-template>\n<form [formGroup]=\"form\">\n <vdr-form-field [label]=\"'common.name' | translate\" for=\"name\">\n <input\n id=\"name\"\n type=\"text\"\n formControlName=\"name\"\n [readonly]=\"!(['CreateCustomerGroup', 'UpdateCustomerGroup'] | hasPermission)\"\n />\n </vdr-form-field>\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\n <label>{{ 'common.custom-fields' | translate }}</label>\n <vdr-tabbed-custom-fields\n entityName=\"CustomerGroup\"\n [customFields]=\"customFields\"\n [customFieldsFormGroup]=\"form.get('customFields')\"\n ></vdr-tabbed-custom-fields>\n </section>\n</form>\n<ng-template vdrDialogButtons>\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\n <button type=\"submit\" (click)=\"save()\" [disabled]=\"!form.valid\" class=\"btn btn-primary\">\n <span *ngIf=\"group.id\">{{ 'customer.update-customer-group' | translate }}</span>\n <span *ngIf=\"!group.id\">{{ 'customer.create-customer-group' | translate }}</span>\n </button>\n</ng-template>\n" }]
951
+ }], ctorParameters: () => [{ type: i1.ServerConfigService }, { type: i1$1.UntypedFormBuilder }] });
952
+
953
+ const deleteCustomerGroupsBulkAction = createBulkDeleteAction({
954
+ location: 'customer-group-list',
955
+ requiresPermission: userPermissions => userPermissions.includes(Permission.DeleteCustomerGroup),
956
+ getItemName: item => item.name,
957
+ bulkDelete: (dataService, ids) => dataService.customer.deleteCustomerGroups(ids).pipe(map(res => res.deleteCustomerGroups)),
958
+ });
959
+
960
+ const GET_CUSTOMER_GROUP_LIST = gql `
961
+ query GetCustomerGroupList($options: CustomerGroupListOptions) {
962
+ customerGroups(options: $options) {
963
+ items {
964
+ ...CustomerGroup
965
+ }
966
+ totalItems
967
+ }
968
+ }
969
+ ${CUSTOMER_GROUP_FRAGMENT}
970
+ `;
971
+ class CustomerGroupListComponent extends TypedBaseListComponent {
972
+ constructor(dataService, notificationService, modalService, route, router) {
973
+ super();
974
+ this.dataService = dataService;
975
+ this.notificationService = notificationService;
976
+ this.modalService = modalService;
977
+ this.route = route;
978
+ this.router = router;
979
+ this.fetchGroupMembers$ = new BehaviorSubject({
980
+ skip: 0,
981
+ take: 0,
982
+ filterTerm: '',
983
+ });
984
+ this.filters = this.createFilterCollection()
985
+ .addIdFilter()
986
+ .addDateFilters()
987
+ .addFilter({
988
+ name: 'name',
989
+ type: { kind: 'text' },
990
+ label: marker('common.name'),
991
+ filterField: 'name',
992
+ })
993
+ .connectToRoute(this.route);
994
+ this.sorts = this.createSortCollection()
995
+ .defaultSort('createdAt', 'DESC')
996
+ .addSort({ name: 'createdAt' })
997
+ .addSort({ name: 'updatedAt' })
998
+ .addSort({ name: 'name' })
999
+ .connectToRoute(this.route);
1000
+ this.refreshActiveGroupMembers$ = new BehaviorSubject(undefined);
1001
+ super.configure({
1002
+ document: GetCustomerGroupListDocument,
1003
+ getItems: data => data.customerGroups,
1004
+ setVariables: (skip, take) => ({
1005
+ options: {
1006
+ skip,
1007
+ take,
1008
+ filter: {
1009
+ name: { contains: this.searchTermControl.value },
1010
+ ...this.filters.createFilterInput(),
1011
+ },
1012
+ sort: this.sorts.createSortInput(),
1013
+ },
1014
+ }),
1015
+ refreshListOnChanges: [this.filters.valueChanges, this.sorts.valueChanges],
1016
+ });
1017
+ }
1018
+ ngOnInit() {
1019
+ super.ngOnInit();
1020
+ const activeGroupId$ = this.route.paramMap.pipe(map(pm => pm.get('contents')), distinctUntilChanged());
1021
+ this.listIsEmpty$ = this.items$.pipe(map(groups => groups.length === 0));
1022
+ this.activeGroup$ = combineLatest(this.items$, activeGroupId$).pipe(map(([groups, activeGroupId]) => {
1023
+ if (activeGroupId) {
1024
+ return groups.find(g => g.id === activeGroupId);
1025
+ }
1026
+ }));
1027
+ this.activeIndex$ = combineLatest(this.items$, activeGroupId$).pipe(map(([groups, activeGroupId]) => {
1028
+ if (activeGroupId) {
1029
+ return groups.findIndex(g => g.id === activeGroupId);
1030
+ }
1031
+ else {
1032
+ return -1;
1033
+ }
1034
+ }));
1035
+ const membersResult$ = combineLatest(this.activeGroup$, this.fetchGroupMembers$, this.refreshActiveGroupMembers$).pipe(switchMap(([activeGroup, { skip, take, filterTerm }]) => {
1036
+ if (activeGroup) {
1037
+ return this.dataService.customer
1038
+ .getCustomerGroupWithCustomers(activeGroup.id, {
1039
+ skip,
1040
+ take,
1041
+ filter: {
1042
+ emailAddress: {
1043
+ contains: filterTerm,
1044
+ },
1045
+ },
1046
+ })
1047
+ .mapStream(res => res.customerGroup?.customers);
1048
+ }
1049
+ else {
1050
+ return of(undefined);
1051
+ }
1052
+ }));
1053
+ this.members$ = membersResult$.pipe(map(res => res?.items ?? []));
1054
+ this.membersTotal$ = membersResult$.pipe(map(res => res?.totalItems ?? 0));
1055
+ }
1056
+ closeMembers() {
1057
+ const params = { ...this.route.snapshot.params };
1058
+ delete params.contents;
1059
+ this.router.navigate(['./', params], { relativeTo: this.route, queryParamsHandling: 'preserve' });
1060
+ }
1061
+ addToGroup(group) {
1062
+ this.modalService
1063
+ .fromComponent(AddCustomerToGroupDialogComponent, {
1064
+ locals: {
1065
+ group,
1066
+ route: this.route,
1067
+ },
1068
+ size: 'md',
1069
+ verticalAlign: 'top',
1070
+ })
1071
+ .pipe(switchMap(customerIds => customerIds
1072
+ ? this.dataService.customer
1073
+ .addCustomersToGroup(group.id, customerIds)
1074
+ .pipe(mapTo(customerIds))
1075
+ : EMPTY))
1076
+ .subscribe({
1077
+ next: result => {
1078
+ this.notificationService.success(marker(`customer.add-customers-to-group-success`), {
1079
+ customerCount: result.length,
1080
+ groupName: group.name,
1081
+ });
1082
+ this.refreshActiveGroupMembers$.next();
1083
+ },
1084
+ });
1085
+ }
1086
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerGroupListComponent, deps: [{ token: i1.DataService }, { token: i1.NotificationService }, { token: i1.ModalService }, { token: i2.ActivatedRoute }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
1087
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CustomerGroupListComponent, selector: "vdr-customer-group-list", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"customer-group-list\"></vdr-action-bar-items>\n <a class=\"btn btn-primary\" *vdrIfPermissions=\"'CreateCustomerGroup'\" [routerLink]=\"['./', 'create']\">\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'customer.create-new-customer-group' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"customer-group-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-split-view [rightPanelOpen]=\"activeGroup$ | async\" (closeClicked)=\"closeMembers()\">\n <ng-template vdrSplitViewLeft>\n <vdr-data-table-2\n class=\"mt-2\"\n id=\"customer-group-list\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n [activeIndex]=\"activeIndex$ | async\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n >\n <vdr-bulk-action-menu\n locationId=\"customer-group-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n ></vdr-bulk-action-menu>\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'common.search-by-name' | translate\"\n ></vdr-dt2-search>\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-customerGroup=\"item\">\n {{ customerGroup.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-customerGroup=\"item\">\n {{ customerGroup.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-customerGroup=\"item\">\n {{ customerGroup.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.name' | translate\" id=\"name\"\n [optional]=\"false\"\n [sort]=\"sorts.get('name')\"\n >\n <ng-template let-customerGroup=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', customerGroup.id]\"\n ><span>{{ customerGroup.name }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.view-contents' | translate\" id=\"view-contents\"\n [optional]=\"false\"\n >\n <ng-template let-customerGroup=\"item\">\n <a\n class=\"button-small bg-weight-150\"\n [routerLink]=\"['./', { contents: customerGroup.id }]\"\n queryParamsHandling=\"preserve\"\n >\n <span>{{ 'customer.view-group-members' | translate }}</span>\n <clr-icon shape=\"file-group\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n </vdr-data-table-2>\n </ng-template>\n <ng-template vdrSplitViewRight [splitViewTitle]=\"(activeGroup$ | async)?.name\">\n <ng-container *ngIf=\"activeGroup$ | async as activeGroup\">\n <button class=\"button-ghost ml-4\" (click)=\"addToGroup(activeGroup)\">\n <clr-icon shape=\"plus\"></clr-icon>\n <span>{{\n 'customer.add-customers-to-group' | translate : { groupName: activeGroup.name }\n }}</span>\n </button>\n <vdr-customer-group-member-list\n locationId=\"customer-group-members-list\"\n [members]=\"members$ | async\"\n [route]=\"route\"\n [totalItems]=\"membersTotal$ | async\"\n [activeGroup]=\"activeGroup$ | async\"\n (fetchParamsChange)=\"fetchGroupMembers$.next($event)\"\n />\n </ng-container>\n </ng-template>\n</vdr-split-view>\n", styles: ["vdr-empty-placeholder{flex:1}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { kind: "component", type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { kind: "component", type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { kind: "component", type: i1.ActionBarDropdownMenuComponent, selector: "vdr-action-bar-dropdown-menu", inputs: ["alwaysShow"] }, { kind: "directive", type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items" }, { kind: "component", type: i1.BulkActionMenuComponent, selector: "vdr-bulk-action-menu", inputs: ["locationId", "selectionManager", "hostComponent"] }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["id", "expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.DataTable2SearchComponent, selector: "vdr-dt2-search", inputs: ["searchTermControl", "searchTermPlaceholder"] }, { kind: "component", type: i1.SplitViewComponent, selector: "vdr-split-view", inputs: ["rightPanelOpen"], outputs: ["closeClicked"] }, { kind: "directive", type: i1.SplitViewLeftDirective, selector: "[vdrSplitViewLeft]" }, { kind: "directive", type: i1.SplitViewRightDirective, selector: "[vdrSplitViewRight]", inputs: ["splitViewTitle"] }, { kind: "component", type: i1.PageBlockComponent, selector: "vdr-page-block" }, { kind: "component", type: CustomerGroupMemberListComponent, selector: "vdr-customer-group-member-list", inputs: ["locationId", "members", "totalItems", "route", "selectedMemberIds", "activeGroup"], outputs: ["selectionChange", "fetchParamsChange"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1088
+ }
1089
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerGroupListComponent, decorators: [{
1090
+ type: Component,
1091
+ args: [{ selector: 'vdr-customer-group-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"customer-group-list\"></vdr-action-bar-items>\n <a class=\"btn btn-primary\" *vdrIfPermissions=\"'CreateCustomerGroup'\" [routerLink]=\"['./', 'create']\">\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'customer.create-new-customer-group' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"customer-group-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n<vdr-split-view [rightPanelOpen]=\"activeGroup$ | async\" (closeClicked)=\"closeMembers()\">\n <ng-template vdrSplitViewLeft>\n <vdr-data-table-2\n class=\"mt-2\"\n id=\"customer-group-list\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n [activeIndex]=\"activeIndex$ | async\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n >\n <vdr-bulk-action-menu\n locationId=\"customer-group-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n ></vdr-bulk-action-menu>\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'common.search-by-name' | translate\"\n ></vdr-dt2-search>\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-customerGroup=\"item\">\n {{ customerGroup.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-customerGroup=\"item\">\n {{ customerGroup.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-customerGroup=\"item\">\n {{ customerGroup.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.name' | translate\" id=\"name\"\n [optional]=\"false\"\n [sort]=\"sorts.get('name')\"\n >\n <ng-template let-customerGroup=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', customerGroup.id]\"\n ><span>{{ customerGroup.name }}</span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.view-contents' | translate\" id=\"view-contents\"\n [optional]=\"false\"\n >\n <ng-template let-customerGroup=\"item\">\n <a\n class=\"button-small bg-weight-150\"\n [routerLink]=\"['./', { contents: customerGroup.id }]\"\n queryParamsHandling=\"preserve\"\n >\n <span>{{ 'customer.view-group-members' | translate }}</span>\n <clr-icon shape=\"file-group\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n </vdr-data-table-2>\n </ng-template>\n <ng-template vdrSplitViewRight [splitViewTitle]=\"(activeGroup$ | async)?.name\">\n <ng-container *ngIf=\"activeGroup$ | async as activeGroup\">\n <button class=\"button-ghost ml-4\" (click)=\"addToGroup(activeGroup)\">\n <clr-icon shape=\"plus\"></clr-icon>\n <span>{{\n 'customer.add-customers-to-group' | translate : { groupName: activeGroup.name }\n }}</span>\n </button>\n <vdr-customer-group-member-list\n locationId=\"customer-group-members-list\"\n [members]=\"members$ | async\"\n [route]=\"route\"\n [totalItems]=\"membersTotal$ | async\"\n [activeGroup]=\"activeGroup$ | async\"\n (fetchParamsChange)=\"fetchGroupMembers$.next($event)\"\n />\n </ng-container>\n </ng-template>\n</vdr-split-view>\n", styles: ["vdr-empty-placeholder{flex:1}\n"] }]
1092
+ }], ctorParameters: () => [{ type: i1.DataService }, { type: i1.NotificationService }, { type: i1.ModalService }, { type: i2.ActivatedRoute }, { type: i2.Router }] });
1093
+
1094
+ const removeCustomerGroupMembersBulkAction = {
1095
+ location: 'customer-group-members-list',
1096
+ label: marker('customer.remove-from-group'),
1097
+ icon: 'trash',
1098
+ iconClass: 'is-danger',
1099
+ requiresPermission: Permission.UpdateCustomerGroup,
1100
+ onClick: ({ injector, selection, hostComponent, clearSelection }) => {
1101
+ const modalService = injector.get(ModalService);
1102
+ const dataService = injector.get(DataService);
1103
+ const notificationService = injector.get(NotificationService);
1104
+ const group = hostComponent.activeGroup;
1105
+ const customerIds = selection.map(s => s.id);
1106
+ dataService.customer.removeCustomersFromGroup(group.id, customerIds).subscribe({
1107
+ complete: () => {
1108
+ notificationService.success(marker(`customer.remove-customers-from-group-success`), {
1109
+ customerCount: customerIds.length,
1110
+ groupName: group.name,
1111
+ });
1112
+ clearSelection();
1113
+ hostComponent.refresh();
1114
+ },
1115
+ });
1116
+ },
1117
+ };
1118
+
1119
+ const deleteCustomersBulkAction = createBulkDeleteAction({
1120
+ location: 'customer-list',
1121
+ requiresPermission: userPermissions => userPermissions.includes(Permission.DeleteCustomer),
1122
+ getItemName: item => item.firstName + ' ' + item.lastName,
1123
+ bulkDelete: (dataService, ids) => dataService.customer.deleteCustomers(ids).pipe(map(res => res.deleteCustomers)),
1124
+ });
1125
+
1126
+ const CUSTOMER_LIST_QUERY = gql `
1127
+ query CustomerListQuery($options: CustomerListOptions) {
1128
+ customers(options: $options) {
1129
+ items {
1130
+ ...CustomerListItem
1131
+ }
1132
+ totalItems
1133
+ }
1134
+ }
1135
+
1136
+ fragment CustomerListItem on Customer {
1137
+ id
1138
+ createdAt
1139
+ updatedAt
1140
+ title
1141
+ firstName
1142
+ lastName
1143
+ emailAddress
1144
+ user {
1145
+ id
1146
+ verified
1147
+ }
1148
+ }
1149
+ `;
1150
+ class CustomerListComponent extends TypedBaseListComponent {
1151
+ constructor() {
1152
+ super();
1153
+ this.customFields = this.getCustomFieldConfig('Customer');
1154
+ this.filters = this.createFilterCollection()
1155
+ .addIdFilter()
1156
+ .addDateFilters()
1157
+ .addFilter({
1158
+ name: 'firstName',
1159
+ type: { kind: 'text' },
1160
+ label: marker('customer.first-name'),
1161
+ filterField: 'firstName',
1162
+ })
1163
+ .addFilter({
1164
+ name: 'lastName',
1165
+ type: { kind: 'text' },
1166
+ label: marker('customer.last-name'),
1167
+ filterField: 'lastName',
1168
+ })
1169
+ .addFilter({
1170
+ name: 'emailAddress',
1171
+ type: { kind: 'text' },
1172
+ label: marker('customer.email-address'),
1173
+ filterField: 'emailAddress',
1174
+ })
1175
+ .addCustomFieldFilters(this.customFields)
1176
+ .connectToRoute(this.route);
1177
+ this.sorts = this.createSortCollection()
1178
+ .defaultSort('createdAt', 'DESC')
1179
+ .addSort({ name: 'createdAt' })
1180
+ .addSort({ name: 'updatedAt' })
1181
+ .addSort({ name: 'lastName' })
1182
+ .addSort({ name: 'emailAddress' })
1183
+ .addCustomFieldSorts(this.customFields)
1184
+ .connectToRoute(this.route);
1185
+ this.configure({
1186
+ document: CustomerListQueryDocument,
1187
+ getItems: data => data.customers,
1188
+ setVariables: (skip, take) => ({
1189
+ options: {
1190
+ skip,
1191
+ take,
1192
+ filter: {
1193
+ ...(this.searchTermControl.value
1194
+ ? {
1195
+ emailAddress: {
1196
+ contains: this.searchTermControl.value,
1197
+ },
1198
+ lastName: {
1199
+ contains: this.searchTermControl.value,
1200
+ },
1201
+ postalCode: {
1202
+ contains: this.searchTermControl.value,
1203
+ },
1204
+ }
1205
+ : {}),
1206
+ ...this.filters.createFilterInput(),
1207
+ },
1208
+ filterOperator: this.searchTermControl.value ? LogicalOperator.OR : LogicalOperator.AND,
1209
+ sort: this.sorts.createSortInput(),
1210
+ },
1211
+ }),
1212
+ refreshListOnChanges: [this.sorts.valueChanges, this.filters.valueChanges],
1213
+ });
1214
+ }
1215
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1216
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CustomerListComponent, selector: "vdr-customer-list", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"customer-list\"></vdr-action-bar-items>\n <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"'CreateCustomer'\">\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'customer.create-new-customer' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"customer-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<vdr-data-table-2\n class=\"mt-2\"\n id=\"customer-list\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"customer-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n ></vdr-bulk-action-menu>\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'customer.search-customers-by-email-last-name-postal-code' | translate\"\n ></vdr-dt2-search>\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-customer=\"item\">\n {{ customer.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-customer=\"item\">\n {{ customer.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-customer=\"item\">\n {{ customer.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'customer.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('lastName')\">\n <ng-template let-customer=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', customer.id]\"\n ><span> {{ customer.title }} {{ customer.firstName }} {{ customer.lastName }} </span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.status' | translate\" id=\"status\">\n <ng-template let-customer=\"item\">\n <vdr-customer-status-label [customer]=\"customer\" />\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'customer.email-address' | translate\" id=\"email-address\" [sort]=\"sorts.get('emailAddress')\">\n <ng-template let-customer=\"item\">\n {{ customer.emailAddress }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column *ngFor=\"let field of customFields\" [customField]=\"field\" [sorts]=\"sorts\" />\n</vdr-data-table-2>\n", styles: [".search-input{margin-top:6px;min-width:300px}\n"], dependencies: [{ kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { kind: "component", type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { kind: "component", type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { kind: "component", type: i1.ActionBarDropdownMenuComponent, selector: "vdr-action-bar-dropdown-menu", inputs: ["alwaysShow"] }, { kind: "directive", type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items" }, { kind: "component", type: i1.BulkActionMenuComponent, selector: "vdr-bulk-action-menu", inputs: ["locationId", "selectionManager", "hostComponent"] }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["id", "expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.DataTable2SearchComponent, selector: "vdr-dt2-search", inputs: ["searchTermControl", "searchTermPlaceholder"] }, { kind: "component", type: i1.DataTableCustomFieldColumnComponent, selector: "vdr-dt2-custom-field-column", inputs: ["customField", "sorts"], exportAs: ["row"] }, { kind: "component", type: i1.PageBlockComponent, selector: "vdr-page-block" }, { kind: "component", type: CustomerStatusLabelComponent, selector: "vdr-customer-status-label", inputs: ["customer"] }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }] }); }
1217
+ }
1218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerListComponent, decorators: [{
1219
+ type: Component,
1220
+ args: [{ selector: 'vdr-customer-list', template: "<vdr-page-block>\n <vdr-action-bar>\n <vdr-ab-left> </vdr-ab-left>\n <vdr-ab-right>\n <vdr-action-bar-items locationId=\"customer-list\"></vdr-action-bar-items>\n <a class=\"btn btn-primary\" [routerLink]=\"['./create']\" *vdrIfPermissions=\"'CreateCustomer'\">\n <clr-icon shape=\"plus\"></clr-icon>\n {{ 'customer.create-new-customer' | translate }}\n </a>\n <vdr-action-bar-dropdown-menu locationId=\"customer-list\" />\n </vdr-ab-right>\n </vdr-action-bar>\n</vdr-page-block>\n\n<vdr-data-table-2\n class=\"mt-2\"\n id=\"customer-list\"\n [items]=\"items$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n [currentPage]=\"currentPage$ | async\"\n [filters]=\"filters\"\n (pageChange)=\"setPageNumber($event)\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n>\n <vdr-bulk-action-menu\n locationId=\"customer-list\"\n [hostComponent]=\"this\"\n [selectionManager]=\"selectionManager\"\n ></vdr-bulk-action-menu>\n <vdr-dt2-search\n [searchTermControl]=\"searchTermControl\"\n [searchTermPlaceholder]=\"'customer.search-customers-by-email-last-name-postal-code' | translate\"\n ></vdr-dt2-search>\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\n <ng-template let-customer=\"item\">\n {{ customer.id }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('createdAt')\"\n >\n <ng-template let-customer=\"item\">\n {{ customer.createdAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\n [hiddenByDefault]=\"true\"\n [sort]=\"sorts.get('updatedAt')\"\n >\n <ng-template let-customer=\"item\">\n {{ customer.updatedAt | localeDate : 'short' }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'customer.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('lastName')\">\n <ng-template let-customer=\"item\">\n <a class=\"button-ghost\" [routerLink]=\"['./', customer.id]\"\n ><span> {{ customer.title }} {{ customer.firstName }} {{ customer.lastName }} </span>\n <clr-icon shape=\"arrow right\"></clr-icon>\n </a>\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'common.status' | translate\" id=\"status\">\n <ng-template let-customer=\"item\">\n <vdr-customer-status-label [customer]=\"customer\" />\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-column [heading]=\"'customer.email-address' | translate\" id=\"email-address\" [sort]=\"sorts.get('emailAddress')\">\n <ng-template let-customer=\"item\">\n {{ customer.emailAddress }}\n </ng-template>\n </vdr-dt2-column>\n <vdr-dt2-custom-field-column *ngFor=\"let field of customFields\" [customField]=\"field\" [sorts]=\"sorts\" />\n</vdr-data-table-2>\n", styles: [".search-input{margin-top:6px;min-width:300px}\n"] }]
1221
+ }], ctorParameters: () => [] });
1222
+
1223
+ const createRoutes = (pageService) => [
1224
+ {
1225
+ path: 'customers',
1226
+ component: PageComponent,
1227
+ data: {
1228
+ locationId: 'customer-list',
1229
+ breadcrumb: marker('breadcrumb.customers'),
1230
+ },
1231
+ children: pageService.getPageTabRoutes('customer-list'),
1232
+ },
1233
+ {
1234
+ path: 'customers/:id',
1235
+ component: PageComponent,
1236
+ data: {
1237
+ locationId: 'customer-detail',
1238
+ breadcrumb: { label: marker('breadcrumb.customers'), link: ['../', 'customers'] },
1239
+ },
1240
+ children: pageService.getPageTabRoutes('customer-detail'),
1241
+ },
1242
+ {
1243
+ path: 'groups',
1244
+ component: PageComponent,
1245
+ data: {
1246
+ locationId: 'customer-group-list',
1247
+ breadcrumb: marker('breadcrumb.customer-groups'),
1248
+ },
1249
+ children: pageService.getPageTabRoutes('customer-group-list'),
1250
+ },
1251
+ {
1252
+ path: 'groups/:id',
1253
+ component: PageComponent,
1254
+ data: {
1255
+ locationId: 'customer-group-detail',
1256
+ breadcrumb: { label: marker('breadcrumb.customer-groups'), link: ['../', 'groups'] },
1257
+ },
1258
+ children: pageService.getPageTabRoutes('customer-group-detail'),
1259
+ },
1260
+ ];
1261
+ function customerBreadcrumb(data, params) {
1262
+ return detailBreadcrumb({
1263
+ entity: data.entity,
1264
+ id: params.id,
1265
+ breadcrumbKey: 'breadcrumb.customers',
1266
+ getName: customer => `${customer.firstName} ${customer.lastName}`,
1267
+ route: 'customers',
1268
+ });
1269
+ }
1270
+
1271
+ class CustomerModule {
1272
+ static { this.hasRegisteredTabsAndBulkActions = false; }
1273
+ constructor(bulkActionRegistryService, pageService) {
1274
+ if (CustomerModule.hasRegisteredTabsAndBulkActions) {
1275
+ return;
1276
+ }
1277
+ bulkActionRegistryService.registerBulkAction(deleteCustomersBulkAction);
1278
+ bulkActionRegistryService.registerBulkAction(deleteCustomerGroupsBulkAction);
1279
+ bulkActionRegistryService.registerBulkAction(removeCustomerGroupMembersBulkAction);
1280
+ pageService.registerPageTab({
1281
+ priority: 0,
1282
+ location: 'customer-list',
1283
+ tab: marker('customer.customers'),
1284
+ route: '',
1285
+ component: CustomerListComponent,
1286
+ });
1287
+ pageService.registerPageTab({
1288
+ priority: 0,
1289
+ location: 'customer-detail',
1290
+ tab: marker('customer.customer'),
1291
+ route: '',
1292
+ component: detailComponentWithResolver({
1293
+ component: CustomerDetailComponent,
1294
+ query: CustomerDetailQueryDocument,
1295
+ entityKey: 'customer',
1296
+ variables: {
1297
+ orderListOptions: {
1298
+ sort: {
1299
+ orderPlacedAt: SortOrder.DESC,
1300
+ },
1301
+ },
1302
+ },
1303
+ getBreadcrumbs: entity => [
1304
+ {
1305
+ label: entity
1306
+ ? `${entity?.firstName} ${entity?.lastName}`
1307
+ : marker('customer.create-new-customer'),
1308
+ link: [entity?.id],
1309
+ },
1310
+ ],
1311
+ }),
1312
+ });
1313
+ pageService.registerPageTab({
1314
+ priority: 0,
1315
+ location: 'customer-group-list',
1316
+ tab: marker('customer.customer-groups'),
1317
+ route: '',
1318
+ component: CustomerGroupListComponent,
1319
+ });
1320
+ pageService.registerPageTab({
1321
+ priority: 0,
1322
+ location: 'customer-group-detail',
1323
+ tab: marker('customer.customer-group'),
1324
+ route: '',
1325
+ component: detailComponentWithResolver({
1326
+ component: CustomerGroupDetailComponent,
1327
+ query: GetCustomerGroupDetailDocument,
1328
+ entityKey: 'customerGroup',
1329
+ getBreadcrumbs: entity => [
1330
+ {
1331
+ label: entity ? entity.name : marker('customer.create-new-customer-group'),
1332
+ link: [entity?.id],
1333
+ },
1334
+ ],
1335
+ }),
1336
+ });
1337
+ CustomerModule.hasRegisteredTabsAndBulkActions = true;
1338
+ }
1339
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerModule, deps: [{ token: i1.BulkActionRegistryService }, { token: i1.PageService }], target: i0.ɵɵFactoryTarget.NgModule }); }
1340
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: CustomerModule, declarations: [CustomerListComponent,
1341
+ CustomerDetailComponent,
1342
+ CustomerStatusLabelComponent,
1343
+ AddressCardComponent,
1344
+ CustomerGroupListComponent,
1345
+ CustomerGroupDetailDialogComponent,
1346
+ AddCustomerToGroupDialogComponent,
1347
+ CustomerGroupMemberListComponent,
1348
+ SelectCustomerGroupDialogComponent,
1349
+ CustomerHistoryComponent,
1350
+ AddressDetailDialogComponent,
1351
+ CustomerHistoryEntryHostComponent,
1352
+ CustomerGroupDetailComponent], imports: [SharedModule, i2.RouterModule], exports: [AddressCardComponent] }); }
1353
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerModule, providers: [
1354
+ {
1355
+ provide: ROUTES,
1356
+ useFactory: (pageService) => createRoutes(pageService),
1357
+ multi: true,
1358
+ deps: [PageService],
1359
+ },
1360
+ ], imports: [SharedModule, RouterModule.forChild([])] }); }
1361
+ }
1362
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerModule, decorators: [{
1363
+ type: NgModule,
1364
+ args: [{
1365
+ imports: [SharedModule, RouterModule.forChild([])],
1366
+ providers: [
1367
+ {
1368
+ provide: ROUTES,
1369
+ useFactory: (pageService) => createRoutes(pageService),
1370
+ multi: true,
1371
+ deps: [PageService],
1372
+ },
1373
+ ],
1374
+ declarations: [
1375
+ CustomerListComponent,
1376
+ CustomerDetailComponent,
1377
+ CustomerStatusLabelComponent,
1378
+ AddressCardComponent,
1379
+ CustomerGroupListComponent,
1380
+ CustomerGroupDetailDialogComponent,
1381
+ AddCustomerToGroupDialogComponent,
1382
+ CustomerGroupMemberListComponent,
1383
+ SelectCustomerGroupDialogComponent,
1384
+ CustomerHistoryComponent,
1385
+ AddressDetailDialogComponent,
1386
+ CustomerHistoryEntryHostComponent,
1387
+ CustomerGroupDetailComponent,
1388
+ ],
1389
+ exports: [AddressCardComponent],
1390
+ }]
1391
+ }], ctorParameters: () => [{ type: i1.BulkActionRegistryService }, { type: i1.PageService }] });
1392
+
1393
+ // This file was generated by the build-public-api.ts script
1394
+
1395
+ /**
1396
+ * Generated bundle index. Do not edit.
1397
+ */
1398
+
1399
+ export { AddCustomerToGroupDialogComponent, AddressCardComponent, AddressDetailDialogComponent, CUSTOMER_DETAIL_QUERY, CUSTOMER_GROUP_DETAIL_QUERY, CUSTOMER_LIST_QUERY, CustomerDetailComponent, CustomerGroupDetailComponent, CustomerGroupDetailDialogComponent, CustomerGroupListComponent, CustomerGroupMemberListComponent, CustomerHistoryComponent, CustomerHistoryEntryHostComponent, CustomerListComponent, CustomerModule, CustomerStatusLabelComponent, GET_CUSTOMER_GROUP_LIST, SelectCustomerGroupDialogComponent, createRoutes, customerBreadcrumb, deleteCustomerGroupsBulkAction, deleteCustomersBulkAction, removeCustomerGroupMembersBulkAction };
1400
+ //# sourceMappingURL=deenruv-admin-ui-customer.mjs.map